- Fix a segmentation fault when built against
text-2.0
- Restructure project to allow more convenient usage of benchmark suite
- Allow benchmarks to build with GHC 9.2
- Support for GHC 9.2.1
- Support for GHC 9.2.1
- Added
Data.Attoparsec.ByteString.getChunk
.
- Added
Data.Attoparsec.ByteString.takeWhileIncluding
. - Make
Data.Attoparsec.{Text,ByteString}.Lazy.parseOnly
accept lazy input.
- Improved performance of
Data.Attoparsec.Text.asciiCI
pure
is now strict inPosition
runScanner
now correctly returns the final state (#105).Parser
,ZeptoT
,Buffer
, andMore
now exposeSemigroup
instances.Parser
, andZeptoT
now exposeMonadFail
instances.
- Restore the fast specialised character set implementation for Text
- Move testsuite from test-framework to tasty
- Performance optimization of takeWhile and takeWhile1
- Fixed a bug in the implementations of inClass and notInClass for Text (#103)
- Made the parser type in the Zepto module a monad transformer (needed by aeson's string unescaping parser).
- Fixed a case folding bug in the ByteString version of stringCI.
- Fixed an indexing bug in the new Text implementation of string, reported by Michel Boucey.
-
Fixed a case where the string parser would consume an unnecessary amount of input before failing a match, when it could bail much earlier (#97)
-
Added more context to error messages (#79)
- Fixed incorrect tracking of Text lengths (#80)
- Fixed the incorrect tracking of capacity if the initial buffer was empty (#75)
- Fixed a data corruption bug that occurred under some circumstances if a buffer grew after prompting for more input (#74)
-
Now compatible with GHC 7.9
-
Reintroduced the Chunk class, used by the parsers package
-
A new internal representation makes almost all real-world parsers faster, sometimes by big margins. For example, parsing JSON data with aeson is now up to 70% faster. These performance improvements also come with reduced memory consumption and some new capabilities.
-
The new match combinator gives both the result of a parse and the input that it matched.
-
The test suite has doubled in size. This made it possible to switch to the new internal representation with a decent degree of confidence that everything was more or less working.
-
The benchmark suite now contains a small family of benchmarks taken from real-world uses of attoparsec.
-
A few types that ought to have been private now are.
-
A few obsolete modules and functions have been marked as deprecated. They will be removed from the next major release.
- New function scientific is compatible with rational, but parses integers more efficiently (haskell/aeson#198)
-
The new Chunk typeclass allows for some code sharing with Ed Kmett's parsers package: http://hackage.haskell.org/package/parsers
-
New function runScanner generalises scan to return the final state of the scanner as well as the input consumed.
-
New dependency: the scientific package. This allows us to parse numbers much more efficiently.
-
peekWord8', peekChar': new primitive parsers that allow single-character lookahead.