HN user

snyball

52 karma
Posts4
Comments7
View on HN

Ya, the language itself is not very well documented. But it's mostly Common LISP like, though a LISP-1 like Scheme, which is the biggest deviation from Common LISP.

You can take a look at core.lisp and html.lisp in the lisp/ directory, as well as the test cases for example code in test/.

Cool, didn't know about `rq`. Converting everything to json and using `jq` has been my goto for structural data-hacks on the command line, but yeah for my own usage of `tombl` the killer feature was getting a bash array out of the config.

I've considered emitting LLVM, or using C as a high-level assembly language, but not directly to native code. I've been wanting to write some simple arcade-like games using spaik, and it'd be a shame to either restrict it to a single architecture or needing separate implementations. (that, and being able to benefit from the 100s of lifetimes spent optimizing LLVM and gcc code generation.)

Spaik also doesn't have an AST-level interpreter for evaluating macros, it compiles and runs the bytecode on-the-fly for macro-expansions declared and used in the same compilation unit. And I figured it'd be even more of a hassle with native code.

The first compiler, vm, and "large" (>=500loc) Rust program I've written. Worked on it as part of a compiler class at Uni. Some of the GC parts are written in C because of my initial unfamiliarity with unsafe Rust.

It'd be great to get some feedback on the design, use of Rust, etc. given the fact that this was such a fun learning experience.