chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] Posix threading


From: Julian Morrison
Subject: Re: [Chicken-users] Posix threading
Date: Fri, 11 Mar 2005 15:52:23 +0000
User-agent: Debian Thunderbird 1.0 (X11/20050116)

Peter Busser wrote:

You don't have a choice but to move data, because the data resides on the stack and the stack must be cleaned when it is full.

You missed what I said: that this is a modified form of major GC.

In other words, once major GC has run,
- there is nothing on the stack
- the only things which remain in the heap are reachable

To which my modification adds that, when objects are being locked,
- everything which is reachable and in the heap, is marked immobile

It's only positionally locked /after/ it is put into heap. And, GC-and-lock is atomic, so there's nothing creeping onto the stack in the meantime.

I'm curious, why in particular did you chose a copying GC?

See above. Other implemenations and languages (like e.g. Haskel) use a generational GC too. The PDF document at the end of my previous e-mail does a great job at listing all kinds of GC strategies and their strengths and weaknesses.

The chicken GC system is generational by virtue of having a stack and a heap generation. This is seperate from what GC mechanism is used to do GC once things are on the heap. IOW you could have stack and heap generations, but run mark-and-sweep (a non-moving GC) on the heap.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]