patch applied (packages/polyparse): Alternate versions of parser types, attempting to plug a space leak.

Malcolm Wallace 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.

    A ./src/Text/ParserCombinators/Poly/NoLeak/
    A ./src/Text/ParserCombinators/Poly/NoLeak/Lazy.hs
    A ./src/Text/ParserCombinators/Poly/NoLeak/Plain.hs
    A ./src/Text/ParserCombinators/Poly/NoLeak/State.hs
    A ./src/Text/ParserCombinators/Poly/NoLeak/StateLazy.hs


More information about the Cvs-libraries mailing list