Skip to content

Releases: j-mie6/parsley

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

Parsley 2.2.2

25 Jan 15:34
391612d
Compare
Choose a tag to compare

This version addresses a very minor duplication in foldRight1 and foldLeft1, where they unnecessarily duplicate the callee, instead of generating a subroutine.

Parsley 2.2.1

16 Jan 21:05
e283670
Compare
Choose a tag to compare

Fixed a bug where chain.left1 does not correctly wrap up a lone atom when the operator fails (since it was left on the stack unchanged). This affected generalised precedence tables.

Parsley 2.2.0

16 Jan 18:01
6ccf3e4
Compare
Choose a tag to compare

This release has laid the groundwork (and hopefully final!) for the Parsley 3.0.0 new-style API. Any and all of the old-style API has been deprecated strongly and will be removed in Parsley 3.0.0. A full description of these changes can be found here.

What's New

In addition to lift1 through lift3, lift4 through lift22 have been added to parsley.lift. To complement these, parsley.implicits contains some extension methods which allow the method .lift on any value or function (corresponding to pure or the liftN of the correct arity N).

The logic of the former ExpressionParser has been redesigned and can be found in parsley.expr

What's Deprecated

The following classes/combinators have been deprecated:

Classes

  • parsley.BitGen
  • All combinators in parsley.Char
  • parsley.CharSet
  • All combinators in parsley.Combinator
  • All functionality in parsley.ExpressionParser
  • parsley.Impl
  • All implicits in parsley.Implicits
  • parsley.LanguageDef
  • parsley.NotRequired
  • parsley.Parser
  • parsley.Predicate
  • parsley.Reg
  • All functionality in parsley.TokenParser

Combinators

  • parsley.Parsley.many
  • parsley.Parsley.skipMany
  • parsley.Parsley.lift1
  • parsley.Parsley.lift2
  • parsley.Parsley.lift3
  • parsley.Parsley.get
  • parsley.Parsley.put
  • parsley.Parsley.gets
  • parsley.Parsley.modify
  • parsley.Parsley.local
  • parsley.Parsley.rollback

Parsley 2.1.0

10 Jan 13:24
65f551b
Compare
Choose a tag to compare

What's New

Added the foldLeft1 and foldRight1 combinators

What's Fixed

Fixed #37, which was caused by using foldLeft instead of foldLeft1