I posted an earlier version here before as a learning project. Since then I have been moving it toward a more practical direction: v0.2.0 adds a C embedding API and builds the runtime as libpico. A host program can now create a VM, evaluate PiCo code, register native C functions, call PiCo functions from C, capture output/errors, and prevent scripts from terminating the host process.
It is a small toy language. The current public value API is intentionally limited to null, bool, and number.
Hi HN,
I wrote this PiCo, a small register-based scripting language and virtual machine in C.
This is a learning project. In the early stage I read Crafting Interpreters and learned a lot. Then I gradually changed the design toward register-based VM, module system, standard library, GC controls and etc.
It is a small toy language, not a production-ready tool. I am making it complete enough that someone can play with it.
I’d be happy to hear feedback.
It is a small toy language. The current public value API is intentionally limited to null, bool, and number.