As for the DOD: you have an excellent point, but it extends far beyond the hyper-operators. I'm starting to think that front-ends like the Python compiler or the Perl 6 compiler are going to need controls over the DOD for just the reasons you cite. After all, they know when they are about to start doing some large looping operation that's all highly constrained with respect to allocation. It would make sense to gather the resources they need, lock down DOD, do what they need to do and then unlock the DOD...
While that capability's already in there and has been for years, most of the literature I've come across indicates that, except in very specific circumstances, twiddling garbage collection behaviour is a bad idea. There are too many factors that affect performance, too much information that's not available at either code-writing or compile time to do it right, and too many subtle and/or bizarre things that cause nasty effects.
This is the sort of thing that should be left to Parrot to deal with. Apps and compilers aren't in a good position to make the right decision. (Not to say that we shouldn't have infrastructure in place to make things work better but, again, it's parrot-level stuff that apps and compilers shouldn't deal with outside of perhaps referencing the information gathered from a profiling run or twelve)
--
Dan
--------------------------------------"it's like this"------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk