[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