W3C home > Mailing lists > Public > xproc-dev@w3.org > October 2008

Re: Recursive calling

From: Norman Walsh <ndw@nwalsh.com>
Date: Mon, 06 Oct 2008 13:54:13 -0400
To: XProc Dev <xproc-dev@w3.org>
Message-ID: <m2wsglk3sq.fsf@nwalsh.com>
"Innovimax SARL" <innovimax@gmail.com> writes:

> Well, it seems to work with the current head

Yes, if you're following along the *very bleeding edge* of SVN, I did
manage to get it working over the weekend. But I want to consider all
of the related code a little more carefully before I bundle up a

This use case also reveals how messy the not quite complete separation
between steps on the one hand (objects that represent elements from
the pipeline) and components on the other hand (things that can
actually run) can become.

Components, for better or worse, represent not just the "compiled"
state of a step but also carry state about the current execution of
that step (documents in flow, bindings, etc.)

That means when ix:step appears in the subpipeline that implements
ix:step, I have to build a new component for the "second" call to
ix:step. That forces me to "recompile" the source step.

There are three things the processor needs, it needs a representation
of the users pipeline, so that it can check the syntax and semantics;
it needs a representation of the pipeline that can actually be run,
one augmented with explicit bindings where implicit bindings occur in
the author's document, with steps reordered as necessary, etc.; and it
needs to carry the runtime state of the currently executing pipeline.

I've failed to cleanly separate *any* of those layers.


                                        Be seeing you,

Norman Walsh <ndw@nwalsh.com> | Our life gets as complicated as a
http://nwalsh.com/            | comedy as it goes on, but the
                              | complications get gradually resolved:
                              | see that the curtain comes down on a
                              | good denouement.-- GraciƩn

Received on Monday, 6 October 2008 17:54:57 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:03:03 UTC