I completely agree that ant, or some other system that creates a JVM once for all our Saxon transforms, is a Very Good Thing for our build process, and (as I said) am not suggesting we get rid of it. But I don't see ant as particularly easier for newbies, and there are a *lot* of people in the world who are not newbiews and are quite used to make. The fact that your version of this hack involves only a transiently modified p5.xml is what makes it tolerable. (I still think the *right* answer is to fix the DTD generation in the actual P5 build process so that it puts the parens in when needed. But I'm not willing to volunteer to do that, at least not yet.)
Well, I'm not pushing hard for Perl per se, but my point is that as requirements go, it's not a problem. Pretty much any system that has `make` has `perl`, too.
To be honest I feel the same way about make. I'd like to move everything to ant. It's easier for newbies to learn and understand, and it has a lot of payoffs in terms of the number of JVMs that have to get instantiated during a build process. For instance, if you call Saxon 20 times from a Makefile, you instantiate 20 JVMs; if you do it from an ant process, the same JVM is used every time. Sebastian already managed to cut a lot of time out of the build process by doing that.
Same can't be said for Saxon or Ant. (Yes, I realize that our processing chain already requires these things, and that it would not be a good idea to try to get rid of them.)
Please no. If we get rid of ant at this point, we'll be back to builds that take an hour and a half. If there were one thing guaranteed to stop me contributing to P5, it would be a move to use make and PERL more, and ant less. I think it would be madness.
My objection, BTW, is *not* with using XSLT instead of Perl. My objection, a minor one at that, is with performing the hack on the input PureODD rather than on the output DTD. But that objection is not a show-stopper, it's just a misgiving.
The resulting file would be transient and deleted at the end of the process; it would just be part of a processing chain.