Nick Beaudrot <email@example.com> wrote:
| I'm trying to find an implementation of scheme that supports multiple
| interpreters running at the same time in the same process
| (but in different threads). This is so that each thread can have
| different definitions of certain procedures.
Take a look at MzScheme <URL:http://www.cs.rice.edu/CS/PLT/packages/
mzscheme/index.html>, not only at the thread stuff but also at
"namespaces" and "parameterizations", both of which are per-thread.
In particular, as it says in the docs under "Global Variable Namespaces":
The current namespace is used by eval, load, compile, and
expand-defmacro. Once an expression is evaled or compiled,
the global variable references in the compiled expression
are permanently attached to a particular namespace, so the
current namespace at the time that the code is executed is
*not* used as the namespace for referencing global variables
in the expression.
I suspect that can be used to do what you want.
Rob Warnock, 41L-955 firstname.lastname@example.org
Applied Networking http://reality.sgi.com/rpw3/
Silicon Graphics, Inc. Phone: 650-933-1673
1600 Amphitheatre Pkwy. PP-ASEL-IA
Mountain View, CA 94043