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]

Re: Guile multiple interpreters / closed environments?


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"))