Mike,

| I've been trying to understand why consGC is turned off in the function
| "evaluator", but I have so far been unable to. I would appreciate any help
| anyone can offer.

When consGC is on, Hugs looks on (what it hopes is) the C stack for
roots into the heap.  This takes time and items on the stack that are
not actually heap pointers but look like they could be might cause
parts of the heap to be retained when they should really be recycled.
I rewrote the evaluator a couple of years ago so that, for the most
part, it could be run without this overhead, ignoring the C stack.
(An exception, if I recall correctly, is in Integer (i.e., bignum)
division where consGC is switched on again, albeit briefly.)  So the
answer to your question is that consGC is turned off because the
evaluator doesn't require it, and because it might give better GC,
hence better performance.

Hope this helps.

Mark



Reply via email to