]> Git — Sourcephile - haskell/symantic-parser.git/blob - ChangeLog.md
rename {hut => code}.sourcephile.fr
[haskell/symantic-parser.git] / ChangeLog.md
1 ## symantic-parser-0.2.1.20210903
2
3 * Update documentation.
4
5 ## symantic-parser-0.2.1.20210803
6
7 * Add support for registers.
8 Symantic.Parser is now faster than Attoparsec on the Brainfuck benchmarks.
9 * Comply with [REUSE-3.0](https://reuse.software].
10 * Fix `checkedHorizon`'s handling by removing `horizonStack`
11 and putting both `input` and `checkedHorizon` on the `valueStack`.
12 * Update to [symantic-base 0.2](https://hackage.haskell.org/package/symantic-base).
13
14 ## symantic-parser-0.2.0.20210703
15
16 * Fix mutual let bindings by defining them all together.
17 * Add a fixpoint to analyse the minimal reads and raisable exceptions
18 of each let binding in the `Machine`.
19 Those analyses respectively enable to minimize calls to `checkHorizon`,
20 and minimize the number of `catchHandler`s passed to `call`s and `jump`s.
21 Computed values appear in golden tests.
22 * Add golden tests for `TemplateHaskell` splices using `runQ`
23 which is enough here and avoids to have a custom `Setup.hs`
24 in order to correctly run an external `ghc`
25 like [singletons](https://hackage.haskell.org/package/singletons-base-3.0/src/Setup.hs) does.
26 * Add preliminary support for error reporting using exceptions,
27 based upon: [A Parsing Machine for Parsing Expression Grammars with Labeled Failures](https://dl.acm.org/doi/10.1145/2851613.2851750)
28 * Add benchmarks for Brainfuck parsers.
29 * Change `ValueCode` to `Production` which relies upon `Data.Functor.Product`,
30 to be able to leverage type-classes to handle the burden of defining both
31 `Identity` and `CodeQ` for `Production` expressions.
32 * Rename `Symantic.Univariant` to `Symantic.Typed`.
33 * Add `Language.Haskell.TH.Show` utility to avoid
34 adding a `Symantic.Typed.View` entry into `Production`
35 which would make writing `Production`s even more painful.
36 This adds the benefit of printing any Haskell code,
37 instead of only operators having symantics, eg. in `Symantic.Typed.Lang`.
38 However `Symantic.Typed.View` is no longer used now,
39 and thus `lam1`s no longer singled-out, not a big deal though.
40 * Fix `parsingErrorExpecting` showing by using a sort not depending on
41 packages' ABI or whether cabal-install's setup is --inplace or not.
42 * Major refactoring.
43 * Minor other optimizations and fixes.
44
45 ## symantic-parser-0.1.0.20210201
46
47 * Add error reporting using the farthest position reached.
48 * Add factoring of minimal input length checks ("horizon" checks).
49 * Open data-types `Comb` and `Instr`
50 using a new technique based upon `data family` and `Typeable`.
51 * Leverage symantics further more to simplify the optimization passes.
52 * Rename some types and terms for clarity.
53 * Fix reproductibility of unit tests by hidding unique names.
54 * Add a few more tests.
55
56 ## symantic-parser-0.0.0.20210102
57
58 * Add missing golden tests in the Cabal tarball.
59
60 ## symantic-parser-0.0.0.20210101
61
62 * Initial (pre-alpha) release, on the unsuspecting world at sleep.