3 ms·
Viewed as a lisp this is disappointing. Manual memory management means lexical closures will be a pain. Native integers mean you have to remember about overflow
by JonChesterfield 3y ago
Viewed as a lisp this is disappointing. Manual memory management means lexical closures will be a pain. Native integers mean you have to remember about overflow. Stuff that lisp doesn't care about.
Viewed as a replacement for the C preprocessor, or perhaps for C++ templates, this is very compelling. When you know the C you'd like to write, but it's annoyingly verbose and updating it by hand means changing a dozen places at once, systems like this amount to a more structured code generator.
It might be worth copying the sometimes-garbage-collected approach. In particular, you could have real garbage collection at compile time and raise an error if any of the residual code wants to call into it.