chicken-users
[Top][All Lists]
Advanced

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

Re: [Chicken-users] serialization of functions, closures, continua


From: Chris Double
Subject: Re: [Chicken-users] serialization of functions, closures, continuations
Date: Thu, 19 May 2005 08:30:43 +1200

On Wed, 18 May 2005 03:14:23 -0400, "Michele Simionato"
<address@hidden> said:
> Are there  Scheme implementations that can serialize functions and
> closures?

Sisc, which runs on the Java VM, can serialize continuations and
functions. Gambit, which is a C based implementation, can also do this. 

There is a current thread running on the Gambit list about the
serialization of continuations for web applications actually. An example
application with Gambit demonstrates it by serializing the continuation
and passing it in the URL. Unfortunately the continuations are very
large and the serialisation process is slow which reduces its
practicality.

Sisc is very fast at serializing them. I have web based systems in
production based on a continuation framework I developed and it works
fine. 

> which is interesting but stops at the point of serializing continuations,
> making the approach unpractical, I cannot keep everything in memory!
> BTW, do you know how people solve this? I think PLT has a modal
> server in its library (not sure, I should check).

You just need to aggresively expire the continuations. In other
frameworks I've developed I stored the continuations in memory rather
than serializing as it is much faster. It limits the users ability to
bookmark as the continuations aren't long lived but in practice it works
fine. It does require tuning to get the tradeoff between memory and
expiration time though.

Seaside, the Squeak Smalltalk framework, is continuation based and keeps
all continuations in memory. It has a fairly large installed base of
production systems and seems to work fine.

Chris.
-- 
http://radio.weblogs.com/0102385
-- 
  Chris Double
  address@hidden





reply via email to

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