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]