Changelog for
ghc-megaparsec-devel-7.0.4-15.2.x86_64.rpm :
Fri Nov 9 13:00:00 2018 psimonsAATTsuse.com
- Update megaparsec to version 7.0.4.
Upstream has edited the change log file since the last release in
a non-trivial way, i.e. they did more than just add a new entry
at the top. You can review the file at:
http://hackage.haskell.org/package/megaparsec-7.0.4/src/CHANGELOG.md
Thu Nov 1 13:00:00 2018 psimonsAATTsuse.com
- Update megaparsec to version 7.0.3.
[#]# Megaparsec 7.0.3
* Fixed the build with `mtl` older than `2.2.2`.
Mon Oct 22 14:00:00 2018 psimonsAATTsuse.com
- Update megaparsec to version 7.0.2.
[#]# Megaparsec 7.0.2
* Fixed the property test for `char\'` which was failing in the case when
there is a character with different upper and title cases.
* More descriptive error messages when `elabel` or `ulabel` from
`Text.Megaparsec.Error.Builder` are used with empty strings.
* Typos fixes in the docs.
Wed Oct 10 14:00:00 2018 psimonsAATTsuse.com
- Update megaparsec to version 7.0.1.
[#]# Megaparsec 7.0.1
* Fixed a bug in `errorBundlePretty`. Previously the question sign `?` was
erroneously inserted before offending line in 2nd and later parse errors.
[#]# Megaparsec 7.0.0
[#]## General
* Dropped the `Text.Megaparsec.Perm` module. Use
`Control.Applicative.Permutations` from `parser-combinators` instead.
* Dropped the `Text.Megaparsec.Expr` module. Use
`Control.Monad.Combinators.Expr` from `parser-combinators` instead.
* The debugging function `dbg` has been moved from `Text.Megaparsec` to its
own module `Text.Megaparsec.Debug`.
* Dropped support for GHC 7.8.
[#]## Combinators
* Moved some general combinators from `Text.Megaparsec.Char` and
`Text.Megaparsec.Byte` to `Text.Megaparsec`, renaming some of them for
clarity.
Practical consequences:
* Now there is the `single` combinator that is a generalization of `char`
for arbitrary streams. `Text.Megaparsec.Char` and `Text.Megaparsec.Byte`
still contain `char` as type-constrained versions of `single`.
* Similarly, now there is the `chunk` combinator that is a generalization
of `string` for arbitrary streams. The `string` combinator is still
re-exported from `Text.Megaparsec.Char` and `Text.Megaparsec.Byte` for
compatibility.
* `satisfy` does not depend on type of token, and so it now lives in
`Text.Megaparsec`.
* `anyChar` was renamed to `anySingle` and moved to `Text.Megaparsec`.
* `notChar` was renamed to `anySingleBut` and moved to `Text.Megaparsec`.
* `oneOf` and `noneOf` were moved to `Text.Megaparsec`.
* Simplified the type of the `token` primitive. It now takes just a matching
function `Token s -> Maybe a` as the first argument and the collection of
expected items `Set (ErrorItem (Token s))` as the second argument. This
makes sense because the collection of expected items cannot depend on what
we see in the input stream.
* The `label` primitive now doesn\'t prepend the phrase “the rest of” to the
label when its inner parser produces hints after consuming input. In that
case `label` has no effect.
* Fixed the `Text.Megaparsec.Char.Lexer.charLiteral` so it can accept longer
escape sequences (max length is now 10).
* Added the `binDigitChar` functions in `Text.Megaparsec.Byte` and
`Text.Megaparsec.Char`.
* Added the `binary` functions in `Text.Megaparsec.Byte.Lexer` and
`Text.Megaparsec.Char.Lexer`.
* Improved case-insensitive character matching in the cases when e.g.
`isLower` and `isUpper` both return `False`. Functions affected:
`Text.Megaparsec.Char.char\'`.
* Renamed `getPosition` to `getSourcePos`.
* Renamed `getTokensProcessed` to `getOffset`, `setTokensProcessed` to
`setOffset`.
* Dropped `getTabWidth` and `setTabWidth` because tab width is irrelevant to
parsing process now, it\'s only relevant for pretty-printing of parse
errors, which is handled separately.
* Added and `withParsecT` in `Text.Megaparsec.Internal` to allow changing
the type of the custom data component in parse errors.
[#]## Parser state and input stream
* Dropped stacks of source positions. Accordingly, the functions
`pushPosition` and `popPosition` from `Text.Megaparsec` and
`sourcePosStackPretty` from `Text.Megaparsec.Error` were removed. The
reason for this simplification is that I could not find any code that uses
the feature and it makes manipulation of source positions hairy.
* Introduced `PosState` for calculating `SourcePos` from offsets and getting
offending line for displaying on pretty-printing of parse errors. It\'s now
contained in both `State` and `ParseErrorBundle`.
* Dropped `positionAt1`, `positionAtN`, `advance1`, and `advanceN` methods
from `Stream`. They are no longer necessary because `reachOffset` (and its
specialized version `reachOffsetNoLine`) takes care of `SourcePos`
calculation.
[#]## Parse errors
* `ParseError` now contains raw offset in input stream instead of
`SourcePos`. `errorPos` was dropped from `Text.Megaparsec.Error`.
* `ParseError` is now parametrized over stream type `s` instead of token
type `t`.
* Introduced `ParseErrorBundle` which contains one or more `ParseError`
equipped with all information that is necessary to pretty-print them
together with offending lines from the input stream. Functions like
`runParser` now return `ParseErrorBundle` instead of plain `ParseError`.
By default there will be only one `ParseError` in such a bundle, but it\'s
possible to add more parse errors to a bundle manually. During
pretty-printing, the input stream will be traversed only once.
* The primary function for pretty-printing of parse
errors—`errorBundlePretty` always prints offending lines now.
`parseErrorPretty` is still there, but it probably won\'t see a lot of use
from now on. `parseErrorPretty\'` and `parseErrorPretty_` were removed.
`parseTest\'` was removed because `parseTest` always prints offending lines
now.
* Added `attachSourcePos` function in `Text.Megaparsec.Error`.
* The `ShowToken` type class has been removed and its method `showTokens`
now lives in the `Stream` type class.
* The `LineToken` type class is no longer necessary because the new method
`reachOffset` of the type class `Stream` does its job.
* In `Text.Megaparsec.Error` the following functions were added:
`mapParseError`, `errorOffset`.
* Implemented continuous highlighting in parse errors. For this we added the
`errorComponentLen` method to the `ShowErrorComponent` type class.
[#]## Parse error builder
* The functions `err` and `errFancy` now accept offsets at which the parse
errors are expected to have happened, i.e. `Int`s. Thus `posI` and `posN`
are no longer necessary and were removed.
* `ET` is now parametrized over the type of stream `s` instead of token type
`t`.
* Combinators like `utoks` and `etoks` now accept chunks of input stream
directly, i.e. `Tokens s` instead of `[Token s]` which should be more
natural and convenient.
Fri Aug 17 14:00:00 2018 psimonsAATTsuse.com
- Update Cabal build information to support GHC 8.6.x.
Mon Jul 9 14:00:00 2018 psimonsAATTsuse.com
- Add megaparsec at version 6.5.0.