Skip to content

Releases: j-mie6/parsley

Parsley 2.6.2

10 Feb 11:17
f602755
Compare
Choose a tag to compare

This release has some minor improvements to the error messages #66, and gives an additional performance improvement by removing the old system #65. In addition, fixes #63 by incorporating #64.

Parsley 2.6.1

08 Feb 19:20
010d557
Compare
Choose a tag to compare

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

07 Feb 23:51
30e5c72
Compare
Choose a tag to compare

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

03 Feb 21:18
e1d497b
Compare
Choose a tag to compare

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

03 Feb 14:19
c6834c1
Compare
Choose a tag to compare

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

01 Feb 19:15
66834b2
Compare
Choose a tag to compare

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

01 Feb 18:13
3de7871
Compare
Choose a tag to compare

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

28 Jan 19:06
1f04286
Compare
Choose a tag to compare

Fixed #54, which essentially rendered decide with two arguments useless. It now works as intended.

Parsley 2.4.0

28 Jan 18:06
d29d318
Compare
Choose a tag to compare

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

25 Jan 21:37
eafc98f
Compare
Choose a tag to compare

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 and foldLeft1
  • Slight performance improvement for chain.left1 and chain.left
  • Added parseFromFile method to parsers