I know Lua is best-in-class for embedding, but I want to use Scheme or some LISP dialect as scripting language for my C app. What are good interpreters to embed? My criteria are:
- Open source (preferably in C - I think most of them are).
- R5RS very encouraged, SRFIs are plus.
- Easy FFI with C (in both directions) - very important.
- Should be maintained, up-to-date, not dead projects.
- Performance comparable to Lua.
- Portable (at least GNU/Linux - MacOS - Windows (MinGW/Cygwin acceptable)).
I don't care about:
- Large library (with simple FFI, I'm able to add missing), but it's a plus.
- Size. I plan to run it on desktop machine, not Android/iOS.
- Rich documentation. Some samples with FFI might be enough.
For now, I consider the following:
- GNU Guile. Seems like it fits, but I don't know about performance (is it VM or interpreted?).
- newLISP. Brand new, documented, but not sure about performance and embedding too.
- TinyScheme/Chibi. Very small, R5RS, intended for embedding. Not sure about performance.
You should consider Chicken Scheme, too:
- Builtin support for cross-compiling applications for embedded targets
And it meets your criteria, take a look at the list of features in the linked page.