On 14 Dec 2009, at 18:33, David Matthews wrote:
Rob,
Rob Arthan wrote:
For what it is worth, I have attached a patch that fixes PolyML.install_pp. On reflection, if you withdraw it, I am going to have to write something similar of my own, because I can't see any other way of maintaining compatibility with both Poly/ML and SML/NJ.
I realised that the bug was in the beginBlock function and I committed a fix to 5.4 an hour or so ago. Was there a reason for the other changes that weren't fixed by that? If we can agree on a small set of changes I'll include them in the fixes-5.3 branch.
The old interface did not require a sequence of calls to the side-effecting functions to begin with a beginBlock and end with the matching endBlock. I think that what you have will raise an exception if this is not the case and if there is more than one call. My changes allow for a sequence of calls corresponding to a "pretty list" in the new regime rather than a single "pretty".
On thinking about this some more, I realise that some of the large applications QinetiQ tackle may suffer performance problems because of the list appends in addEntry. If it is not too much trouble, I think it would be prudent to construct the "pretty list"s backwards and reverse them when an entry is popped off the stack or extracted at the end.
Regards, Rob.