## symantic-parser-0.2.2.20211008 (2021-10-08) ### Interface * Update release `version`. ### Documentation * Update. ### Implementation * Update `symantic-base` dependency. ### Build * Add `git-chglog`. * Add checks before `upload`. ## symantic-parser-0.2.1.20210903 * Update documentation. ## symantic-parser-0.2.1.20210803 * Add support for registers. Symantic.Parser is now faster than Attoparsec on the Brainfuck benchmarks. * Comply with [REUSE-3.0](https://reuse.software]. * Fix `checkedHorizon`'s handling by removing `horizonStack` and putting both `input` and `checkedHorizon` on the `valueStack`. * Update to [symantic-base 0.2](https://hackage.haskell.org/package/symantic-base). ## 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](https://hackage.haskell.org/package/singletons-base-3.0/src/Setup.hs) does. * Add preliminary support for error reporting using exceptions, based upon: [A Parsing Machine for Parsing Expression Grammars with Labeled Failures](https://dl.acm.org/doi/10.1145/2851613.2851750) * 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. * Fix `parsingErrorExpecting` showing by using a sort not depending on packages' ABI or whether cabal-install's setup is --inplace or not. * 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.