With the ~--eval~ option you can evaluate an expression in mu/scm
environment. For example:
$ mu scm --eval \
'(format #t "found ~d match(es)\n" (length (mfind "hello")))'
found 7173 match(es)
Add command-line parameter and implement.
SCM exception are "non-local exits", which mean that c++ objects don't get their
DTOR called when leaving the scope.... this break RAII, leaks mem etc.
So instead, we avoid SCM exceptions (where we can), and throw C++ exceptions,
and only use SCM-expections in the catch block.
Implement support for "header" and "body" procedures, with require loading the
message file from disk, and create a foreign object for the message.
We keep those alive in a vector, and hook up a finalizer.
Update docs & tests as well.
This implements the new scm/guile bindings for mu, to replace the deprecated
guile/ (at some point in the future).
For now, we allow for creating a guile shell with mu support.