- Improve CLI implementation
- Upgrade minitt-util
- Add
Sub
impl forDBI
-like types
- Replace AppVeyor + CircleCI with GitHub Actions
- Support saving & loading command line history
- Add
fall
back - Fix the fix to expand-global on neutral terms and a typo
- Inline metas more eagerly (#178)
- Improve pest utility
- Unification now unifies extension
- Fix expand-global on neutral terms and a typo
- Documentation fix
- Add few more power to the util library
- Mock terms in a smarter way (#174)
- Make lift actually work (#175)
- Expand global references in nested neutral terms (#176)
- Update docs
- Move
Axiom
tovoile-util
- Move
lisp
,common.rs
tovoile-util
- Create a meta variable utility in
voile-util
- Integrate
minitt-util
for CLI - Fix type-checking bug
- Fix reduction bug
- Create another subcrate
voile-util
, move the pest helpers,vec1
,UID
-relevant utilities andSyntaxInfo
into it - Rename
SyntaxInfo
toLoc
,ToSyntaxInfo
toToLoc
,syntax_info
toloc
, etc.
- Implicit argument (#115) (https://github.com/owo-lang/voile-rs/compare/0.1.3...b592c09870bf27b8a89cc2b65c2578a231cd1ec4)
- More unification rules
- Case-split parser (#82), core language elements (#2)
- Update structopt to 0.3
- Implement record projection (#151, #152, #158)
- Update
vec1
utility
- Update typing rule for
cons
- Support record construction parsing, type-checking, conversion checking, reduction and inference (#146, #147)
- Support empty record and variants (#154)
Closure
is now a variant (#149)- More unification rules
- Fix core language
is_type
judgement - Update mod rustdoc
- Evaluation for
RowPoly
- Error message is now "change my mind" (#126)
- Introduce
vec1
(#127) - New syntax for
Rec
andSum
- Remove
check_type(e)
, replace withcheck(e, TypeOmega)
(#140) - Add subtyping back (#132)
- Add row kinds according to the paper (#83)
- Row-kinding type-checking (#137)
- Update KaTeX and crate rustdoc
- Documentation cleanup
- Report error on redefinitions (#107)
- Unification (#105, #110)
- Meta variable solving (#104, #110, #119, #120)
- Use Rust's newtype pattern to represent different indices (#111, #112)
- Infer lambda types using metas (#117)
- Memory optimizations
- Update dependency versions
- Remove
Bot
in core (#78) - Introduce standalone
Axiom
type (#91) - Code cleanup, remove
compile
andName
(#84) - Introduce level lifting operation and level checking (#77)
- Remove lambda parameter (#89)
- Rename
Abs::Var
andAbs::Local
toAbs::Ref
andAbs::Var
respectively to fitVal
's naming convention - Redesigned global references (#96) to support mutual recursion
- Introduce omega level (#99)
- Support inferring omega level (#101). This does not look like something that will be used in the near future.
- Add
-e
option forvoilec
, add:infer
,:eval
, and:level
REPL commands (#90) - Use more TeX in
lib.rs
comments
- Rename
ConsType
toVariant
,Term
toVal
- Improve lambda compilation (#71, #73)
Variant
related checking, introduceSum
in core (#11, #70)- Remove features of
clap
to avoid transitive winapi 0.2.8 dependency - Now we're not compiling after tycking, but transform the tycked terms (#74, #75)
- REPL (#56, #76)
- The message "Type-Check successful." is changed to "Checkmate, dram!"
- Fix wrong desugar of sum expression
- Fix closure instantiation
- Tuple desugar (#51)
- Lambda desugar (#59, #62)
- Upgrade KaTeX to 0.10.2
- Largely refactor abstract syntax translation logic
- Abstract/Core pretty-printer
- Fix evaluator and parameter desugarer (#44, #67, #68)
- Give up implicit parameters (#32)
- Cleanup (#23, #39, #41)
- Improve abstract syntax (#21, #24, #43)
- Add documentation guidelines
- Improve type-checking state (#15, #39, #40)
- Fix DBI-based lambda instantiation for real (#47, #48)
- Implement shadowing (#45)
- Redesign lambda syntax (#46, #49)
- Introduce core term tests (#17)
- Fix DBI-based lambda instantiation (#16)
- Remove captured env in closure (#19)
- Introduce
RedEx
- Introduce Type-Checking Monad
- Introduce the abstract syntax
- Basic desugar: translate surface syntax to abstract syntax
- Improve documentation, start writing the tutorial
- Implemented the expression parser
- Replace
Pi
,Sigma
withDt
- Further improve the surface syntax tree for expressions
- Implemented a STLC core language
- Parser prototype
- CLI prototype
- Create package on crates.io