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
G3: Procrastinate about clojure
G5: Stop concentrating on "architecture"...
G6: Delete architecture with LCM
Lazy readmes
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
also
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
- ...
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
MkPomBuildto pull dependencies- {{CN}} gist XML(file) \ "dependencies" (may or may not have been removed)
- failsafe as well
ajerCompilation or whatever
G6: Delete architecture with LCM
-
EventListenerSupport
-
Aspect something or other
-
Netbeans something or other
-
Could be in JavaFX
-
Also, check groovy
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}})
dazelseems 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)
-
G6 Delete architecture with LCM
-
G7 Clojure (Promesa, Missionary, Manifold)
-
G1 Make progress towards results (cf
meson-demo) -
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
-
Just use kotlin dataclasses, or one of the other 999 solutions that exist but don't work only on your machine.
-
Just cheat and add an Eventual. 1
-
Just use a domain class (CM_EzFile, CM_ElijahFile).
We're going with this
Number 3.
Definitions
- record: memory model, not typing help.
Notes
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.