Changelog for eo-phi-normalizer-3.0.0
Changelog for eo-phi-normalizer
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to the Haskell Package Versioning Policy.
v3.0.0 - 2024-12-28
Breaking changes
- Switch to built-in rules until
new.yaml
rules work (#619) - Update EO to 0.50.0, use
yegor.yaml
by default (#617, #641)
Changes and fixes
- Rename
Normal form
toNF
(#627) - Run CI on PRs to
develop
(#638) - Sort options in command help messages (#642)
Documentation and maintenance
- Add quick start to the README (#632)
- Remove the description of dataization (#635)
- chore(deps): update baptiste0928/cargo-install action to v3.2.0 (#640)
v2.3.0 - 2024-12-05
Breaking changes
- Fix issues related to LaTeX (#598)
- Support syntax for constant objects (strings, ints, floats) (#602)
Changes and fixes
Documentation and maintenance
- Fix site generation (#612)
- Add examples to
rewrite
docs (#608) - chore(deps): update dependency prettier to v3.4.2 (#597)
v2.2.2 - 2024-11-29
New
- Add
--single-line
option to therewrite
command (#588)
Changes and fixes
- Fix pretty printing (#577, #586, #589)
- Allow optional
when
andtests
keys in rule files (#578) - Improve TeX output (#579)
- Fix typo in rule
R_rho
and add more tests (#587)
Documentation and maintenance
- Update haskell-actions/run-fourmolu action to v11 (#516)
- Update dependency prettier to v3.4.1 (#552)
- Update dependency pre-commit to v4 - autoclosed (#503)
- Update dependency eolang to ^0.24.0 (#520)
- Add
CONTRIBUTING.md
(#576)
v2.2.1 - 2024-11-27
Changes and fixes
- Fix rules file not included into the released Haskell package (#568)
v2.2.0 - 2024-11-26
Breaking changes
- Use rules from
new.yaml
by default (#555)
Changes and fixes
- Fix pretty-printing (#550)
Documentation and maintenance
- Fix menu on the site (#551)
v2.1.0 - 2024-11-22
Breaking changes
- Rename
transform
torewrite
in theeo-phi-normalizer
CLI (#369)
New
Documentation and maintenance
- Annotate files with copyright (#536)
- Move docs for user-defined rules to a separate page (#524)
- Document the release procedure (#532)
v2.0.0 - 2024-11-18
Breaking changes
- Rename
normalizer
toeo-phi-normalizer
everywhere (#494)
New
Changes and fixes
- Fix pretty-printer for applications and program (#529)
Documentation and maintenance
- Make site Markdown generation reproducible (#513, #514)
- Describe how to install a specific
normalizer
version (#525) - Speed up CI (#533)
- Switch the EO version from
0.38.4
to0.41.2
in CI (#528) - Switch to
macos-latest
in CI (#539)
v1.1.0 - 2024-10-03
New
- Add unit tests (#461)
- Add
R_DOT_ρ
(#468) - Support printing rules in LaTeX (#474)
- Automatically create an output directory (#499)
Changes and fixes
- Update the
COPY
rule as in phi-paper (#445) - Remove special case for delta binding since VTX is removed (#356)
- Replace
normalizer report
command with thenormalizer pipeline report
command (#456) - Fix sorting in numeric columns (#460)
- Run mdbook in the pipeline job (#463)
Documentation and maintenance
- Document all dependencies in a single doc in
eo/phi/normalizer/data
for each eo version (#446). - Create a metrics page on the site (#453)
- Chore(deps): update dependency pre-commit to v3.8.0 (#455)
- Provide instructions for the customer to check that we've completed the contract requirements (#458)
- Bump stack action version (#459)
- Update proposal process (#464)
- Document creating custom atoms on the site (#467)
v1.0.0 - 2024-07-19
New
- Align reductions from application to
⊥
with the paper (#418, #435) - Support enabling/disabling particular atoms (#426)
- Support custom rules (#432)
- Test ruleset
streams.yaml
with the example rule equipped with a passing test, matching https://github.com/objectionary/eo-phi-normalizer/issues/423#issue-2366637410 - Allow rules to go inside abstract objects (and add explicit
apply_in_abstract_subformations
option to maintain correctness foryegor.yaml
rules) - Support tail patterns (restricted one-hole contexts)
- Matching against objects inside dispatch
- Matching against objects inside application (left only)
- Properly generate fresh names
- Allow explicit
forall
to keep track of all metavariables for extra safety (force in the future, see #441). - Distinguish types of metavariables for extra safety.
- Test ruleset
Changes and fixes
Documentation and maintenance
- Update EO to 0.38.4 (#426)
v0.4.1 — 2024-06-12
Changes and fixes:
-
Undo injection of top-level Package lambda (#392)
-
Fix dataization (#395)
-
Fix pipeline script to run tests on normalized EO (#396)
-
Changes to normalizer (#396)
- Add
--wrap-raw-bytes
to automatically convert raw bytes (and terminations) in the output. This is a temporary fix, pending the change mentioned in https://github.com/objectionary/eo/issues/3213#issuecomment-2150032168 - Fix builtin normalizer to produce termination in some situations
- Fix dataization inside application/dispatch
- Fix encoding for strings to follow UTF-8 (compatibility with EO)
- Fix bool representation to require one byte (compatibility with EO)
- Fix integer division to truncate toward zero (compatibility with EO)
- Improve pretty-printer (use indentation)
- Update some examples/docs on the site
- Support up to 3 positional arguments in the builtin normalizer
- Add
-
Fix directory used in CI for:
Documentation and maintenance:
v0.4.0 — 2024-06-03
This version supports fast dataization with built-in rules and improves metrics with both built-in and user-defined rules (via YAML).
New:
- Add built-in rules
- Add more built-in dataization functions (#291)
- Support LaTeX format in output (#308)
- Speed up pipeline by caching EO compilation results (#340)
- Write generated PHI files as eo-phi-normalizer data files (#286)
- Update and commit docs in CI (#286)
Changes and fixes:
- Switch to EO 0.38.0 (#335)
- Remove VTX and Sigma (#335)
- Fix normalization and dataization rules w.r.t. xi and rho (see #297)
- Fix confluence tests (#319)
- Fix pipeline tests (#338)
- Integrate
transform-eo-tests
into normalizer (#365) - Switch to GHC 9.6.4 (#263)
Documentation and maintenance:
v0.3.1 — 2024-04-12
This version supports proper dataization of test programs with dependencies.
New:
- Add
--dependency-file FILE
option to enable dependencies (e.g.bool.phi
,bytes.phi
) (see #265)
Changes and fixes:
- Fix handling of
Package
atom (also improves related code, see #239 and #265) - Update the dataless objects metric (see #234)
- Improve reports (see #225)
Documentation and maintenance:
- Establish proposals format and process (see #248)
- Improve the docs job, improve the site, fix minor errors (see #228)
- Fix
hlint
warnings (see #241) - CI: run doctests (see #230)
- CI: switch back to the official
stack-action
(see #246) - CI: publish extra files in artifacts (in particular, dependencies like
bool.phi
, see #245)
v0.3.0 — 2024-03-26
In this version the main executable has been renamed to normalizer
and several commands have been implemented for normalization, dataization,
and reporting.
New:
- Command Line Interface:
- Add commands:
normalizer transform
to perform normalization without executing any atoms (was default behavior before)normalizer metrics
to compute metrics of a given φ-expression (see #153)normalizer dataize
to run partial evaluation of φ-expressions with atoms (see #187)normalizer report
to generate report based on the results of testing against the EO compiler (see #213)
- Add
--single
flag (see #131) - Add
--json
flag for machine-readable output format (see #143) - Add
--max-depth=N
and--max-term-size=N
options to control limits for the normalizer (see #173) - Improve
--chain
option to provide better elaboration on the applied normalization rules and the dataization process (see #195)
- Add commands:
- Update rule set for φ-calculus (see #152 and some changes in #136 and #166)
- Add property-based and regression tests for confluence (see #136 and #166)
- Tests and metrics against the EO compiler and standard EO test suite (see #98, #191)
Fixes:
- Count metrics, including dataless objects, correctly (see #142, #193, #211)
- Fix metavariables in context patterns (see #174)
- Support empty Δ-bindings (see #184)
Documentation has been improved (see #134, #221).
Maintenance:
- Run CI on all pull requests (see #156)
- Downgrade Stackage snapshot (see #146)
- Add HLint to CI (see #157)
v0.2.0 — 2024-02-16
- Complete implementation of Yegor's rules (see #109, #112)
- Fix grammar for \(\varphi\)-calculus (see #97 and #127)
- Improve documentation:
- Improve command line interface:
- Allow collection of metrics for \(\varphi\)-terms (see #121)
v0.1.0 - 2024-02-02
First version of the normalizer.