This is the mail archive of the guile@cygnus.com mailing list for the guile project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
On Fri, Feb 26, 1999 at 03:37:41PM -0500, Maciej Stachowiak wrote: >forcer wrote: >> >> Hi there.. [guile with multiple interpreter instances] > >You could use a fresh module and root continuation for each script. >They would still be able to break things if they _really_ wanted >to, I thought about something like that, though i'm not very well informed about the guile module interface... i guess i have to change that :) >but I don't think it would be very easy to extend Guile to >supoport multiple interpreters. I can take a look though. Hmm... I hope it'll be possible. Multiple interpreters are very convient for the things i just mentioned... A way to initialize a "main interpreter" and a few "child interpreters" would be ok, e.g. to just store the pointer to the environment, continuation chain, etc. in the ``interpreter'' and having the rest being global. This would require the rest to be thread-safe, which it should be anyways. As you might see from the statement, i don't know anything about the internal organization of guile but guessed from the "normal" organization of Scheme compilers :] >One thing you might find useful is the following patch which enhances >Guile with a scm_init_guile() function which can be called at any >time and will properly find the top of the stack and initialize >the Guile interpreter, so there is no need to use the >gh_enter/scm_boot_guile protocol, which wants to take over your >main(). I have not tested it heavily (just got it to work, in fact) >but I would appreciate others testing it and reporting back. Thanks! This was the other big problem with adding guile support to programs. I'll try it ASAP :) -forcer -- ((email . "forcer@mindless.com") (www . "http://webserver.de/forcer/") (irc . "forcer@#StarWars (IRCnet)") (pgp . "key available on my website"))