Releases: j-mie6/parsley
Parsley 2.6.2
Parsley 2.6.1
There have been a couple of bugs found over the last day:
- Unexpected strings that contain newlines miss their closing quote
- Some of the expected hints were determined to be stale when this wasn't the case
- Some of the expected hints were determined to be valid when this wasn't the case
These have all been fixed now, and this is a much more stable version.
Parsley 2.6.0
This release incorporates #61, which is a huge overhaul of the existing error message framework. It seems mostly stable at this point, but there are a couple of minor pain points to be addressed in due course. The label
combinator has been deprecated for removal in 3.0.0 and replaced by the .label
method. The label combinators work a lot better now! The old (very broken) behaviour is found in unsafe.ErrorLabel
, use at your own risk.
The error messages themselves have been improved a lot and will continue to improve with further patches in the 2.6 series.
Parsley 2.5.0
This release adds #59, which adds additional functionality to the implicits for "higher-arity" map operations. In short, before it was possible to write:
f.lift(px, py)
However, Scala is inherently relunctant to give f
a type if it is a lambda, such as _ + _
. To improve this situation, the map combinators can been extended to provide this functionality in reverse:
(px, py).map(f)
This way, (px, py).map(_ + _)
is now valid and will typecheck fine. There is support for up to 22 argument functions, like the lift
implicits. This is in turn a better replacement for the (px <~> py).map((_ + _).tupled)
idiom (which is equivalent to (px <~> py).map { case (x, y) => x + y }
) and scales much more readily!
Parsley 2.4.4
This release guarantees full thread-safety of the AST and compilation step of Parsley. In addition, code generation times have improved, and potential code blow-up has been mitigated for parsers which heavily influence the default error messages. Consists of work performed in #58 and undoes work done in #57.
Parsley 2.4.3
This one should hopefully fix the same race condition that 2.4.2 apparently fixed. This one is really quite a tricky one...
Parsley 2.4.2
This release should fix an apparent race condition when two threads try and compile a shared parser (running a shared parser is completely thread-safe!) #57
Parsley 2.4.1
Fixed #54, which essentially rendered decide
with two arguments useless. It now works as intended.
Parsley 2.4.0
As it turns out, the ~>
and <~
combinators were missing from the API. This has been rectified. In addition, collectMsg
has been added for finer control over error messages when using the collect
combinator.
Parsley 2.3.0
This release merges the #42 and #43 PRs.
What's New
- Added
reduceLeft
,reduceLeftOption
,reduceRight
,reduceRightOption
combinators - Added the
zip
alias to<~>
- Improved performance of
foldLeft
andfoldLeft1
- Slight performance improvement for
chain.left1
andchain.left
- Added
parseFromFile
method to parsers