This is the mail archive of the 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: on the topic of GC.

Michael Livshin <> writes:

> I am personally very interested to know of any garbage
> retention problems in long-running SCM/Guile programs on the SPARC.
> the stack handling on the SPARC is such that Boehm goes to
> considerable kludges to clean the stack whenever possible and safe.
> SCM/Guile's GC doesn't.  so... any horror stories?

On the contrary: I've used Guile for years on SPARCs without
problems.  The following code form __scm.h seems to me like a
sufficient kludge.  Why would anything more be required?

/* James Clark came up with this neat one instruction fix for
 * continuations on the SPARC.  It flushes the register windows so
 * that all the state of the process is contained in the stack. 

#ifdef sparc
# define SCM_FLUSH_REGISTER_WINDOWS asm("ta 3")
# define SCM_FLUSH_REGISTER_WINDOWS /* empty */

> > * scanning the stack takes time.
> peanuts, in my experience.  real peanuts.

I agree.  Also, remember that there's a whole lot of unnecessary
registration/unregistration which we don't have to do.  I wouldn't be
surprised if this overhead of the precise collector is greater than
the stack scanning overhead of the conservative one.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]