Hi,

Over the past two weeks I've completely overhauled the control flow
layer in Cocoon. Prompted by Jason's pointer to JavaScript's ability
to save its state, I've contacted Christopher Oliver, the original
author of that work. We was very kind and did an amazing work in
taking his original work and evolving it to implement continuations
a-la Scheme in JavaScript! Thank you very much for this work,
Christopher!

Because of his work, I've decided to drop my initial, Scheme only,
implementation of the control flow layer for Cocoon. This code relied
on an implementation of the sitemap which was coded entirely in
Scheme. This made it harder for hooking up control flow engines
implemented in different languages with first class continuations
support. It also required me to spend quite some time to re-implement
the full semantic of the sitemap in Scheme, which was not my original
intent.

The current approach abstracts out the interpreted language, and the
corresponding interpreter for the control flow. It also makes use of
Sylvain's excellent interpreted sitemap engine. This implementation
simply extends the semantics of the current Cocoon sitemap with two
new features: the ability to specify script files containing control
flow code, and the ability to invoke functions in such a control flow
script.

The current work focuses exclusively on the support for JavaScript,
but in the very near future it will have support for Scheme. All the
code is checked in the scratchpad area in the schecoon/ directory, so
you can check it out and comment on it.

I still have to write an example and documentation for the new
feature, and how it is supposed to fit within the current Cocoon. But
I think at this time the current code is fairly complete, and it can
be used to implement some test applications. There are some issues
though; I'll talk about them in a later email.

This is the status of the work as of today. I'll be off to JavaOne for
the next week, and I'll be checking email now and then. However don't
expect long replies or anything substantial from me in this time, as
I'll probably be busy during the day, and perhaps during the night as
well (looks like parties and BOFs are every day ;-).

Best regards,
-- 
Ovidiu Predescu <[EMAIL PROTECTED]>
http://www.geocities.com/SiliconValley/Monitor/7464/ (GNU, Emacs, other stuff)

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to