Rob Arthan wrote:
I am working on porting ProofPower to Poly/ML 5.2. I get the following
assertion failure when I run one of the tests for my parser generator. I can
reproduce the problem deterministically, but the circumstances in which it
occurs are obscure: at first glance it seems to depend on whether I am
calling "use" directly or via a function of my own, but it doesn't fail if I
avoid compiling my function twice. It seems very dependent on exactly how
things are compiled.
slrp-ml: gc.cpp:878: virtual POLYUNSIGNED
ProcessUpdate::ScanAddressAt(PolyWord*): Assertion
`obj->ContainsNormalLengthWord()' failed.
Rob,
Thanks for sending the test program. I finally managed to get to the
bottom of this. The problem turned out to be the way that the heap was
restored after calling "export". It would only have shown up in certain
circumstances and only in a garbage collection after the export.
Generally, export is the last thing that is called in a session which
may explain why it didn't show up earlier.
I've fixed it in CVS and your test now runs successfully. Let me know
if you get this again although this assertion could be triggered by any
number of different faults connected with the GC.
Regards,
David.
_______________________________________________
polyml mailing list
[email protected]
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml