You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Ovidiu Predescu <ov...@apache.org> on 2002/03/23 08:47:54 UTC

[UPDATE] Cocoon control flow

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 <ov...@cup.hp.com>
http://www.geocities.com/SiliconValley/Monitor/7464/ (GNU, Emacs, other stuff)

---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Re: [UPDATE] Cocoon control flow

Posted by Sylvain Wallez <sy...@anyware-tech.com>.
Ovidiu Predescu wrote:

>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,
>
Great work, and thank again to Christopher for his work, which will make 
the flow layer accessible to almost every web developper out there !

I'd like also to give you an update of my part of the work, which is 
implement "internal redirects" in Cocoon (e.g. redirect to 
"cocoon://my-page.html"), to allow the flow engine to send a page back 
using the existing features of the sitemap.

I digged all the related class and finally would where to hook it up 
cleanly : in the Redirector. It should be ready next week, so Ovidiu can 
integrate it when coming back from JavaOne.

Christopher, is your work part of the official Rhino code base ? And if 
not, is there a chance it can make its way inside it ?

Sylvain

-- 
Sylvain Wallez
 Anyware Technologies                  Apache Cocoon
 http://www.anyware-tech.com           mailto:sylvain@apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org