Skip to content

Latest commit

 

History

History
108 lines (64 loc) · 6.38 KB

CHANGELOG.markdown

File metadata and controls

108 lines (64 loc) · 6.38 KB

5.2.0 (2023-10-31)

Dependencies

Features

5.1.0 (2023-09-23)

Features

  • add {Modifier,Scope}.register_printer for printing unhandled effects (#117) (189f8e3)

5.0.2 (2023-08-22)

This is a minor update that uses the new infix operators introduced in bwd 2.2.0 internally. No APIs were changed.

5.0.1 (2023-05-25)

This version involves breaking changes to the API. Note: please skip the bad version 5.0.0.

Bug Fixes

  • Scope: hide the internal Modifier completely (#109) (6e3ca4e)

Features

  • Language: add the abbreviation id = seq [] (#106) (12ffa87)
  • Scope: added import_singleton (#105) (c12f9c5)
  • Scope: many operations now take optional modifiers (#108) (8c1ded9)

BREAKING CHANGES

All breaking changes come with type changes. That is, if OCaml is still happy with your code that worked with 4.0.0, your code will work with 5.0.0.

  • Scope.Make is taking only one module with the type parameters, not also a module implementing Modifier.S. That is, you should change the code

    module Modifier = Yuujinchou.Modifier.Make(Param)
    module Scope = Yuujinchou.Scope.Make(Param)(Modifier)

    to just the following line

    module Scope = Yuujinchou.Scope.Make(Param)
  • Scope.S.modify is removed; instead, many operations now take optional modifiers (#108) (8c1ded9)

  • Language.any is renamed to Language.all (#107) (313f616)

  • If you have been passing contexts to operations in Scope.S, the labels for optional context arguments might have been adjusted for uniformity. Previously, some context arguments were named context, but now they are uniformly named as conetext_visible, context_export, or context_modifier depending on their usage.

4.0.0 (2022-12-16)

Features

  • register printers for yuujinchou effects (#102) (3b89480)
  • Scope: parametrize Scope.Make by a modifier (#98) (4a2f3ef)
  • Trie: add Trie.untag (4671c83)
  • Trie: add type alias untagged (031ac7a)

BREAKING CHANGES

  • break the functor Run into Run and TryWith (#97) (3ac136c)
  • use labelled arguments instead of functors (#99) (256b5e7)

3.1.0 (2022-07-11)

BREAKING CHANGES

  • Use modules instead of records to pass effect handlers (#94)

3.0.0 (2022-06-03)

BREAKING CHANGES

Version 3.0.0 is a complete redesign and rewrite of the library, with the following notable changes:

  1. Algebraic effects are used everywhere.
  2. A new module Scope was introduced for lexical scoping.
  3. Tries were augmented with tags to support constant-time retagging.
  4. Renaming now shadows conflicting names in the target subtree instead of merging with them. See Language.renaming.
  5. There is a design document under docs/.

The old client code that works with yuujinchou 2.0.0 will stop working with the new version.

2.0.0 (2022-03-07)

Bug Fixes

  • action: pass rev_prefix to the final union (#58) (000df38)

Code Refactoring

  • trie: drop almost all requirements of physical equality (#54) (262e1be)

Features

BREAKING CHANGES

  • action: run and run_with_hooks now take a monadic merger
  • trie: drop all *_endo functions and physical equality requirements