Changelog for eo-phi-normalizer-2.1.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.
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.