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 Semantic Versioning.
0.2.1 - 2021-12-12
- Fix the precedence of arithmetic operators (PR#57, which was encouraged by Issue#56 by @michallepicki).
- Fix the associativity of arithmetic operators (PR#68, which was encouraged by Issue#67 by @michallepicki).
- Support OCaml 4.13 (PR#50 by @smorimoto).
0.2.0 - 2021-10-03
- Allow test modules to be dependent on the main module (PR#47, which was encouraged by Issue#19 by @michallepicki).
- Add a new field
language
to the config file format (PR#36). - Add the attribute
#[doc(...)]
for doc comments on declarations and equip the mechanism of the document generation (PR#42). - Allow patterns for function parameters (PR#45).
- Allow
receive
-expressions to haveafter
-branches (PR#46; breaking change due to a new keywordafter
).
- Change the typing rules for records from a record polymorphism similar to that of SML# to a kind of row polymorphism (PR#39; breaking change).
- Change the type for the hole
~s
in patterns fromlist<char>
tobinary
(PR#33; breaking change). - Omit the fallback mechanism for the old config file name
package.yaml
(PR#40; breaking change). - Change how to compile messages so that
GenServer
can providehandle_timeout
(\PR#44; breaking change for FFIs). - Reject
do
-expressions without binders (PR#45; breaking change). - Remove floating-point-number-related primitives (PR#48; breaking change).
0.1.5 - 2021-08-14
- Fix an unsound type-checking behavior about record kinds (PR#35).
0.1.4 - 2021-07-15
- Rename configuration files from
package.yaml
tosesterl.yaml
while providing a fallback mechanism (PR#32 by @michallepicki).
0.1.3 - 2021-07-11
- Fix how to load test dependencies.
- Fix how to output string/binary literals about non-ASCII characters (PR#22 by @michallepicki).
- Update GitHub Actions workflow (PR#12 by @smorimoto).
- Fix how to check type definitions (PR#30).
- Fix how to perform the universal quantification (PR#31).
0.1.2 - 2021-05-29
- Introduce the notion of attributes of the form
#[foo(…)]
. - Introduce attributes
#[test]
,#[behavior(…)]
, and#[atom(…)]
. - Add the syntax
assert e
for tracking code positions in unit tests. - Separate test dependencies from dependencies.
- Collaborate with EUnit.
- Add the syntax
open M
.
- Change how to compile
None
andSome
(breaking change for FFIs).
- Largely fix the type-checking algorithm (mainly about how to track type synonyms).
- Fix how to treat relative paths given via command lines.
0.1.1 - 2021-05-16
- Add the syntax sugar of list patterns.
- Add patterns of the form
Module.Constructor
. - Add the variant type
result
. - Add first-class modules based on the formalization of F-ing modules.
- Add option
-p
for specifying paths of external packages, which will be used mainly for the collaboration with Rebar3.
- Change output module names from
foo_bar_baz.erl
toFoo.Bar.Baz.erl
(breaking change for FFIs).
- Fix the parser about unit patterns and Boolean patterns.
- Quote global names in order to avoid clashes with keywords.
0.1.0 - 2021-05-02
- Develop the collabration with Rebar3.
- Add the command line
sesterl config <input>
for generatingrebar.config
.
- Change the command line spec from
sesterl <input> -o <output>
tosesterl build <input> -o <output>
. - Change the syntax of effect types from
[τ]τ
tofun(τ, …, τ) -> [τ]τ
(breaking change). - Separate the syntax of expressions and that of computations by using the newly introduced keyword
act
(breaking change).
The initial release