patch applied (packages/polyparse): Alternate versions of parser
types, attempting to plug a space leak.
Malcolm.Wallace at cs.york.ac.uk
Wed Sep 5 06:41:57 EDT 2007
Wed Sep 5 03:36:02 PDT 2007 Malcolm.Wallace at cs.york.ac.uk
* Alternate versions of parser types, attempting to plug a space leak.
The space leak is similar to one identified and fixed in the Parsec paper.
Essentially, in earlier versions, `commit' stopped backtracking, but
failed to prune any reference to the input token stream still held by
a choice point. These new versions turn 'commit' into a lazy
constructor that can be spotted by the choice point, thus pruning the
unneeded input reference whilst we still do not know the parse outcome.
More information about the Cvs-libraries