Felix had mentioned using callbacks for allocation in this message as well.

http://lists.gnu.org/archive/html/chicken-users/2003-10/msg00027.html

I didn't mention this and other "advanced" techniques because,
basically, while looking at the Gauche Objective C bridge a while ago,
I came up with all kinds of crazy techniques to do allocation. Looking
back at my notes, they are not pretty.  The problem was I was trying
to translate Gauche-style allocation in an overly literal manner to
Chicken.  Eventually I rethought the problem and totally scrapped the
existing code in favor of something written with Chicken's style in
mind.  This allowed me to use just the two techniques I mentioned
originally.  (I did have to use GC roots too, but only to hold Scheme
closures for long periods inside libffi user data.)

What I'm saying is, you may gravitate to doing something that's overly
complex in Chicken because you come from a background with a different
allocation mentality, such as Scheme48.  Then again, maybe everyone
has to go through the
furious-poring-through-Chicken-mailing-list-and-internals phase once.

Also, remember to take into account that callbacks into Scheme are
comparatively slow.

On 1/23/07, felix winkelmann <[EMAIL PROTECTED]> wrote:
Another possibility would be to allocate Scheme data in a Scheme callback
and put the returned value into a GC root (CHICKEN_gc_root_new). That
way you can manipulate the Scheme data in C and are sure that it is
updated by the garbage collection.


cheers,
felix



_______________________________________________
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to