Unfortunately, no such thing seems to exist.
Unfortunately, no such thing seems to exist.
It's R7RS scheme, which is a very small, well designed core for lisp. 13k LOCs of C. Very easy to embed, and a nice C FFI. I absolutely love it.
Geiser supports Chibi scheme out of the box, and I wrote this simple nREPL for it that I use: https://github.com/Risto-Stevcev/chibi-repl-server/
I use delimited continuations for conditions and restarts: https://gist.github.com/Risto-Stevcev/e6fd8417e34ef74a74adfa...
Fennel has something a bit more robust (assert-repl) and it can restart, but can only return a single value from the REPL, which often creates more errors downstream.
I thought I remembered being able to manipulate the env as a dynamic which I think could get you what you need. But reading the source now I guess not? I'm pretty out of practice reading janet.
The only real issue with Fennel is luarocks—the experience of adding new libraries (or general dependency management) to a (Lua) project is still gnarly.
Most recent release was May of this year. I don’t know if it is as portable as Lua, but it should basically run anywhere you can call into C.
You’d have to import a third-party hygienic CL macro system, though. But in return you get a full-fledged Lisp.
But that said, my random forays into Guile have been met with frustration. I can’t say anything specific, but for whatever reason, whenever I tried to use it, I’d get no momentum on my little project du jour, and I’d shelve it once again, moving on to something else.
Perhaps next time it’ll click.
__asm__(".symver memcpy,memcpy@GLIBC_2.2.5");
Plus, the LGPL license will ensure that it can't be shipped on a multitude of platforms (iOS I believe, game consoles, etc.)Just for my understanding, is this based on the fact that these platforms don't allow the user to modify or upgrade Guile to another version in the future?
I don't think there's any restrictions on LGPL code for the App Store, but the restrictions I mentioned earlier are probably tricky to conform to[1].
[1]: https://stackoverflow.com/questions/35068054/does-app-store-...
Hundreds of software projects today contain the mysterious line
__asm__(".symver memcpy,memcpy@GLIBC_2.2.5");
as a lasting memory of this glibc debacle. I just added it to my code as well."""
Also Guile (and many other embeddable scripting languages) want to initialize global state which I'd prefer not to.