Releases: objectionary/eo-phi-normalizer
v1.0.0
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 #423 (comment) - 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
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 objectionary/eo#3213 (comment) - 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
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
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
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)
What's Changed (generated notes)
- fix: disable the pipeline job by @deemp in #133
- fix: print program by @deemp in #131
- chore(deps): update dependency pre-commit to v3.6.2 by @renovate in #141
- fix: downgrade resolver by @deemp in #146
- 130 update readme and site by @deemp in #134
- 138 fix the metric for dataless formations by @deemp in #142
- feat: support json output by @deemp in #143
- fix: run CI for all PRs by @deemp in #156
- 148 add static analysis tools to ci by @deemp in #157
- Fix rule 1 by @deemp in #152
- Confluence testing by @aabounegm in #136
- Refactor CLI and docs by @deemp in #153
- Improve confluence tests by @fizruk in #166
- Add a CLI arguments for maximum application depth and growth factor by @aabounegm in #173
- Apply substs from Phi and Ksi on current attribute by @aabounegm in #174
- Add support for Delta bindings with no value by @aabounegm in #184
- Test against EO compiler by @deemp in #98
- 190 fix
scripts/try-unphi.sh
by @deemp in #191 - Dataization by @aabounegm in #187
- Fix metrics by @deemp in #193
- Refactor CLI and metrics by @deemp in #211
- 208 support metrics report generation by @deemp in #212
- Elaboration by @aabounegm in #195
- 208 support metrics report generation by @deemp in #213
- chore(deps): update dependency pre-commit to v3.7.0 by @renovate in #219
- 220 support mathjax on the site by @deemp in #221
- fix(vscode settings): use external fourmolu by @deemp in #215
- Release v0.3.0 by @fizruk in #223
Full Changelog: v0.2.0...v0.3.0
v0.2.0
- 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)
What's Changed (generated)
- CLI outPath support by @aabounegm in #92
- chore(deps): update actions/checkout action to v4 by @renovate in #91
- fix: stack-action source by @deemp in #89
- Fix grammar by @fizruk in #97
- Global object matching by @aabounegm in #99
- fix: flag in stack-action by @deemp in #103
- 101 print a single normalized program when passed user defined rules by @deemp in #106
- Add rule 12 to the user-defined rules by @aabounegm in #109
- chore(deps): update dependency pre-commit to v3.6.1 by @renovate in #110
- 74 set up a site by @deemp in #104
- Rule feature: global counter by @aabounegm in #105
- Add rule 2 to user-defined rules by @aabounegm in #112
- Update CLI documentation by @aabounegm in #113
- 79 collect optimization metrics by @deemp in #121
- 123 improve readme structure by @deemp in #124
- chore: update resolver by @deemp in #125
- feat: user-defined rules page by @deemp in #128
- 126 fix grammar by @deemp in #127
- Release v0.2.0 by @fizruk in #129
Full Changelog: v0.1.0...v0.2.0