Changelog of @hackage/eo-phi-normalizer 0.3.1

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.

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)
  • 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)
    • Support global counter in user-defined rules (see #105)
    • Context matching (global object and this object, see #99)
  • Fix grammar for \(\varphi\)-calculus (see #97 and #127)
  • Improve documentation:
    • Set up wesbite for documentation (see #104, #124, and #128)
    • Update CLI documentation (see #113)
  • Improve command line interface:
    • Support --output/-o command line option (see #92)
    • Remove logs from default output (see #106)
  • Allow collection of metrics for \(\varphi\)-terms (see #121)

v0.1.0 - 2024-02-02

First version of the normalizer.