Implementing XProc, VIII

Volume 10, Issue 100; 25 Sep 2007; last modified 08 Oct 2010

Part the eighth, in which we get green lights across the board. Ok, it's a small board, but it's still a landmark.

This essay is part of a series of essays about implementing an XProc processor. XProc: An XML Pipeline Language is a W3C specification for specifying a sequence of operations to be performed on one or more XML documents. I'm implementing XProc as the specification progresses. Elsewhere you'll find background about pipelines and other essays about XProc.

Over the last couple of days, I've been hacking my implementation pretty hard. One goal was to process pipelines defined using XProc as she is spoke in the last call draft. Another goal was to construct a framework that allows me to run tests defined using the proposed test format. Not necessarily in that order.

I am delighted to report success on both fronts. And, while the test suite is small (and I know where several untested holes lie), for the first time ever, I got green lights across the board. Woo hoo!

In particular, I got all the magic of “parameter input ports” implemented and I got the context size and context position correct in atomic steps.

Something's not right about the way option values are computed if the p:option element has an input binding and I'm sure I've got problems with namespaces bindings, but since the tests don't currently test those things, I get to bask in the green glow for a few more minutes.

Then I start writing tests for some of those things…