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: Can the Guile library be reentrant



> > > The limitation of this approach is that you have to guarantee that
> > > no SCM objects are stored on the stack at a lower level than the
> > > gh_minor_enter(). Storing them in global places like defined scheme
> > > variables is still OK. Using the stack within smob functions is also
> > > OK because these will always be called under gh_minor_enter().
> > 
> > Right.  This is a very similar invariant to the one that Stallman and
> > I were unable to reliably preserve in Emacs.
> 
> Well emacs requires you to declare each and every stack point while guile
> requires you only to declare the boundary between C stack and mixed
> C/SCM stack. When you say ``very similar'' you perhaps also feel that
> ``='' is a very similar operator to ``<'' ?

Sorry, I guess I wasn't clear.

I think that asking the programmer to keep track of which stack frames
might contain Guile heap references is asking too much.  It's too hard
to keep track of the set of all possible functions that might be
invoked from here.  That's one form of what Stallman and I were unable
to reliably maintain.