ChezWEB 2.0 Nearing Release (Sneak Peek)

Over the past two days, I've made 24 commits to my alpha branch of ChezWEB. For me, that's a whole lot. ChezWEB has come together really nicely for this first release, and I'm really happy with where the features are going.

A Beta version of 2.0 is almost ready. There is one feature (external file includes) that still needs to be implemented. The system also needs a lot more documentation, but the developer level documentation of the system is actually quite complete. Some more diagrams in some places would help, but that is something that can be improved upon after the Beta is released. I'm hoping to have some more user documentation finished so that at least there is no empty section in the woven version of ChezWEB.

However, since ChezWEB doesn't even really use the file include feature in its own code, I wanted to share a sneak peek at what to expect in version 2.0. Specifically, I have a woven version of ChezWEB as it stands right now (yes, ChezWEB weaves itself).

The above link may not last past the Beta release, but if you want to see the cool output, you should check that document out. Especially, see the back of the document for the neat indexing features.

Here's the set of features from the previous roadmap that are going to make it into version 2.0:

CWEB style syntax (no more double backslashes)

Cleaner hygiene that handles threading automatically

No need to explicitly thread identifiers at the chunk reference site

Better support for cross-referencing and indexing (explicit indexing and fully automatic cross referencing)

Improved support for hierarchical document layouts.

Chunks can be extended and concatenated

A single WEB can generate multiple output files (CWEB style)

That means that these are the only features that haven't made it into the 2.0 version:

Scribble Syntax support

Non-hygienic chunks a la CWEB

A proper Scheme pretty printer

Automatic indexing of identifiers and code

Questions, comments, and critiques are welcome! I'll be presenting ChezWEB and specifically, more about the lessons I have learned from implementing the ChezWEB runtime at the Scheme Workshop in Portland this year.