Changelog for symantic-parser-0.2.1.20210803
symantic-parser-0.2.0.20210703
- Fix mutual let bindings by defining them all together.
- Add a fixpoint to analyse the minimal reads and raisable exceptions
of each let binding in the
Machine
.
Those analyses respectively enable to minimize calls to checkHorizon
,
and minimize the number of catchHandler
s passed to call
s and jump
s.
Computed values appear in golden tests.
- Add golden tests for
TemplateHaskell
splices using runQ
which is enough here and avoids to have a custom Setup.hs
in order to correctly run an external ghc
like singletons does.
- Add preliminary support for error reporting using exceptions,
based upon: A Parsing Machine for Parsing Expression Grammars with Labeled Failures
- Add benchmarks for Brainfuck parsers.
- Change
ValueCode
to Production
which relies upon Data.Functor.Product
,
to be able to leverage type-classes to handle the burden of defining both
Identity
and CodeQ
for Production
expressions.
- Rename
Symantic.Univariant
to Symantic.Typed
.
- Add
Language.Haskell.TH.Show
utility to avoid
adding a Symantic.Typed.View
entry into Production
which would make writing Production
s even more painful.
This adds the benefit of printing any Haskell code,
instead of only operators having symantics, eg. in Symantic.Typed.Lang
.
However Symantic.Typed.View
is no longer used now,
and thus lam1
s no longer singled-out, not a big deal though.
- Major refactoring.
- Minor other optimizations and fixes.
symantic-parser-0.1.0.20210201
- Add error reporting using the farthest position reached.
- Add factoring of minimal input length checks ("horizon" checks).
- Open data-types
Comb
and Instr
using a new technique based upon data family
and Typeable
.
- Leverage symantics further more to simplify the optimization passes.
- Rename some types and terms for clarity.
- Fix reproductibility of unit tests by hidding unique names.
- Add a few more tests.
symantic-parser-0.0.0.20210102
- Add missing golden tests in the Cabal tarball.
symantic-parser-0.0.0.20210101
- Initial (pre-alpha) release, on the unsuspecting world at sleep.