note: mdbook is written in rust and uses markdown as a format

Petal to the Metal

On the navigation bar you will find sections.

This page intentionally left empty.

Initiatives

G1: Make progress towards results

G2: Make it "fun" to look at

G3: Procrastinate about clojure

G4: Procrastinate about dlog

G5: Stop concentrating on "architecture"...

G6: Delete architecture with LCM

G7: Clojure

Lazy readmes

almost septagon

congenial robot

elevated potential

G1: Make progress towards results (cf meson-demo)

Verification

in a minute.

Testability

{{CN}}

Progress

  • {{CN}} Pretending to understand failsafe
  • {{CN}} sbt munit

G2: Make it "fun" to look at

Inspirations

  • datalog-ts
  • Glamorous Toolkit
  • "antlr-web"

Implementations

  • tauri, probs...
  • humbleui/clojure something desktop
  • ...

You know...

  • thinlet (removed because it works and also {{CN}})
  • jcef

Progress

  • {{CN}} Adding UT_ back (hint: figwheel, concordion)

3: Procrastinate about clojure

lisp

  • mal
  • abcl (i knew you knew the whole time)

erlang

A gleam demo was refreshingly not really that bad.

actually clojure

See goal G7

also

See goal G4

Progress

  • https://github.com/elijah-tng/automatic-journey-tng/tree/aj-2024--build-with-leiningen-2

Kinda working, kinda out of sync with maven pom Had a closer but less relevant +1 a couple weeks ago

G4: Procrastinate about dlog

  1. ...

See goal G5

Progress

  • datalevin, blah
  • -1 on dlog
  • jena is pathetically on gitlab
  • rdf4j changed names
  • google prolog nothing

G5: Stop concentrating on "architecture"...

Programming in Java by hand ...

This seems to be is intentional, styles have changed recently. Building large systems in Java by hand can be difficult when you only have built small ones.

Other people complaining as well

{{CN}} - kotlin rationale...

The expression of things need better expressitivity.

Gentle Excoriation

  • fix your (read my) tools.

Explanation

The title means break things down further to avoid unnecessary problems. Compilation from 1004 was one file, not 25_000

Progress

  • MkPomBuild to pull dependencies
  • {{CN}} gist XML(file) \ "dependencies" (may or may not have been removed)
  • failsafe as well
  • ajer Compilation or whatever

G6: Delete architecture with LCM

  • EventListenerSupport

  • Aspect something or other

  • Netbeans something or other

  • Could be in JavaFX

  • Also, check groovy

See goal G5

Progress

  • {{CN}} javadoc says no for EventBus
  • projectreactor, ...Test (the one with kt .test().expect...)
  • xtext (not xtend) and aspectj-like are looking good
  • ...

G7: Clojure

  • https://github.com/leonoel/missionary

  • https://github.com/funcool/promesa

  • https://github.com/clj-commons/manifold

  • https://github.com/donut-party/system

  • https://github.com/weavejester/integrant

  • https://github.com/clj-commons/aleph

  • https://github.com/cerner/clara-rules


Why is manifold so hard to remember? (Then looks at picture)

Progress

  • building with lein on ghci
  • there is a branch with clojure-maven-plugin
  • working on deps (abstractions not code is an interesting philosophy)

G8: Build systems "don't matter"

https://www.lihaoyi.com/post/SowhatswrongwithSBT.html

https://github.com/elijah-team/congenial-robot/tree/2023-99-robotics-sbt

https://silverhammermba.github.io/blog/2023/01/06/gradle

Gentle Excoriation

  • Just learn bazel (aprendese ano nueva)
  • bld is nice (takari vs quarkus)
  • Use a transformer (xtext; jbang, very nice)

Progress

  • gave up on mill for some reason
  • trying sbt for some reason (that project) ({{CN}})
  • dazel seems like a scam (or a skill issue deficit)
  • gave up on bazel till after the new year (seems like a pattern, hint:)
  • started to try gradle again and deleted my only gradle project to encourage myself
  • ...

G9: Source code doesn't matter

Java got (bad) macros and everybody hates them (has moved on).

Java the language is an unnecessary* abstraction.

They soft-lined class-files with the module thing, and nobody seems to mind.

Java language xxx. {{CN: would really like this one}}

Useful for bootstrap: (didn't want to be like Fantom, but...)

Progress

  • Still trying not to steal Fantom-lang
  • Still trying not to steal manifold
  • Still reading a bunch of other stuff
  • Still not combining ASTs (tree-sitter; gumtree {{CN}})
  • Still not Soot
  • Still not Sable (*) (kinda was looking)
  • Still not theorem proving
  • Still not (kinda is) learning lisp from scratch with mal
  • Still compiling and downloading too damn much (*-upper is coming along: need a break aka tooling support)
  • Still not throwing everything in
  • Still not "just" socratic and kotlinjs/wasm and do something else
  • Still being hardheaded about electric and the other ones and figwheel
  • Still trying to auto-convert the thing to scala, while simultaneously allowing a line from years ago to grow organically into place
  • Still procrastinating about generating things (aka maven-elijah-plugin)

G10: maven-elijah-plugin

  • Have to decide design goals for tng (aka try again next year)
  • There are at least 2 or 3 projects hidden in each of these repos (aka see ajer)

Elijah almost-septagon

The elijah-lang compiler.

https://git.sr.ht/~tripleo/el-almost

This project is licensed under LGPL, read LICENSE.LGPL

For instructions on how to build and run the compiler, read the HACKING document. Please don't use this project in production, it's still under development.

ABOUT

Elijjah is a high-level language suitable for piecemeal replacement in Java and C/C++ programs, as well as new projects. It is meant to integrate into your project without much hassle.

It is free software intended for use on all systems, including GNU/Linux.

almost-septagon is a silly name for the current incarnation, implemented in Java.

You will need JVM 17 and Maven or Gradle.

Much work is needed.

See Language Overview for more details on the language.

All of this is a work in progress and your support would be appreciated.

DOCUMENTATION

wiki -- https://man.sr.ht/~tripleo/el-technical/Home.md

INTERACT

DISCUSSIONS

If you want to contribute to the source code, send plain text patch to:

~tripleo/el-fluffy-umbrella-devel@lists.sr.ht

Please use git-sendmail to send the patches. You might want to configure your git to prevent silly mistakes:

$ git config sendmail.to "~tripleo/el-fluffy-umbrella-devel@lists.sr.ht"
$ git config format.subjectPrefix "PATCH el-fluffy-umbrella"

TODO

  • (libera) chat channel. (meh)
  • nix/guix
  • learn sr.ht flow

Elijah elevated-potential

Elijah is:

  • ... a high-level language built to explore code generation and other interesting techniques.
  • ... a historical curiosity.
  • ... meant to be easy to use standalone or with existing projects.
  • ... free software (LGPL) intended for use on all systems, aka Linux.
  • ... philosophically opposed to semicolons.
  • ... obsessed with curly braces and brackets.

elevated-potential is:

  • ... implemented in Java (17, for now; 8 is great and Graal is you're paal)
  • ... of the impression that build systems don't matter (tldr maven for now)
  • ... mortal enemies of Scala and Kotlin
  • ... philosophically excited about Clojure (and Xtend and EMF/MBSE)
  • ... also secretly jealous of Lombok and AOP

Instructions

https://github.com/elijah-team/elevated-potential

git clone https://github.com/elijah-team/elevated-potential -b rolling
cd elevated-potential
sdk install mvnd
mvnd clean test
# or 
nix-shell -p maven gradle jdk17 --pure --command "mvn clean test"

Gitpod

https://gitpod.io/#https://github.com/elijah-team/elevated-potential

sdk install java1 17.0.10-tem
mvn compile

See: https://gitlab.com/elijah-team/crft-elevated-potential.git

Goals

  • Fiddle with Github .workflows
  • Work on almost

Goals (2024)

  1. G6 Delete architecture with LCM

  2. G7 Clojure (Promesa, Missionary, Manifold)

  3. G1 Make progress towards results (cf meson-demo)

  4. G2 Make it "fun" to look at (datalog-ts, Glamorous Toolkit)

Lineage

  • almost

  • ??

Revised Goals

  • ...

Elijah congenial-robot

The elijah-lang compiler/package manager.

Elijah is:

  • ... a high-level language built to explore [insert goal here].
  • ... a historical curiosity.
  • ... meant to be easy to use standalone or with existing projects.
  • ... free software (LGPL) intended for use on all systems, aka Linux.
  • ... philosophically opposed to semicolons

congenial-robot is:

  • ... implemented in Java (17, for now; 8 is great and Graal is your paal)
  • ... of the impression that build systems don't matter 2 4 5 (tldr maven for now)
  • ... mortal enemies of Scala
  • ... a friend of Eclipse and therefore not Lombok (but only when it's not trying that hard)
  • ... a friend of Xtend
  • ... is not really all that concerned by Kotlin (see Verification)

Instructions

https://github.com/elijah-team/elevated-potential

git clone https://github.com/elijah-team/congenial-robot -b 2024-congenial
cd congenial-robot
mkdir COMP
gradle test
# or 
nix-shell -p maven gradle jdk17 --pure --command "maven clean test"

GOALS

  • Less noise
  • More verification
    • on the road to correctness

LINEAGE

Septagon - Starting over, again

Rosetta - Encapsulating state/environment. Pull model.

Congenial - Testablility/verification

TODO

  • Convert to ant
  • Finish vision
  • Stop fuddling

Fluffy umbrella

Move to github.

(Somebody once said they take gitlab seriously, but this was a long time ago.)

Septagon

Move to sr.ht from gitlab.

Elevated Potential

  • elevated
  • eleveted
  • elaveted
  • equilibrium
  • enormous

Rosetta

Either shove everything into a promise, or an excuse to flirt with globals/static classes.

Congenial

Specs

In retrospect

  • Spec was supposed to be a record.

Prob. should have

  1. Just use kotlin dataclasses, or one of the other 999 solutions that exist but don't work only on your machine.

  2. Just cheat and add an Eventual. 1

  3. Just use a domain class (CM_EzFile, CM_ElijahFile).

We're going with this

Number 3.

Definitions

  • record: memory model, not typing help.

Notes

1

I don't know if this is cheating.

Correctness

Difference between meson-demo and the outputs.

No NPEs/Exceptions for demo runs.

Fixing problem-sets.

* Some of these may be verification.

* Your bad editor is why you are lazy. (aka write an idea plugin)

Less noise

Push everything into undertow/log files.

Report only success/failure and (really) pretty diagnostics. [elm, eclipse]

Verification

See correctness.

Also, PIT, model checking and theorem-proving.