[Document recent changes.
Malcolm.Wallace@cs.york.ac.uk**20090304132407] {
hunk ./docs/changelog.html 15
+
+
Changes in polyparse-1.2
+
+
+- Improves the Text.Parse implementation significantly. Where
+ previously all the parsers for builtin basic datatype (Int,Float,Char)
+ were just thin wrappers over the H'98 Read instances, now they are all
+ proper parsers, therefore they should (a) be faster; (b) give better
+ error messages.
+
- Reduced the number of implementation variations to choose from.
+ In particular, NoLeak has become the default implementation, and
+ the previous default has been dropped (because it space-leaks).
+
+
hunk ./docs/index.html 34
- Text.ParserCombinators.HuttonMeijer The most venerable of all
- monadic parser combinator libraries, this version dates from 1996.
- Originally distributed with Gofer, then Hugs, as ParseLib. It uses
- the idea of "failure as a list of successes" to give multiple
- possible parses through backtracking. (But in practice, almost
- nobody wants any parse except the first complete one.)
- Text.ParserCombinators.HuttonMeijerWallace The
- Hutton/Meijer combinators, extended to take an arbitrary token type
- as input (not just characters), plus a running state (e.g. to
- collect a symbol table, or macros), plus some facilities for
- simple error-reporting.
+ Text.Parse The Text.Read class from Haskell'98 is widely
+ recognised to have many problems. It is inefficient. If a read
+ fails, there is no indication of why. Worst of all, a read failure
+ crashes your whole program! Text.Parse is a proposed replacement
+ for the Read class. It defines a new class, Parse, with methods
+ that return an explicit notification of errors, through the Either
+ type. It also defines a number of useful helper functions to
+ enable the construction of parsers for textual representations of
+ Haskell data structures, e.g. named fields. Unsurprisingly,
+ Text.Parse is really just a specialisation of the Poly combinators
+ for String input, and the entire Poly API is also re-exported.
+ The DrIFT
+ tool can derive instances of the Parse class for you
+ automatically. (Use the syntax {-! derive : Parse !-})
hunk ./docs/index.html 49
+ Currently re-exports Text.ParserCombinators.Poly.Plain.
hunk ./docs/index.html 52
- lexical analysis within the parser itself. This is a fresh
+ lexical analysis within the parser itself.
+ Text.ParserCombinators.Poly.Plain This is a fresh
hunk ./docs/index.html 64
- Text.ParserCombinators.PolyState is just like Poly, except it
+ Text.ParserCombinators.Poly.State is just like Poly, except it
hunk ./docs/index.html 66
- Text.ParserCombinators.PolyLazy is just like Poly, except it
+ Text.ParserCombinators.Poly.Lazy is just like Poly, except it
hunk ./docs/index.html 77
- Text.ParserCombinators.PolyStateLazy combines PolyState and
- PolyLazy.
+ Text.ParserCombinators.Poly.StateLazy combines Poly.State and
+ Poly.Lazy.
hunk ./docs/index.html 80
- Following on from the basic Poly combinators, it became clear that
- all of the variations share a lot in common, and that many of the
+ All of the Poly variations (Plain, Lazy, State, etc)
+ share a lot in common: many of the
hunk ./docs/index.html 83
- duplication in the library, we now provide a class-based interface
+ duplication in the library, we provide a class-based interface
hunk ./docs/index.html 86
- hierarchy (e.g. T.P.Poly.Lazy etc).
- Text.ParserCombinators.Poly.Plain
- The class instance for ordinary, strict, parsers, with arbitrary
- token type.
- Text.ParserCombinators.Poly.Lazy
- The class instance for lazy parsers, with arbitrary token type.
- Text.ParserCombinators.Poly.State
- The class instance for strict parsers, with arbitrary token type
- and running state.
- Text.ParserCombinators.Poly.StateLazy
- The class instance for lazy parsers, with arbitrary token type
- and running state.
- Text.ParserCombinators.Poly.Stream
- The class instance for strict parsers, where input tokens arrive
- in a Stream datatype rather than a list.
- Text.ParserCombinators.Poly.NoLeak.Plain
- An experimental implementation of strict parsers, attempting to
- avoid a particular space leak associated with the choice
- combinator.
- Text.ParserCombinators.Poly.NoLeak.Lazy
- Text.ParserCombinators.Poly.NoLeak.State
- Text.ParserCombinators.Poly.NoLeak.StateLazy
- Text.Parse The Text.Read class from Haskell'98 is widely
- recognised to have many problems. It is inefficient. If a read
- fails, there is no indication of why. Worst of all, a read failure
- crashes your whole program! Text.Parse is a proposed replacement
- for the Read class. It defines a new class, Parse, with methods
- that return an explicit notification of errors, through the Either
- type. It also defines a number of useful helper functions to
- enable the construction of parsers for textual representations of
- Haskell data structures, e.g. named fields. Unsurprisingly,
- Text.Parse is really just a specialisation of the Poly combinators
- for String input, and the entire Poly API is also re-exported.
- The DrIFT
- tool can derive instances of the Parse class for you
- automatically. (Use the syntax {-! derive : Parse !-})
+ hierarchy (e.g. T.P.Poly.Lazy etc). Every individual variation
+ re-exports these base combinators, so there should be no need to
+ import this module directly.
+ Text.ParserCombinators.HuttonMeijer The most venerable of all
+ monadic parser combinator libraries, this version dates from 1996.
+ Originally distributed with Gofer, then Hugs, as ParseLib. It uses
+ the idea of "failure as a list of successes" to give multiple
+ possible parses through backtracking. (But in practice, almost
+ nobody wants any parse except the first complete one.)
+ Text.ParserCombinators.HuttonMeijerWallace The
+ Hutton/Meijer combinators, extended to take an arbitrary token type
+ as input (not just characters), plus a running state (e.g. to
+ collect a symbol table, or macros), plus some facilities for
+ simple error-reporting.
hunk ./docs/index.html 164
-polyparse-1.1, release date 2007.10.23
+polyparse-1.2, release date 2009.03.04
hunk ./docs/index.html 166
-.tar.gz,
-.zip.
+.tar.gz,
+.zip.
hunk ./docs/index.html 175
+polyparse-1.1, release date 2007.10.23
+By HTTP:
+.tar.gz,
+.zip.
+
hunk ./docs/index.html 185
-By FTP:
+All older versions by FTP:
hunk ./docs/index.html 218
+
+Version 1.2 improves the Text.Parse implementation significantly. Where
+previously all the parsers for builtin basic datatype (Int,Float,Char)
+were just thin wrappers over the H'98 Read instances, now they are all
+proper parsers, therefore they should (a) be faster; (b) give better
+error messages.
+
}