Just started working on this, but there's already quite a bit there. You can load multiple named "programs", there's GIL based preemptive threading, bindings to the Arduino hardware, the serial port has a REPL,
there's easy functions for adding variables.
The way I'm doing "programs" is there's a hidden root app, and all the root tables of your loaded programs have the root interpreter as a delegate. I patched Squirrel itself to let you force close tasks by throwing
exceptions, and setting a flag that disables handling them.
My goal here is to make the bindings really bulletproof, so you don't need to worry about race conditions or memory leaks. I've even got functions to accept a callback from Squirrel and to run a cleanup function should Squirrel ever delete the subscription object.
Before patching, Squirrel seems to run a simple variable incrementing loop at 300KHz, so performance should be good enough to write a game engine in if someone had the time.
https://github.com/EternityForest/Acorns