[Petal] Petal 2.07 released
Jean-Michel Hiver
jhiver at mkdoc.com
Thu Jun 24 13:51:59 BST 2004
Hi List,
I *finally* managed to implement missing metal functionality, that is
metal:define-slot and metal:fill-slot - Wohoo!
The implementation is incredibly hackish indeed. I am realizing that
TAL, METAL and I18N are really three different attribute languages and
should be processed separately.
Probably in the order I18N => METAL => TAL, although I haven't thought
much about that.
At the moment with Petal, TAL and METAL are executed in the same phase,
and the code is a horrible mess - a pretty stable mess though.
The thing is I have strictly no intention of doing a full re-write quite
yet, because re-writes are long, tiedous things that tend to gobble up
lots of time and break backwards-compatibility.
Hence I am afraid that for the moment Petal's internal code is going to
have to remain horrible - it was so nice when it was proof-of-concept
two years ago. It seems that software, just like the universe, tends
towards a state of disorder :-)
The only thing that is clearly not horrible is the regression / test
suite. Although test suites have a pervert effect: because they let you
make sure that your ugly hacks will work reasonably well, you can reach
level of hackiness which you would never have dreamt of before.
That being said, In an ideal world we'd simply have some kind of
generic, extensible "attribute language" framework. Then METAL, I18N and
TAL would simply be sub-classes of this wonderful perfect generic library.
And Petal would just combine the three in a chain, and maybe have some
code for backwards compatibility.
That is definitely a goal which I should try to reach on the long term.
Hopefully it can be done in small, incremental steps, without breaking
the test suite.
Anyway, I hope you enjoy the new functionality. Documentation is not yet
up to date, so you'll have to google for "ZPT METAL" to see what it's
all about.
Cheers,
Jean-Michel.
More information about the Petal
mailing list