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