1
1
mirror of https://github.com/anoma/juvix.git synced 2024-12-03 09:41:10 +03:00
juvix/CHANGELOG.md

1713 lines
86 KiB
Markdown
Raw Normal View History

# Changelog
<a href="https://github.com/anoma/juvix">
<img align="right" width="300" height="300" alt="Juvix Mascot" src="../assets/images/tara-smiling.svg" />
</a>
2023-06-09 19:44:39 +03:00
## [v0.4.0 - Prague!](https://github.com/anoma/juvix/tree/v0.4.0) (2023-06-02)
[Full Changelog](https://github.com/anoma/juvix/compare/v0.3.5...v0.4.0)
**Implemented enhancements:**
- Always print source of formatted file unless --check is specified [\#2173](https://github.com/anoma/juvix/pull/2173) ([paulcadman](https://github.com/paulcadman))
- Improve parsing error messages [\#2170](https://github.com/anoma/juvix/pull/2170) ([lukaszcz](https://github.com/lukaszcz))
**Merged pull requests:**
- Use stderr for errors in the runtime [\#2184](https://github.com/anoma/juvix/pull/2184) ([lukaszcz](https://github.com/lukaszcz))
- Change terminal colours to be more align with the scheme [\#2183](https://github.com/anoma/juvix/pull/2183) ([vrom911](https://github.com/vrom911))
- Respect fixity in runtime printer [\#2182](https://github.com/anoma/juvix/pull/2182) ([lukaszcz](https://github.com/lukaszcz))
- Format returns 0 when file is not formatted [\#2181](https://github.com/anoma/juvix/pull/2181) ([vrom911](https://github.com/vrom911))
- Print values in `juvix eval` [\#2179](https://github.com/anoma/juvix/pull/2179) ([lukaszcz](https://github.com/lukaszcz))
- Fix 'function not found' error in `juvix eval` [\#2178](https://github.com/anoma/juvix/pull/2178) ([lukaszcz](https://github.com/lukaszcz))
- Store source location of \(almost\) everything [\#2174](https://github.com/anoma/juvix/pull/2174) ([janmasrovira](https://github.com/janmasrovira))
- Do not filter unreachable symbols when compiling for REPL [\#2172](https://github.com/anoma/juvix/pull/2172) ([paulcadman](https://github.com/paulcadman))
2023-06-02 18:28:07 +03:00
## [v0.3.5](https://github.com/anoma/juvix/tree/v0.3.5) (2023-06-02)
[Full Changelog](https://github.com/anoma/juvix/compare/v0.3.4...v0.3.5)
**Implemented enhancements:**
- Update standard library for better readability, efficiency and iterator use [\#2153](https://github.com/anoma/juvix/pull/2153) ([lukaszcz](https://github.com/lukaszcz))
- Use the`JUVIX_LLVM_DIST_PATH` environment variable to search for the clang executable [\#2152](https://github.com/anoma/juvix/pull/2152) ([paulcadman](https://github.com/paulcadman))
- Finish the new pretty printing algorithm and delete the old one [\#2151](https://github.com/anoma/juvix/pull/2151) ([janmasrovira](https://github.com/janmasrovira))
- Add `:doc` command to the repl [\#2142](https://github.com/anoma/juvix/pull/2142) ([janmasrovira](https://github.com/janmasrovira))
- Allow to specify VampIR variable names [\#2141](https://github.com/anoma/juvix/pull/2141) ([lukaszcz](https://github.com/lukaszcz))
- VampIR pipeline: handle booleans in the type of `main` [\#2137](https://github.com/anoma/juvix/pull/2137) ([lukaszcz](https://github.com/lukaszcz))
- Add `main` field to `juvix.yaml` [\#2120](https://github.com/anoma/juvix/pull/2120) ([janmasrovira](https://github.com/janmasrovira))
- Add `:def` command to the repl [\#2119](https://github.com/anoma/juvix/pull/2119) ([janmasrovira](https://github.com/janmasrovira))
**Merged pull requests:**
- Properly scan imports inside local modules [\#2165](https://github.com/anoma/juvix/pull/2165) ([janmasrovira](https://github.com/janmasrovira))
- Add extra git dependencies to `cabal.project` [\#2158](https://github.com/anoma/juvix/pull/2158) ([janmasrovira](https://github.com/janmasrovira))
- Support new `import ... open` syntax in REPL [\#2156](https://github.com/anoma/juvix/pull/2156) ([paulcadman](https://github.com/paulcadman))
- Add the `format` pragma [\#2150](https://github.com/anoma/juvix/pull/2150) ([lukaszcz](https://github.com/lukaszcz))
- Remove code for `Eval` and `Print` statements [\#2149](https://github.com/anoma/juvix/pull/2149) ([lukaszcz](https://github.com/lukaszcz))
- Fix printing of infix constructor values [\#2144](https://github.com/anoma/juvix/pull/2144) ([lukaszcz](https://github.com/lukaszcz))
- Add `ValueType` [\#2143](https://github.com/anoma/juvix/pull/2143) ([janmasrovira](https://github.com/janmasrovira))
- Add `Semigroup` instance for `AnsiText` [\#2140](https://github.com/anoma/juvix/pull/2140) ([janmasrovira](https://github.com/janmasrovira))
- Show unicode characters without escaping [\#2127](https://github.com/anoma/juvix/pull/2127) ([janmasrovira](https://github.com/janmasrovira))
- Iterator syntax [\#2126](https://github.com/anoma/juvix/pull/2126) ([lukaszcz](https://github.com/lukaszcz))
- Fix spurious messages from Makefile.generic [\#2125](https://github.com/anoma/juvix/pull/2125) ([lukaszcz](https://github.com/lukaszcz))
- Add gnu-sed to the macOS build in the CI [\#2123](https://github.com/anoma/juvix/pull/2123) ([jonaprieto](https://github.com/jonaprieto))
- Fix baseUrl for juvix docs in Doctor command [\#2122](https://github.com/anoma/juvix/pull/2122) ([vrom911](https://github.com/vrom911))
- Remove --no-format option [\#2121](https://github.com/anoma/juvix/pull/2121) ([vrom911](https://github.com/vrom911))
- Add Bottom node [\#2112](https://github.com/anoma/juvix/pull/2112) ([janmasrovira](https://github.com/janmasrovira))
- VampIR integration [\#2103](https://github.com/anoma/juvix/pull/2103) ([lukaszcz](https://github.com/lukaszcz))
- Add VampIR to the CI [\#2096](https://github.com/anoma/juvix/pull/2096) ([jonaprieto](https://github.com/jonaprieto))
2023-05-22 19:51:42 +03:00
## [v0.3.4](https://github.com/anoma/juvix/tree/v0.3.4) (2023-05-22)
[Full Changelog](https://github.com/anoma/juvix/compare/v0.3.3...v0.3.4)
**Implemented enhancements:**
- Allow symbol renaming inside `using {..}` [\#2109](https://github.com/anoma/juvix/pull/2109) ([janmasrovira](https://github.com/janmasrovira))
- Scope check symbols inside `using {..}` and `hiding {..}` [\#2108](https://github.com/anoma/juvix/pull/2108) ([janmasrovira](https://github.com/janmasrovira))
- Pass through compile optimization flag to C compiler and disable optimization for --debug [\#2106](https://github.com/anoma/juvix/pull/2106) ([paulcadman](https://github.com/paulcadman))
- Add syntax for Judoc blocks [\#2102](https://github.com/anoma/juvix/pull/2102) ([janmasrovira](https://github.com/janmasrovira))
- Add dangling judoc error [\#2099](https://github.com/anoma/juvix/pull/2099) ([janmasrovira](https://github.com/janmasrovira))
- Modify `open import` syntax [\#2098](https://github.com/anoma/juvix/pull/2098) ([janmasrovira](https://github.com/janmasrovira))
- Improve error message when input path doesn't exist [\#2092](https://github.com/anoma/juvix/pull/2092) ([paulcadman](https://github.com/paulcadman))
- Partial incremental highlighting [\#2053](https://github.com/anoma/juvix/pull/2053) ([janmasrovira](https://github.com/janmasrovira))
- Normalization by Evaluation [\#2038](https://github.com/anoma/juvix/pull/2038) ([lukaszcz](https://github.com/lukaszcz))
- Inlining [\#2036](https://github.com/anoma/juvix/pull/2036) ([lukaszcz](https://github.com/lukaszcz))
**Merged pull requests:**
- Use PrettyCode instance instead of obsolete ppUsingItem in Print.Base [\#2115](https://github.com/anoma/juvix/pull/2115) ([janmasrovira](https://github.com/janmasrovira))
- Add `syntax` keyword [\#2107](https://github.com/anoma/juvix/pull/2107) ([lukaszcz](https://github.com/lukaszcz))
- Simplify formatting of lambdas with a single clause [\#2105](https://github.com/anoma/juvix/pull/2105) ([janmasrovira](https://github.com/janmasrovira))
- Fix extra whitespace in text rendering of indented empty lines [\#2101](https://github.com/anoma/juvix/pull/2101) ([paulcadman](https://github.com/paulcadman))
- Reachability analysis in Core [\#2097](https://github.com/anoma/juvix/pull/2097) ([lukaszcz](https://github.com/lukaszcz))
- Slightly improve prettyprinting for Core [\#2094](https://github.com/anoma/juvix/pull/2094) ([janmasrovira](https://github.com/janmasrovira))
- Bump to LTS Haskell 20.21 \(ghc-9.2.7\) [\#2093](https://github.com/anoma/juvix/pull/2093) ([jonaprieto](https://github.com/jonaprieto))
- Direct translation from normalized JuvixCore to VampIR [\#2086](https://github.com/anoma/juvix/pull/2086) ([lukaszcz](https://github.com/lukaszcz))
- ci: clean .juvix-build directory before formatting/typechecking examples [\#2079](https://github.com/anoma/juvix/pull/2079) ([paulcadman](https://github.com/paulcadman))
- Fix format on projects that contain subprojects [\#2078](https://github.com/anoma/juvix/pull/2078) ([paulcadman](https://github.com/paulcadman))
- Implement core transformation `let-hoisting` [\#2076](https://github.com/anoma/juvix/pull/2076) ([janmasrovira](https://github.com/janmasrovira))
- Allow nested block comments [\#2075](https://github.com/anoma/juvix/pull/2075) ([janmasrovira](https://github.com/janmasrovira))
- Fix topCommandInputFile for Format command [\#2063](https://github.com/anoma/juvix/pull/2063) ([vrom911](https://github.com/vrom911))
- Fix reachability analysis with imports in unreachable nested modules [\#2062](https://github.com/anoma/juvix/pull/2062) ([lukaszcz](https://github.com/lukaszcz))
- Fix devcontainer juvix install [\#2061](https://github.com/anoma/juvix/pull/2061) ([paulcadman](https://github.com/paulcadman))
- Fix Makefile target bugs for formatting and type Checking Juvix files [\#2057](https://github.com/anoma/juvix/pull/2057) ([jonaprieto](https://github.com/jonaprieto))
- Fix a bug in the positivity checker \(\#1943\) [\#2054](https://github.com/anoma/juvix/pull/2054) ([jonaprieto](https://github.com/jonaprieto))
- Arity check types and functions \(-\>\) [\#2049](https://github.com/anoma/juvix/pull/2049) ([janmasrovira](https://github.com/janmasrovira))
- Fix ordering of statements in Abstract -\> Internal [\#2040](https://github.com/anoma/juvix/pull/2040) ([janmasrovira](https://github.com/janmasrovira))
2023-05-08 13:52:11 +03:00
## [v0.3.3](https://github.com/anoma/juvix/tree/v0.3.3) (2023-05-08)
[Full Changelog](https://github.com/anoma/juvix/compare/v0.3.2...v0.3.3)
**Implemented enhancements:**
- Update to latest stdlib [\#2048](https://github.com/anoma/juvix/pull/2048) ([paulcadman](https://github.com/paulcadman))
- Support module imports in Juvix REPL [\#2029](https://github.com/anoma/juvix/pull/2029) ([paulcadman](https://github.com/paulcadman))
- Make format command's filepath optional [\#2028](https://github.com/anoma/juvix/pull/2028) ([vrom911](https://github.com/vrom911))
- format long lambda clause body on a new line [\#2015](https://github.com/anoma/juvix/pull/2015) ([paulcadman](https://github.com/paulcadman))
- Support more paths [\#2000](https://github.com/anoma/juvix/pull/2000) ([janmasrovira](https://github.com/janmasrovira))
- Add: pragma support [\#1997](https://github.com/anoma/juvix/pull/1997) ([lukaszcz](https://github.com/lukaszcz))
**Merged pull requests:**
- Fix pipeline setup in the repl [\#2046](https://github.com/anoma/juvix/pull/2046) ([janmasrovira](https://github.com/janmasrovira))
- Fix HasExpressions ConstructorApp [\#2044](https://github.com/anoma/juvix/pull/2044) ([paulcadman](https://github.com/paulcadman))
- Fix fromSource behaviour when both stdin and filename [\#2043](https://github.com/anoma/juvix/pull/2043) ([vrom911](https://github.com/vrom911))
- Return endLine info in highlighting command [\#2042](https://github.com/anoma/juvix/pull/2042) ([vrom911](https://github.com/vrom911))
- Enable self-application test [\#2041](https://github.com/anoma/juvix/pull/2041) ([janmasrovira](https://github.com/janmasrovira))
- Add bank example [\#2037](https://github.com/anoma/juvix/pull/2037) ([janmasrovira](https://github.com/janmasrovira))
- Substitute calls after lambda lifting [\#2031](https://github.com/anoma/juvix/pull/2031) ([janmasrovira](https://github.com/janmasrovira))
- Add delimiter face [\#2027](https://github.com/anoma/juvix/pull/2027) ([janmasrovira](https://github.com/janmasrovira))
- Propertly register top module name in scoper [\#2026](https://github.com/anoma/juvix/pull/2026) ([janmasrovira](https://github.com/janmasrovira))
- Add judoc code annotation and face [\#2025](https://github.com/anoma/juvix/pull/2025) ([janmasrovira](https://github.com/janmasrovira))
- Fix dependencies suggestion in missing module error [\#2024](https://github.com/anoma/juvix/pull/2024) ([paulcadman](https://github.com/paulcadman))
- Remove docs related files [\#2023](https://github.com/anoma/juvix/pull/2023) ([jonaprieto](https://github.com/jonaprieto))
- Improve formatting of comments [\#2022](https://github.com/anoma/juvix/pull/2022) ([janmasrovira](https://github.com/janmasrovira))
- Support positive arity typealias in arity checker [\#2021](https://github.com/anoma/juvix/pull/2021) ([paulcadman](https://github.com/paulcadman))
- Add format stdin smoke tests [\#2019](https://github.com/anoma/juvix/pull/2019) ([vrom911](https://github.com/vrom911))
- Add `juvix clean` to remove project build artifact directory [\#2018](https://github.com/anoma/juvix/pull/2018) ([paulcadman](https://github.com/paulcadman))
- Sync stdlib [\#2012](https://github.com/anoma/juvix/pull/2012) ([janmasrovira](https://github.com/janmasrovira))
- Ide improvements [\#2009](https://github.com/anoma/juvix/pull/2009) ([janmasrovira](https://github.com/janmasrovira))
2023-04-18 16:05:59 +03:00
## [v0.3.2](https://github.com/anoma/juvix/tree/v0.3.2) (2023-04-18)
[Full Changelog](https://github.com/anoma/juvix/compare/v0.3.1...v0.3.2)
**Implemented enhancements:**
- Qualified imports [\#2004](https://github.com/anoma/juvix/pull/2004) ([janmasrovira](https://github.com/janmasrovira))
- Pretty print JuvixCore values consistently with Juvix syntax [\#1988](https://github.com/anoma/juvix/pull/1988) ([lukaszcz](https://github.com/lukaszcz))
- Add: the 'seq' builtin \(\>\>\>\) [\#1982](https://github.com/anoma/juvix/pull/1982) ([lukaszcz](https://github.com/lukaszcz))
- Fix: pprint positive kw for data types [\#1980](https://github.com/anoma/juvix/pull/1980) ([jonaprieto](https://github.com/jonaprieto))
- Fix: format juvix files in test/positive [\#1978](https://github.com/anoma/juvix/pull/1978) ([jonaprieto](https://github.com/jonaprieto))
- Add syntax highlighting for juvix code blocks in docs [\#1971](https://github.com/anoma/juvix/pull/1971) ([jonaprieto](https://github.com/jonaprieto))
- Add juvix global project under xdg directory and other improvements [\#1963](https://github.com/anoma/juvix/pull/1963) ([janmasrovira](https://github.com/janmasrovira))
- Add builtin integer type to the surface language [\#1948](https://github.com/anoma/juvix/pull/1948) ([paulcadman](https://github.com/paulcadman))
**Merged pull requests:**
- Preserve escaped " in String literals [\#2011](https://github.com/anoma/juvix/pull/2011) ([paulcadman](https://github.com/paulcadman))
- Fix: broken links of Example programs [\#2003](https://github.com/anoma/juvix/pull/2003) ([jonaprieto](https://github.com/jonaprieto))
- Write compile output file to invoke dir by default [\#1999](https://github.com/anoma/juvix/pull/1999) ([paulcadman](https://github.com/paulcadman))
- Add minor improvements to the docs [\#1995](https://github.com/anoma/juvix/pull/1995) ([vrom911](https://github.com/vrom911))
- ci: Specify llvm version in brew prefix command [\#1990](https://github.com/anoma/juvix/pull/1990) ([paulcadman](https://github.com/paulcadman))
- Fix location for case expressions [\#1987](https://github.com/anoma/juvix/pull/1987) ([lukaszcz](https://github.com/lukaszcz))
- Fix: add supported targets as option for compile commands [\#1983](https://github.com/anoma/juvix/pull/1983) ([jonaprieto](https://github.com/jonaprieto))
- Fix: Stop 'make check' at first failure [\#1981](https://github.com/anoma/juvix/pull/1981) ([jonaprieto](https://github.com/jonaprieto))
- Test numbering [\#1977](https://github.com/anoma/juvix/pull/1977) ([lukaszcz](https://github.com/lukaszcz))
- Refactor Core datastructures [\#1975](https://github.com/anoma/juvix/pull/1975) ([lukaszcz](https://github.com/lukaszcz))
- Add Juvix to all benchmarks [\#1974](https://github.com/anoma/juvix/pull/1974) ([lukaszcz](https://github.com/lukaszcz))
- Check for the executable \(WASM/native\) pipeline prerequisites [\#1970](https://github.com/anoma/juvix/pull/1970) ([lukaszcz](https://github.com/lukaszcz))
- Print quoted strings in the runtime [\#1969](https://github.com/anoma/juvix/pull/1969) ([lukaszcz](https://github.com/lukaszcz))
- Update the tutorial [\#1967](https://github.com/anoma/juvix/pull/1967) ([lukaszcz](https://github.com/lukaszcz))
- Fix PrettyCode \(Maybe a\) instance "Just" case [\#1966](https://github.com/anoma/juvix/pull/1966) ([paulcadman](https://github.com/paulcadman))
- Documentation for projects and modules [\#1962](https://github.com/anoma/juvix/pull/1962) ([janmasrovira](https://github.com/janmasrovira))
- repl: Run disambiguateNames on result node [\#1961](https://github.com/anoma/juvix/pull/1961) ([paulcadman](https://github.com/paulcadman))
- Add FoldTypeSynonyms Transformation to Geb Pipeline and more Geb Tests [\#1956](https://github.com/anoma/juvix/pull/1956) ([lukaszcz](https://github.com/lukaszcz))
- Support local modules [\#1872](https://github.com/anoma/juvix/pull/1872) ([janmasrovira](https://github.com/janmasrovira))
2023-03-31 12:50:06 +03:00
## [v0.3.1](https://github.com/anoma/juvix/tree/v0.3.1) (2023-03-31)
[Full Changelog](https://github.com/anoma/juvix/compare/v0.3.0...v0.3.1)
**Implemented enhancements:**
- Option `--show-args-num` [\#1946](https://github.com/anoma/juvix/pull/1946)
([lukaszcz](https://github.com/lukaszcz))
- Preserve the target type in letrec lifting
[\#1945](https://github.com/anoma/juvix/pull/1945)
([janmasrovira](https://github.com/janmasrovira))
- Add syntax highlighting to Core error messages
[\#1938](https://github.com/anoma/juvix/pull/1938)
([lukaszcz](https://github.com/lukaszcz))
- Add the `--unroll` option
[\#1935](https://github.com/anoma/juvix/pull/1935)
([lukaszcz](https://github.com/lukaszcz))
- Preserve name and location information in Internal-to-Core
[\#1933](https://github.com/anoma/juvix/pull/1933)
([lukaszcz](https://github.com/lukaszcz))
- Polymorphic type inference in Core
[\#1931](https://github.com/anoma/juvix/pull/1931)
([lukaszcz](https://github.com/lukaszcz))
- Update README.md with Juvix nightly builds badge
[\#1923](https://github.com/anoma/juvix/pull/1923)
([jonaprieto](https://github.com/jonaprieto))
- Create clean-up-cache.yaml
[\#1915](https://github.com/anoma/juvix/pull/1915)
([jonaprieto](https://github.com/jonaprieto))
- Update GitHub pages deployment using deploy-pages action
[\#1910](https://github.com/anoma/juvix/pull/1910)
([jonaprieto](https://github.com/jonaprieto))
- Check for recursive inductive types in the GEB pipeline
[\#1909](https://github.com/anoma/juvix/pull/1909)
([lukaszcz](https://github.com/lukaszcz))
- CI pre-commit maintenance
[\#1905](https://github.com/anoma/juvix/pull/1905)
([jonaprieto](https://github.com/jonaprieto))
- Add new README and md files
[\#1904](https://github.com/anoma/juvix/pull/1904)
([jonaprieto](https://github.com/jonaprieto))
- Print JuvixCore correctly
[\#1875](https://github.com/anoma/juvix/pull/1875)
([lukaszcz](https://github.com/lukaszcz))
- Pattern matching compilation
[\#1874](https://github.com/anoma/juvix/pull/1874)
([lukaszcz](https://github.com/lukaszcz))
- CI Haskell maintenance
[\#1797](https://github.com/anoma/juvix/pull/1797)
([jonaprieto](https://github.com/jonaprieto))
**Merged pull requests:**
- Let-folding after lifting
[\#1955](https://github.com/anoma/juvix/pull/1955)
([lukaszcz](https://github.com/lukaszcz))
- Fix removal of polymorphic type arguments
[\#1954](https://github.com/anoma/juvix/pull/1954)
([lukaszcz](https://github.com/lukaszcz))
- Fix a bug in closure traversal
[\#1953](https://github.com/anoma/juvix/pull/1953)
([lukaszcz](https://github.com/lukaszcz))
- Update typecheck command to check for coverage
[\#1952](https://github.com/anoma/juvix/pull/1952)
([janmasrovira](https://github.com/janmasrovira))
- CI: Ignore errors linux typecheck / format examples step
[\#1950](https://github.com/anoma/juvix/pull/1950)
([paulcadman](https://github.com/paulcadman))
- Filter out type synonyms in RemoveTypeArgs
[\#1949](https://github.com/anoma/juvix/pull/1949)
([lukaszcz](https://github.com/lukaszcz))
- Add fail nodes to Geb
[\#1947](https://github.com/anoma/juvix/pull/1947)
([lukaszcz](https://github.com/lukaszcz))
- End-to-end Geb compilation tests
[\#1942](https://github.com/anoma/juvix/pull/1942)
([lukaszcz](https://github.com/lukaszcz))
- Add juvix dev repl command
[\#1941](https://github.com/anoma/juvix/pull/1941)
([paulcadman](https://github.com/paulcadman))
- Refactor Geb values
[\#1940](https://github.com/anoma/juvix/pull/1940)
([lukaszcz](https://github.com/lukaszcz))
- Avoid capturing the same free variable multiple times in letrec lifting
[\#1939](https://github.com/anoma/juvix/pull/1939)
([janmasrovira](https://github.com/janmasrovira))
- Add Judoc syntax reference
[\#1934](https://github.com/anoma/juvix/pull/1934)
([janmasrovira](https://github.com/janmasrovira))
- Fix spacing of judoc in the formatter
[\#1932](https://github.com/anoma/juvix/pull/1932)
([janmasrovira](https://github.com/janmasrovira))
- bench: Fix juvix compile flag for wasm
[\#1925](https://github.com/anoma/juvix/pull/1925)
([paulcadman](https://github.com/paulcadman))
- Fix memory count for string operations
[\#1924](https://github.com/anoma/juvix/pull/1924)
([lukaszcz](https://github.com/lukaszcz))
- Let folding
[\#1921](https://github.com/anoma/juvix/pull/1921)
([lukaszcz](https://github.com/lukaszcz))
- Add a test suite for milestone examples
[\#1920](https://github.com/anoma/juvix/pull/1920)
([paulcadman](https://github.com/paulcadman))
- Add --numeric-version flag
[\#1918](https://github.com/anoma/juvix/pull/1918)
([jonaprieto](https://github.com/jonaprieto))
- Fix bug with unregistered builtin bool
[\#1917](https://github.com/anoma/juvix/pull/1917)
([lukaszcz](https://github.com/lukaszcz))
- Recursion unrolling for functions
[\#1912](https://github.com/anoma/juvix/pull/1912)
([lukaszcz](https://github.com/lukaszcz))
- Fix REPL state to include enough information to rerun the pipeline
[\#1911](https://github.com/anoma/juvix/pull/1911)
([janmasrovira](https://github.com/janmasrovira))
- CI Haskell fix for macOS build
[\#1908](https://github.com/anoma/juvix/pull/1908)
([jonaprieto](https://github.com/jonaprieto))
- Fix bug in IO runtime
[\#1906](https://github.com/anoma/juvix/pull/1906)
([lukaszcz](https://github.com/lukaszcz))
- Fix JuvixAsm validation
[\#1903](https://github.com/anoma/juvix/pull/1903)
([lukaszcz](https://github.com/lukaszcz))
- Fix registration of builtin inductive axioms
[\#1901](https://github.com/anoma/juvix/pull/1901)
([paulcadman](https://github.com/paulcadman))
- internal-to-core: Fix index shifting of pattern arguments
[\#1900](https://github.com/anoma/juvix/pull/1900)
([paulcadman](https://github.com/paulcadman))
- Fix de Bruijn indices in rmap
[\#1898](https://github.com/anoma/juvix/pull/1898)
([lukaszcz](https://github.com/lukaszcz))
- Normalize types in repl
[\#1897](https://github.com/anoma/juvix/pull/1897)
([janmasrovira](https://github.com/janmasrovira))
- Add MidSquareHash.juvix and fix types in MidSquareHash.jvc
[\#1896](https://github.com/anoma/juvix/pull/1896)
([lukaszcz](https://github.com/lukaszcz))
- Automatically detect and split mutually recursive blocks in let expressions
[\#1894](https://github.com/anoma/juvix/pull/1894)
([janmasrovira](https://github.com/janmasrovira))
- The `rmap` recursor
[\#1893](https://github.com/anoma/juvix/pull/1893)
([lukaszcz](https://github.com/lukaszcz))
- Add `juvix format` command
[\#1886](https://github.com/anoma/juvix/pull/1886)
([paulcadman](https://github.com/paulcadman))
- Make keyword `end` optional for top modules
[\#1883](https://github.com/anoma/juvix/pull/1883)
([janmasrovira](https://github.com/janmasrovira))
- Add errors to the Core pipeline and check GEB prerequisites
[\#1871](https://github.com/anoma/juvix/pull/1871)
([lukaszcz](https://github.com/lukaszcz))
- Test core to geb translation
[\#1865](https://github.com/anoma/juvix/pull/1865)
([jonaprieto](https://github.com/jonaprieto))
## [v0.3.0](https://github.com/anoma/juvix/tree/v0.3.0) (2023-03-15)
[Full Changelog](https://github.com/anoma/juvix/compare/v0.2.9...v0.3.0)
**Implemented enhancements:**
- Avoid line breaks in applications within a type signature
[#1850](https://github.com/anoma/juvix/issues/1850)
([paulcadman](https://github.com/paulcadman))
- Respect user's spacing decisions in the formatter
[#1837](https://github.com/anoma/juvix/issues/1837)
([janmasrovira](https://github.com/janmasrovira))
- Formatter should not transform ASCII symbols to unicode by default
[#1827](https://github.com/anoma/juvix/issues/1827)
([janmasrovira](https://github.com/janmasrovira))
- Enable match-to-case, nat-to-int and convert-builtins by default in
REPL [#1825](https://github.com/anoma/juvix/issues/1825)
([lukaszcz](https://github.com/lukaszcz))
- The Juvix formatter works poorly with multi-line ifs
[#1793](https://github.com/anoma/juvix/issues/1793)
([janmasrovira](https://github.com/janmasrovira))
- Add a lazy IO sequencing function (#1772)
[#1773](https://github.com/anoma/juvix/issues/1773)
([lukaszcz](https://github.com/lukaszcz))
- Support LetRec in the GEB backend
[#1756](https://github.com/anoma/juvix/issues/1756)
([janmasrovira](https://github.com/janmasrovira))
- Support integers in the GEB backend
[#1753](https://github.com/anoma/juvix/issues/1753)
([lukaszcz](https://github.com/lukaszcz))
- GEB evaluator [#1751](https://github.com/anoma/juvix/issues/1751)
([jonaprieto](https://github.com/jonaprieto))
- Add debugging builtin functions
[#1731](https://github.com/anoma/juvix/issues/1731)
([jonaprieto](https://github.com/jonaprieto))
- Non-judoc comments are removed when generating HTML output
[#1723](https://github.com/anoma/juvix/issues/1723)
([janmasrovira](https://github.com/janmasrovira))
- Special syntax for `case`
[#1716](https://github.com/anoma/juvix/issues/1716)
([janmasrovira](https://github.com/janmasrovira))
- Make \|\| and && lazy
[#1701](https://github.com/anoma/juvix/issues/1701)
([lukaszcz](https://github.com/lukaszcz))
- It should be possible to specify multiple implicit type arguments at
once [#1692](https://github.com/anoma/juvix/issues/1692)
([janmasrovira](https://github.com/janmasrovira))
- Naive compilation of complex pattern matches with match-expressions
to decision trees with case-expressions
[#1531](https://github.com/anoma/juvix/issues/1531)
([paulcadman](https://github.com/paulcadman))
- New compilation pipeline
[#1832](https://github.com/anoma/juvix/pull/1832)
([lukaszcz](https://github.com/lukaszcz))
- Add internal core-eval option to evaluate named function identifier
[#1819](https://github.com/anoma/juvix/pull/1819)
([paulcadman](https://github.com/paulcadman))
- Short syntax for sequences of function and datatype parameters
[#1809](https://github.com/anoma/juvix/pull/1809)
([lukaszcz](https://github.com/lukaszcz))
- Add Geb Backend Evaluator with some extra subcommands
[#1808](https://github.com/anoma/juvix/pull/1808)
([jonaprieto](https://github.com/jonaprieto))
- Add REPL option to apply Core transformations
[#1796](https://github.com/anoma/juvix/pull/1796)
([paulcadman](https://github.com/paulcadman))
- String builtins [#1784](https://github.com/anoma/juvix/pull/1784)
([lukaszcz](https://github.com/lukaszcz))
- Use restore/save github action to speed up the CI testing
[#1783](https://github.com/anoma/juvix/pull/1783)
([jonaprieto](https://github.com/jonaprieto))
- Fix minor issue with ==% for type equality
[#1780](https://github.com/anoma/juvix/pull/1780)
([jonaprieto](https://github.com/jonaprieto))
- Add debugging builtin functions `trace` and `fail`
[#1771](https://github.com/anoma/juvix/pull/1771)
([jonaprieto](https://github.com/jonaprieto))
- Keep regular comments in html output
[#1766](https://github.com/anoma/juvix/pull/1766)
([janmasrovira](https://github.com/janmasrovira))
- Lazy boolean operators
[#1743](https://github.com/anoma/juvix/pull/1743)
([lukaszcz](https://github.com/lukaszcz))
- Refactor `html` command with extra options
[#1725](https://github.com/anoma/juvix/pull/1725)
([jonaprieto](https://github.com/jonaprieto))
- Add initial setup for codespaces
[#1713](https://github.com/anoma/juvix/pull/1713)
([jonaprieto](https://github.com/jonaprieto))
- Typecheck let expressions
[#1712](https://github.com/anoma/juvix/pull/1712)
([janmasrovira](https://github.com/janmasrovira))
- Use Smoke instead of shelltestrunner
[#1710](https://github.com/anoma/juvix/pull/1710)
([jonaprieto](https://github.com/jonaprieto))
- Replace output-dir flag by internal-build-dir
[#1707](https://github.com/anoma/juvix/pull/1707)
([jonaprieto](https://github.com/jonaprieto))
- Compiler output [#1705](https://github.com/anoma/juvix/pull/1705)
([jonaprieto](https://github.com/jonaprieto))
- Allow optional pipe before the first constructor for inductive type
declarations [#1699](https://github.com/anoma/juvix/pull/1699)
([jonaprieto](https://github.com/jonaprieto))
- Nat builtins [#1686](https://github.com/anoma/juvix/pull/1686)
([lukaszcz](https://github.com/lukaszcz))
**Merged pull requests:**
- Remove dead code in `Internal`
[#1891](https://github.com/anoma/juvix/pull/1891)
([janmasrovira](https://github.com/janmasrovira))
- Remove missing Juvix examples and webapp example from docs build
[#1890](https://github.com/anoma/juvix/pull/1890)
([paulcadman](https://github.com/paulcadman))
- Fix type synonym in let
[#1880](https://github.com/anoma/juvix/pull/1880)
([janmasrovira](https://github.com/janmasrovira))
- Update stack resolver to lts-20.12
[#1873](https://github.com/anoma/juvix/pull/1873)
([paulcadman](https://github.com/paulcadman))
- Use Ape to format patterns
[#1870](https://github.com/anoma/juvix/pull/1870)
([janmasrovira](https://github.com/janmasrovira))
- Fix Core-To-Geb translation
[#1863](https://github.com/anoma/juvix/pull/1863)
([jonaprieto](https://github.com/jonaprieto))
- Remove the old C backend
[#1862](https://github.com/anoma/juvix/pull/1862)
([lukaszcz](https://github.com/lukaszcz))
- Move `substEnv` to its own module
[#1861](https://github.com/anoma/juvix/pull/1861)
([janmasrovira](https://github.com/janmasrovira))
- Add `_caseTypeWholeExpression` to Internal
[#1860](https://github.com/anoma/juvix/pull/1860)
([janmasrovira](https://github.com/janmasrovira))
- remove old minihaskell files
[#1859](https://github.com/anoma/juvix/pull/1859)
([jonaprieto](https://github.com/jonaprieto))
- Fix bugs in the Case translation in Core-to-Geb
[#1858](https://github.com/anoma/juvix/pull/1858)
([lukaszcz](https://github.com/lukaszcz))
- Format examples [#1856](https://github.com/anoma/juvix/pull/1856)
([janmasrovira](https://github.com/janmasrovira))
- Sort the identifiers topologically in the Core-to-GEB translation
[#1854](https://github.com/anoma/juvix/pull/1854)
([lukaszcz](https://github.com/lukaszcz))
- Add type info to the mid-square hashing function
[#1853](https://github.com/anoma/juvix/pull/1853)
([lukaszcz](https://github.com/lukaszcz))
- Use APE mechanism to format Function expressions
[#1852](https://github.com/anoma/juvix/pull/1852)
([paulcadman](https://github.com/paulcadman))
- Preserve single wildcards pretty printing function parameters
[#1851](https://github.com/anoma/juvix/pull/1851)
([paulcadman](https://github.com/paulcadman))
- Add type annotation to case expression
[#1849](https://github.com/anoma/juvix/pull/1849)
([janmasrovira](https://github.com/janmasrovira))
- Remove module parameters
[#1848](https://github.com/anoma/juvix/pull/1848)
([janmasrovira](https://github.com/janmasrovira))
- Allow shadowing local variables with let function definitions
[#1847](https://github.com/anoma/juvix/pull/1847)
([janmasrovira](https://github.com/janmasrovira))
- Add lambda type info
[#1845](https://github.com/anoma/juvix/pull/1845)
([janmasrovira](https://github.com/janmasrovira))
- Improve comma formatting
[#1842](https://github.com/anoma/juvix/pull/1842)
([janmasrovira](https://github.com/janmasrovira))
- Improve formatter [#1840](https://github.com/anoma/juvix/pull/1840)
([janmasrovira](https://github.com/janmasrovira))
- Respect lambda Ascii/Unicode
[#1838](https://github.com/anoma/juvix/pull/1838)
([janmasrovira](https://github.com/janmasrovira))
- Fix `juvix init` [#1835](https://github.com/anoma/juvix/pull/1835)
([janmasrovira](https://github.com/janmasrovira))
- The formatter respects the ascii function arrow
[#1834](https://github.com/anoma/juvix/pull/1834)
([janmasrovira](https://github.com/janmasrovira))
- Add `dev core from-concrete` command
[#1833](https://github.com/anoma/juvix/pull/1833)
([janmasrovira](https://github.com/janmasrovira))
- Give proper errors for incorrect application of lazy builtins
[#1830](https://github.com/anoma/juvix/pull/1830)
([lukaszcz](https://github.com/lukaszcz))
- Documentation: update language reference
[#1829](https://github.com/anoma/juvix/pull/1829)
([lukaszcz](https://github.com/lukaszcz))
- Add compilation of complex pattern matching to case
[#1824](https://github.com/anoma/juvix/pull/1824)
([paulcadman](https://github.com/paulcadman))
- Apply CI ghcup workaround to docs build
[#1823](https://github.com/anoma/juvix/pull/1823)
([paulcadman](https://github.com/paulcadman))
- Update the Juvix tutorial for 0.3
[#1822](https://github.com/anoma/juvix/pull/1822)
([lukaszcz](https://github.com/lukaszcz))
- Workaround ghcup issue on CI runner
[#1821](https://github.com/anoma/juvix/pull/1821)
([paulcadman](https://github.com/paulcadman))
- Respect the `juvix dev highlight --format` flag when outputting
errors [#1820](https://github.com/anoma/juvix/pull/1820)
([janmasrovira](https://github.com/janmasrovira))
- Comments about the usage of the JuvixCore recursors
[#1818](https://github.com/anoma/juvix/pull/1818)
([lukaszcz](https://github.com/lukaszcz))
- Emacs mode and VSCode extension tutorials
[#1815](https://github.com/anoma/juvix/pull/1815)
([lukaszcz](https://github.com/lukaszcz))
- Documentation: how to compile Juvix programs
[#1813](https://github.com/anoma/juvix/pull/1813)
([lukaszcz](https://github.com/lukaszcz))
- Make '\>\>' lazy [#1812](https://github.com/anoma/juvix/pull/1812)
([lukaszcz](https://github.com/lukaszcz))
- Output proper GEB Lisp programs
[#1810](https://github.com/anoma/juvix/pull/1810)
([lukaszcz](https://github.com/lukaszcz))
- Remove the usage annotation syntax
[#1805](https://github.com/anoma/juvix/pull/1805)
([lukaszcz](https://github.com/lukaszcz))
- Mid-square hashing implemented in JuvixCore
[#1804](https://github.com/anoma/juvix/pull/1804)
([lukaszcz](https://github.com/lukaszcz))
- Autocompletion for `dev core compilation --target`
[#1803](https://github.com/anoma/juvix/pull/1803)
([janmasrovira](https://github.com/janmasrovira))
- Special syntax for case
[#1800](https://github.com/anoma/juvix/pull/1800)
([janmasrovira](https://github.com/janmasrovira))
- Adapt benchmarks to the new pipeline
[#1795](https://github.com/anoma/juvix/pull/1795)
([lukaszcz](https://github.com/lukaszcz))
- Support letrec lifting without lambda lifting
[#1794](https://github.com/anoma/juvix/pull/1794)
([janmasrovira](https://github.com/janmasrovira))
- Use the reader effect
[#1791](https://github.com/anoma/juvix/pull/1791)
([janmasrovira](https://github.com/janmasrovira))
- Remove braces from let expressions
[#1790](https://github.com/anoma/juvix/pull/1790)
([janmasrovira](https://github.com/janmasrovira))
- Translate as-pattern binders to Core PatternBinders
[#1789](https://github.com/anoma/juvix/pull/1789)
([paulcadman](https://github.com/paulcadman))
- Fix termination with as-patterns
[#1787](https://github.com/anoma/juvix/pull/1787)
([janmasrovira](https://github.com/janmasrovira))
- Allow type signatures to have a body
[#1785](https://github.com/anoma/juvix/pull/1785)
([janmasrovira](https://github.com/janmasrovira))
- Track builtins in the Core InfoTable
[#1782](https://github.com/anoma/juvix/pull/1782)
([paulcadman](https://github.com/paulcadman))
- Pipes for lambda clauses
[#1781](https://github.com/anoma/juvix/pull/1781)
([janmasrovira](https://github.com/janmasrovira))
- Support integers in the GEB backend
[#1778](https://github.com/anoma/juvix/pull/1778)
([lukaszcz](https://github.com/lukaszcz))
- Add builtin nat and bool types as start nodes in reachability
analysis [#1775](https://github.com/anoma/juvix/pull/1775)
([paulcadman](https://github.com/paulcadman))
- Update pre-commit [#1772](https://github.com/anoma/juvix/pull/1772)
([jonaprieto](https://github.com/jonaprieto))
- Parse JuvixCore with absolute paths
[#1770](https://github.com/anoma/juvix/pull/1770)
([paulcadman](https://github.com/paulcadman))
- Use absolute path in Core Evaluator to generate source file location
[#1769](https://github.com/anoma/juvix/pull/1769)
([paulcadman](https://github.com/paulcadman))
- Install wasmer binary from Github releases
[#1765](https://github.com/anoma/juvix/pull/1765)
([jonaprieto](https://github.com/jonaprieto))
- Run the new Juvix formatter for all the Juvix examples
[#1764](https://github.com/anoma/juvix/pull/1764)
([jonaprieto](https://github.com/jonaprieto))
- Fix let expressions in the repl
[#1763](https://github.com/anoma/juvix/pull/1763)
([janmasrovira](https://github.com/janmasrovira))
- Improve arity inference for repl expressions
[#1762](https://github.com/anoma/juvix/pull/1762)
([janmasrovira](https://github.com/janmasrovira))
- Fix broken links and other improvements
[#1761](https://github.com/anoma/juvix/pull/1761)
([jonaprieto](https://github.com/jonaprieto))
- Translate Nat builtins to the correct Core Ops
[#1760](https://github.com/anoma/juvix/pull/1760)
([paulcadman](https://github.com/paulcadman))
- Remove hlint from the CI and pre-commit config
[#1759](https://github.com/anoma/juvix/pull/1759)
([jonaprieto](https://github.com/jonaprieto))
- Fix demo example build
[#1757](https://github.com/anoma/juvix/pull/1757)
([paulcadman](https://github.com/paulcadman))
- Basic Geb integration
[#1748](https://github.com/anoma/juvix/pull/1748)
([lukaszcz](https://github.com/lukaszcz))
- Fix macOS CI build [#1747](https://github.com/anoma/juvix/pull/1747)
([paulcadman](https://github.com/paulcadman))
- Adapt Juvix programs to the new pipeline
[#1746](https://github.com/anoma/juvix/pull/1746)
([lukaszcz](https://github.com/lukaszcz))
- Fix link in README for the new docs
[#1745](https://github.com/anoma/juvix/pull/1745)
([lukaszcz](https://github.com/lukaszcz))
- Move juvix-mode to a separate repository
[#1744](https://github.com/anoma/juvix/pull/1744)
([jonaprieto](https://github.com/jonaprieto))
- Print comments when pretty printing concrete syntax
[#1737](https://github.com/anoma/juvix/pull/1737)
([janmasrovira](https://github.com/janmasrovira))
- Demo [#1736](https://github.com/anoma/juvix/pull/1736)
([lukaszcz](https://github.com/lukaszcz))
- Update CI to install Smoke, Github actions, and Makefile fixes
[#1735](https://github.com/anoma/juvix/pull/1735)
([jonaprieto](https://github.com/jonaprieto))
- Update stack.yaml [#1734](https://github.com/anoma/juvix/pull/1734)
([jonaprieto](https://github.com/jonaprieto))
- Fix Nat builtins [#1733](https://github.com/anoma/juvix/pull/1733)
([lukaszcz](https://github.com/lukaszcz))
- Script to count LOC
[#1732](https://github.com/anoma/juvix/pull/1732)
([lukaszcz](https://github.com/lukaszcz))
- Give a proper type to literal Strings
[#1730](https://github.com/anoma/juvix/pull/1730)
([paulcadman](https://github.com/paulcadman))
- Do not filter implicit args in internal to core translation
[#1728](https://github.com/anoma/juvix/pull/1728)
([paulcadman](https://github.com/paulcadman))
- Fix de Brujin indexing of lambda arguments
[#1727](https://github.com/anoma/juvix/pull/1727)
([paulcadman](https://github.com/paulcadman))
- Fix inference loop [#1726](https://github.com/anoma/juvix/pull/1726)
([janmasrovira](https://github.com/janmasrovira))
- Remove wildcard patterns from Internal
[#1724](https://github.com/anoma/juvix/pull/1724)
([janmasrovira](https://github.com/janmasrovira))
- Restructure the documentation and add a tutorial
[#1718](https://github.com/anoma/juvix/pull/1718)
([lukaszcz](https://github.com/lukaszcz))
- Improve error message for confusing ':=' with '='
[#1715](https://github.com/anoma/juvix/pull/1715)
([lukaszcz](https://github.com/lukaszcz))
- Fix #1704 [#1711](https://github.com/anoma/juvix/pull/1711)
([janmasrovira](https://github.com/janmasrovira))
- Fix #1693 [#1708](https://github.com/anoma/juvix/pull/1708)
([janmasrovira](https://github.com/janmasrovira))
- Tests for the new compilation pipeline
[#1703](https://github.com/anoma/juvix/pull/1703)
([lukaszcz](https://github.com/lukaszcz))
- Add printString and printBool support to legacy C backend
[#1698](https://github.com/anoma/juvix/pull/1698)
([paulcadman](https://github.com/paulcadman))
- Add show-de-bruijn option to `juvix repl`
[#1694](https://github.com/anoma/juvix/pull/1694)
([lukaszcz](https://github.com/lukaszcz))
- Allow 'terminating' keyword with builtins
[#1688](https://github.com/anoma/juvix/pull/1688)
([lukaszcz](https://github.com/lukaszcz))
- Remove unicode cons symbol
[#1687](https://github.com/anoma/juvix/pull/1687)
([lukaszcz](https://github.com/lukaszcz))
- Change syntax for ind. data types and forbid the empty data type
[#1684](https://github.com/anoma/juvix/pull/1684)
([jonaprieto](https://github.com/jonaprieto))
- Convert Nat literals to Core integers
[#1681](https://github.com/anoma/juvix/pull/1681)
([lukaszcz](https://github.com/lukaszcz))
- Less verbose output from running `make check`
[#1675](https://github.com/anoma/juvix/pull/1675)
([jonaprieto](https://github.com/jonaprieto))
- Remove where syntax
[#1674](https://github.com/anoma/juvix/pull/1674)
([jonaprieto](https://github.com/jonaprieto))
- Benchmarks [#1673](https://github.com/anoma/juvix/pull/1673)
([janmasrovira](https://github.com/janmasrovira))
- JuvixCore to JuvixAsm translation
[#1665](https://github.com/anoma/juvix/pull/1665)
([lukaszcz](https://github.com/lukaszcz))
## [v0.2.9](https://github.com/anoma/juvix/tree/v0.2.9) (2023-01-18)
[Full Changelog](https://github.com/anoma/juvix/compare/v0.2.8...v0.2.9)
**Implemented enhancements:**
- Refactor `html` command with extra options
[#1725](https://github.com/anoma/juvix/pull/1725)
([jonaprieto](https://github.com/jonaprieto))
- Add initial setup for codespaces
[#1713](https://github.com/anoma/juvix/pull/1713)
([jonaprieto](https://github.com/jonaprieto))
- Typecheck let expressions
[#1712](https://github.com/anoma/juvix/pull/1712)
([janmasrovira](https://github.com/janmasrovira))
- Use Smoke instead of shelltestrunner
[#1710](https://github.com/anoma/juvix/pull/1710)
([jonaprieto](https://github.com/jonaprieto))
- Replace output-dir flag by internal-build-dir
[#1707](https://github.com/anoma/juvix/pull/1707)
([jonaprieto](https://github.com/jonaprieto))
- Compiler output [#1705](https://github.com/anoma/juvix/pull/1705)
([jonaprieto](https://github.com/jonaprieto))
- Allow optional pipe before the first constructor for inductive type
declarations [#1699](https://github.com/anoma/juvix/pull/1699)
([jonaprieto](https://github.com/jonaprieto))
- Nat builtins [#1686](https://github.com/anoma/juvix/pull/1686)
([lukaszcz](https://github.com/lukaszcz))
**Merged pull requests:**
- Demo [#1736](https://github.com/anoma/juvix/pull/1736)
([lukaszcz](https://github.com/lukaszcz))
- Update stack.yaml [#1734](https://github.com/anoma/juvix/pull/1734)
([jonaprieto](https://github.com/jonaprieto))
- Fix Nat builtins [#1733](https://github.com/anoma/juvix/pull/1733)
([lukaszcz](https://github.com/lukaszcz))
- Script to count LOC
[#1732](https://github.com/anoma/juvix/pull/1732)
([lukaszcz](https://github.com/lukaszcz))
- Give a proper type to literal Strings
[#1730](https://github.com/anoma/juvix/pull/1730)
([paulcadman](https://github.com/paulcadman))
- Do not filter implicit args in internal to core translation
[#1728](https://github.com/anoma/juvix/pull/1728)
([paulcadman](https://github.com/paulcadman))
- Fix de Brujin indexing of lambda arguments
[#1727](https://github.com/anoma/juvix/pull/1727)
([paulcadman](https://github.com/paulcadman))
- Fix inference loop [#1726](https://github.com/anoma/juvix/pull/1726)
([janmasrovira](https://github.com/janmasrovira))
- Remove wildcard patterns from Internal
[#1724](https://github.com/anoma/juvix/pull/1724)
([janmasrovira](https://github.com/janmasrovira))
- Restructure the documentation and add a tutorial
[#1718](https://github.com/anoma/juvix/pull/1718)
([lukaszcz](https://github.com/lukaszcz))
- Improve error message for confusing ':=' with '='
[#1715](https://github.com/anoma/juvix/pull/1715)
([lukaszcz](https://github.com/lukaszcz))
- Fix #1704 [#1711](https://github.com/anoma/juvix/pull/1711)
([janmasrovira](https://github.com/janmasrovira))
- Fix #1693 [#1708](https://github.com/anoma/juvix/pull/1708)
([janmasrovira](https://github.com/janmasrovira))
- Tests for the new compilation pipeline
[#1703](https://github.com/anoma/juvix/pull/1703)
([lukaszcz](https://github.com/lukaszcz))
- Add printString and printBool support to legacy C backend
[#1698](https://github.com/anoma/juvix/pull/1698)
([paulcadman](https://github.com/paulcadman))
- Add show-de-bruijn option to `juvix repl`
[#1694](https://github.com/anoma/juvix/pull/1694)
([lukaszcz](https://github.com/lukaszcz))
- Allow 'terminating' keyword with builtins
[#1688](https://github.com/anoma/juvix/pull/1688)
([lukaszcz](https://github.com/lukaszcz))
- Remove unicode cons symbol
[#1687](https://github.com/anoma/juvix/pull/1687)
([lukaszcz](https://github.com/lukaszcz))
- Change syntax for ind. data types and forbid the empty data type
[#1684](https://github.com/anoma/juvix/pull/1684)
([jonaprieto](https://github.com/jonaprieto))
- Convert Nat literals to Core integers
[#1681](https://github.com/anoma/juvix/pull/1681)
([lukaszcz](https://github.com/lukaszcz))
- Less verbose output from running `make check`
[#1675](https://github.com/anoma/juvix/pull/1675)
([jonaprieto](https://github.com/jonaprieto))
- Remove where syntax
[#1674](https://github.com/anoma/juvix/pull/1674)
([jonaprieto](https://github.com/jonaprieto))
- Benchmarks [#1673](https://github.com/anoma/juvix/pull/1673)
([janmasrovira](https://github.com/janmasrovira))
- JuvixCore to JuvixAsm translation
[#1665](https://github.com/anoma/juvix/pull/1665)
([lukaszcz](https://github.com/lukaszcz))
## [v0.2.8](https://github.com/anoma/juvix/tree/v0.2.8) (2022-12-20)
[Full Changelog](https://github.com/anoma/juvix/compare/v0.2.7...v0.2.8)
**Implemented enhancements:**
- Support basic dependencies
[#1622](https://github.com/anoma/juvix/pull/1622)
([janmasrovira](https://github.com/janmasrovira))
**Merged pull requests:**
- Refactor hie.yaml and add entry in the readme
[#1672](https://github.com/anoma/juvix/pull/1672)
([janmasrovira](https://github.com/janmasrovira))
- Fix inline monospace formatted text in README
[#1671](https://github.com/anoma/juvix/pull/1671)
([paulcadman](https://github.com/paulcadman))
- Pin mdbook to version 0.4.22 in docs build
[#1670](https://github.com/anoma/juvix/pull/1670)
([paulcadman](https://github.com/paulcadman))
- Add option to specify Core transformations to
`dev internal core-eval`
[#1669](https://github.com/anoma/juvix/pull/1669)
([paulcadman](https://github.com/paulcadman))
- Revert "Ignore binaries generated by running some tests"
[#1668](https://github.com/anoma/juvix/pull/1668)
([jonaprieto](https://github.com/jonaprieto))
- Add configuration files so the project can be built with cabal
[#1667](https://github.com/anoma/juvix/pull/1667)
([paulcadman](https://github.com/paulcadman))
- Add documentation for compiling/running the TicTacToe example
[#1664](https://github.com/anoma/juvix/pull/1664)
([paulcadman](https://github.com/paulcadman))
- Ignore binaries generated by running some tests
[#1663](https://github.com/anoma/juvix/pull/1663)
([jonaprieto](https://github.com/jonaprieto))
- Conversion of Nat representation to JuvixCore integers
[#1661](https://github.com/anoma/juvix/pull/1661)
([lukaszcz](https://github.com/lukaszcz))
- Move applications inside Lets and Cases
[#1659](https://github.com/anoma/juvix/pull/1659)
([lukaszcz](https://github.com/lukaszcz))
- Run shelltests on macOS build
[#1658](https://github.com/anoma/juvix/pull/1658)
([paulcadman](https://github.com/paulcadman))
- Restore macOS CI build/test
[#1657](https://github.com/anoma/juvix/pull/1657)
([paulcadman](https://github.com/paulcadman))
- Remove type arguments and type abstractions from Nodes
[#1655](https://github.com/anoma/juvix/pull/1655)
([lukaszcz](https://github.com/lukaszcz))
- Pretty printing of JuvixAsm code
[#1650](https://github.com/anoma/juvix/pull/1650)
([lukaszcz](https://github.com/lukaszcz))
- Remove NameId from Core
[#1649](https://github.com/anoma/juvix/pull/1649)
([lukaszcz](https://github.com/lukaszcz))
- Translation from JuvixAsm to C
[#1619](https://github.com/anoma/juvix/pull/1619)
([lukaszcz](https://github.com/lukaszcz))
## [v0.2.7](https://github.com/anoma/juvix/tree/v0.2.7) (2022-12-05)
[Full Changelog](https://github.com/anoma/juvix/compare/v0.2.6...v0.2.7)
**Implemented enhancements:**
- Add juvix-repl-mode for emacs
[#1612](https://github.com/anoma/juvix/pull/1612)
([paulcadman](https://github.com/paulcadman))
- Make lambda lifting correct when free variables occur in the types
of binders [#1609](https://github.com/anoma/juvix/pull/1609)
([janmasrovira](https://github.com/janmasrovira))
**Merged pull requests:**
- Files pure refactor
[#1652](https://github.com/anoma/juvix/pull/1652)
([janmasrovira](https://github.com/janmasrovira))
- Use the same stack version in all CI jobs and remove `stack setup`
step [#1651](https://github.com/anoma/juvix/pull/1651)
([paulcadman](https://github.com/paulcadman))
- Fix 'not a primitive type' error message
[#1648](https://github.com/anoma/juvix/pull/1648)
([lukaszcz](https://github.com/lukaszcz))
- Upgrade stack snapshot to use ghc-9.2.5
[#1621](https://github.com/anoma/juvix/pull/1621)
([janmasrovira](https://github.com/janmasrovira))
- Add an emacs function to restart the REPL
[#1618](https://github.com/anoma/juvix/pull/1618)
([paulcadman](https://github.com/paulcadman))
- Add types to Core functions and constructors when translating from
Internal [#1617](https://github.com/anoma/juvix/pull/1617)
([paulcadman](https://github.com/paulcadman))
- Auto complete argument of 'dev core read -t'
[#1616](https://github.com/anoma/juvix/pull/1616)
([janmasrovira](https://github.com/janmasrovira))
- Compute new entrypoint root when loading a file in the REPL
[#1615](https://github.com/anoma/juvix/pull/1615)
([paulcadman](https://github.com/paulcadman))
- Compute maximum runtime stack height in JuvixReg
[#1613](https://github.com/anoma/juvix/pull/1613)
([lukaszcz](https://github.com/lukaszcz))
- Remove shelltest threading
[#1611](https://github.com/anoma/juvix/pull/1611)
([paulcadman](https://github.com/paulcadman))
- Use StackInfo and recurseS in the JuvixAsm to JuvixReg translation.
[#1610](https://github.com/anoma/juvix/pull/1610)
([lukaszcz](https://github.com/lukaszcz))
- Precompute maximum heap allocation
[#1608](https://github.com/anoma/juvix/pull/1608)
([lukaszcz](https://github.com/lukaszcz))
- Improvements to Juvix REPL
[#1607](https://github.com/anoma/juvix/pull/1607)
([paulcadman](https://github.com/paulcadman))
- Fix discrepancy between Juvix and WASM pages
[#1605](https://github.com/anoma/juvix/pull/1605)
([lukaszcz](https://github.com/lukaszcz))
- Compute JuvixAsm stack usage info
[#1604](https://github.com/anoma/juvix/pull/1604)
([lukaszcz](https://github.com/lukaszcz))
- Improve As-Pattern parsing
[#1603](https://github.com/anoma/juvix/pull/1603)
([ii8](https://github.com/ii8))
- Juvix core recursors should descend into nodes stored in infos
[#1600](https://github.com/anoma/juvix/pull/1600)
([janmasrovira](https://github.com/janmasrovira))
- Add docs for installing the linux binary
[#1599](https://github.com/anoma/juvix/pull/1599)
([paulcadman](https://github.com/paulcadman))
- Binder refactor [#1598](https://github.com/anoma/juvix/pull/1598)
([janmasrovira](https://github.com/janmasrovira))
- Juvix C runtime [#1580](https://github.com/anoma/juvix/pull/1580)
([lukaszcz](https://github.com/lukaszcz))
- As-patterns [#1576](https://github.com/anoma/juvix/pull/1576)
([ii8](https://github.com/ii8))
- Eta expansion at the top of each core function definition (#1481)
[#1571](https://github.com/anoma/juvix/pull/1571)
([janmasrovira](https://github.com/janmasrovira))
- Add translation from Internal to Core
[#1567](https://github.com/anoma/juvix/pull/1567)
([paulcadman](https://github.com/paulcadman))
## [v0.2.6](https://github.com/anoma/juvix/tree/v0.2.6) (2022-10-26)
[Full Changelog](https://github.com/anoma/juvix/compare/v0.2.5...v0.2.6)
**Implemented enhancements:**
- Support go to definition for the standard library
[#1592](https://github.com/anoma/juvix/pull/1592)
([paulcadman](https://github.com/paulcadman))
- Add builtin if [#1585](https://github.com/anoma/juvix/pull/1585)
([paulcadman](https://github.com/paulcadman))
- Add builtin boolean
[#1582](https://github.com/anoma/juvix/pull/1582)
([paulcadman](https://github.com/paulcadman))
- Add lambda expressions to internal and add typechecking support
[#1538](https://github.com/anoma/juvix/pull/1538)
([janmasrovira](https://github.com/janmasrovira))
**Fixed bugs:**
- Fix arity checker bug
[#1546](https://github.com/anoma/juvix/pull/1546)
([janmasrovira](https://github.com/janmasrovira))
- Look in patterns when building the dependency graph
[#1536](https://github.com/anoma/juvix/pull/1536)
([janmasrovira](https://github.com/janmasrovira))
**Merged pull requests:**
- Update language reference to match current state of Juvix
[#1594](https://github.com/anoma/juvix/pull/1594)
([paulcadman](https://github.com/paulcadman))
- Fix letrec printing
[#1591](https://github.com/anoma/juvix/pull/1591)
([janmasrovira](https://github.com/janmasrovira))
- Update stdlib submodule with builtin changes
[#1589](https://github.com/anoma/juvix/pull/1589)
([paulcadman](https://github.com/paulcadman))
- Rename builtin natural to nat and boolean to bool
[#1588](https://github.com/anoma/juvix/pull/1588)
([paulcadman](https://github.com/paulcadman))
- Improve the test for eta-expansion of constructors and builtins
[#1583](https://github.com/anoma/juvix/pull/1583)
([lukaszcz](https://github.com/lukaszcz))
- Properly newline expressions in the pretty printer
[#1581](https://github.com/anoma/juvix/pull/1581)
([janmasrovira](https://github.com/janmasrovira))
- Letrec lifting [#1579](https://github.com/anoma/juvix/pull/1579)
([janmasrovira](https://github.com/janmasrovira))
- Add softlines between applications and hang definitions
[#1578](https://github.com/anoma/juvix/pull/1578)
([janmasrovira](https://github.com/janmasrovira))
- Parse optional type info in JVC files
[#1575](https://github.com/anoma/juvix/pull/1575)
([lukaszcz](https://github.com/lukaszcz))
- Fix symbol numbering bug
[#1574](https://github.com/anoma/juvix/pull/1574)
([lukaszcz](https://github.com/lukaszcz))
- 1569 rewrite the test for lambda lifting to use evaluation
[#1572](https://github.com/anoma/juvix/pull/1572)
([janmasrovira](https://github.com/janmasrovira))
- Remove lambda from reservedSymbols
[#1568](https://github.com/anoma/juvix/pull/1568)
([lukaszcz](https://github.com/lukaszcz))
- Keywords refactor [#1566](https://github.com/anoma/juvix/pull/1566)
([janmasrovira](https://github.com/janmasrovira))
- remove ≔ from the language and replace it by :=
[#1563](https://github.com/anoma/juvix/pull/1563)
([janmasrovira](https://github.com/janmasrovira))
- JuvixReg [#1551](https://github.com/anoma/juvix/pull/1551)
([lukaszcz](https://github.com/lukaszcz))
- Remove duplicate function in concrete analysis
[#1550](https://github.com/anoma/juvix/pull/1550)
([ii8](https://github.com/ii8))
- Evaluator minor style refactor
[#1547](https://github.com/anoma/juvix/pull/1547)
([janmasrovira](https://github.com/janmasrovira))
- Properly handle top lambdas in the termination checker
[#1544](https://github.com/anoma/juvix/pull/1544)
([janmasrovira](https://github.com/janmasrovira))
- Mutual inference [#1543](https://github.com/anoma/juvix/pull/1543)
([janmasrovira](https://github.com/janmasrovira))
- Autocomplete ".jvc" input files for core {eval, read} commands
[#1542](https://github.com/anoma/juvix/pull/1542)
([paulcadman](https://github.com/paulcadman))
- Add show-de-bruijn to `core eval` command
[#1540](https://github.com/anoma/juvix/pull/1540)
([paulcadman](https://github.com/paulcadman))
- Inductive types should depend on the types of their constructors
[#1537](https://github.com/anoma/juvix/pull/1537)
([lukaszcz](https://github.com/lukaszcz))
- Parser labels [#1535](https://github.com/anoma/juvix/pull/1535)
([janmasrovira](https://github.com/janmasrovira))
- JuvixAsm [#1432](https://github.com/anoma/juvix/pull/1432)
([lukaszcz](https://github.com/lukaszcz))
## [v0.2.5](https://github.com/anoma/juvix/tree/v0.2.5) (2022-09-14)
[Full Changelog](https://github.com/anoma/juvix/compare/v0.2.4...v0.2.5)
**Fixed bugs:**
- Properly type check patterns that need normalization
[#1472](https://github.com/anoma/juvix/pull/1472)
([janmasrovira](https://github.com/janmasrovira))
- Detect nested patterns as smaller in the termination checker
[#1524](https://github.com/anoma/juvix/pull/1524)
- Fix developBeta in Core/Extra.hs
[#1487](https://github.com/anoma/juvix/pull/1487)
([lukaszcz](https://github.com/lukaszcz))
- Core/Extra/Recursors/Collector bugfix
[#1510](https://github.com/anoma/juvix/pull/1510)
([lukaszcz](https://github.com/lukaszcz))
**Merged pull requests:**
- Replace -\> by := in lambda syntax
[#1533](https://github.com/anoma/juvix/pull/1533)
([janmasrovira](https://github.com/janmasrovira))
- 'Match' with complex patterns in Core
[#1530](https://github.com/anoma/juvix/pull/1530)
([lukaszcz](https://github.com/lukaszcz))
- Refactor CLI [#1527](https://github.com/anoma/juvix/pull/1527)
([janmasrovira](https://github.com/janmasrovira))
- Add CanonicalProjection
[#1526](https://github.com/anoma/juvix/pull/1526)
([janmasrovira](https://github.com/janmasrovira))
- Make comma a delimiter
[#1525](https://github.com/anoma/juvix/pull/1525)
([lukaszcz](https://github.com/lukaszcz))
- Detect nested patterns as smaller in the termination checker
[#1524](https://github.com/anoma/juvix/pull/1524)
([janmasrovira](https://github.com/janmasrovira))
- Disallow tab characters as spaces
[#1523](https://github.com/anoma/juvix/pull/1523)
([janmasrovira](https://github.com/janmasrovira))
- Refactor `destruct` in Core/Extra/Base
[#1522](https://github.com/anoma/juvix/pull/1522)
([lukaszcz](https://github.com/lukaszcz))
- JuvixCore primitive types
[#1521](https://github.com/anoma/juvix/pull/1521)
([lukaszcz](https://github.com/lukaszcz))
- Enable autocompletion for the theme flag
[#1519](https://github.com/anoma/juvix/pull/1519)
([janmasrovira](https://github.com/janmasrovira))
- Stripped version of Core Node datatype
[#1518](https://github.com/anoma/juvix/pull/1518)
([lukaszcz](https://github.com/lukaszcz))
- Add `internal core read` command
[#1517](https://github.com/anoma/juvix/pull/1517)
([janmasrovira](https://github.com/janmasrovira))
- Implement some instances for BinderList
[#1515](https://github.com/anoma/juvix/pull/1515)
([janmasrovira](https://github.com/janmasrovira))
- Back recursor types with type families
[#1514](https://github.com/anoma/juvix/pull/1514)
([janmasrovira](https://github.com/janmasrovira))
- Eager evaluation of Constr arguments
[#1513](https://github.com/anoma/juvix/pull/1513)
([lukaszcz](https://github.com/lukaszcz))
- Dynamic type in Core
[#1508](https://github.com/anoma/juvix/pull/1508)
([lukaszcz](https://github.com/lukaszcz))
- LetRec in Core [#1507](https://github.com/anoma/juvix/pull/1507)
([lukaszcz](https://github.com/lukaszcz))
- Add Haddock and Agda licenses
[#1506](https://github.com/anoma/juvix/pull/1506)
([janmasrovira](https://github.com/janmasrovira))
- Fix docs webapp examples CI build
[#1505](https://github.com/anoma/juvix/pull/1505)
([paulcadman](https://github.com/paulcadman))
- Add CLI usage examples doc and integrate with README
[#1504](https://github.com/anoma/juvix/pull/1504)
([paulcadman](https://github.com/paulcadman))
- Refactor BinderInfo
[#1503](https://github.com/anoma/juvix/pull/1503)
([lukaszcz](https://github.com/lukaszcz))
- Make `juvix compile` default to native target
[#1502](https://github.com/anoma/juvix/pull/1502)
([paulcadman](https://github.com/paulcadman))
- Refactor Node datatype
[#1501](https://github.com/anoma/juvix/pull/1501)
([lukaszcz](https://github.com/lukaszcz))
- Clean up import list in Pipeline
[#1499](https://github.com/anoma/juvix/pull/1499)
([jonaprieto](https://github.com/jonaprieto))
- Remove mono [#1497](https://github.com/anoma/juvix/pull/1497)
([jonaprieto](https://github.com/jonaprieto))
- Remove Haskell support
[#1496](https://github.com/anoma/juvix/pull/1496)
([jonaprieto](https://github.com/jonaprieto))
- Implement lambda lifting
[#1494](https://github.com/anoma/juvix/pull/1494)
([janmasrovira](https://github.com/janmasrovira))
- Document Emacs installation and the 'exec-path' problem
[#1493](https://github.com/anoma/juvix/pull/1493)
([lukaszcz](https://github.com/lukaszcz))
- Add allow-different-user to workflow stack command
[#1492](https://github.com/anoma/juvix/pull/1492)
([paulcadman](https://github.com/paulcadman))
- Stack with github actions permissions workaround
[#1490](https://github.com/anoma/juvix/pull/1490)
([paulcadman](https://github.com/paulcadman))
- Restructure recursors and add some lens interfaces
[#1489](https://github.com/anoma/juvix/pull/1489)
([janmasrovira](https://github.com/janmasrovira))
- Add a github action to build a static linux binary
[#1488](https://github.com/anoma/juvix/pull/1488)
([paulcadman](https://github.com/paulcadman))
- Fix developBeta in Core/Extra.hs
[#1487](https://github.com/anoma/juvix/pull/1487)
([lukaszcz](https://github.com/lukaszcz))
- Add an option to show name ids in errors
[#1486](https://github.com/anoma/juvix/pull/1486)
([lukaszcz](https://github.com/lukaszcz))
## [v0.2.4](https://github.com/anoma/juvix/tree/v0.2.4) (2022-08-19)
[Full Changelog](https://github.com/anoma/juvix/compare/v0.2.3...v0.2.4)
(Special version for Heliax's retreat in Italy)
**Implemented enhancements:**
- Add stdin flag [#1459](https://github.com/anoma/juvix/pull/1459)
([janmasrovira](https://github.com/janmasrovira))
**Fixed bugs:**
- Fix typechecker [#1458](https://github.com/anoma/juvix/pull/1458)
([janmasrovira](https://github.com/janmasrovira))
**Merged pull requests:**
- use stdin in flycheck mode
[#1460](https://github.com/anoma/juvix/pull/1460)
([janmasrovira](https://github.com/janmasrovira))
- Add a native compile target for demos
[#1457](https://github.com/anoma/juvix/pull/1457)
([paulcadman](https://github.com/paulcadman))
- Small changes for the presentation
[#1456](https://github.com/anoma/juvix/pull/1456)
([jonaprieto](https://github.com/jonaprieto))
- Fixes TicTacToe Web example
[#1454](https://github.com/anoma/juvix/pull/1454)
([paulcadman](https://github.com/paulcadman))
- Upgrade to ghc-9.2.4
[#1451](https://github.com/anoma/juvix/pull/1451)
([janmasrovira](https://github.com/janmasrovira))
## [v0.2.3](https://github.com/anoma/juvix/tree/v0.2.3) (2022-08-15)
[Full Changelog](https://github.com/anoma/juvix/compare/v0.2.2...v0.2.3)
**Implemented enhancements:**
- add `name` and `version` to `juvix.yaml`
[#1422](https://github.com/anoma/juvix/pull/1422)
([janmasrovira](https://github.com/janmasrovira))
**Fixed bugs:**
- Properly handle paragraphs in judoc
[#1447](https://github.com/anoma/juvix/pull/1447)
([janmasrovira](https://github.com/janmasrovira))
**Merged pull requests:**
- Give a proper type to literal natural numbers
[#1453](https://github.com/anoma/juvix/pull/1453)
([janmasrovira](https://github.com/janmasrovira))
- Add the option to output json in the `juvix internal highlight`
command [#1450](https://github.com/anoma/juvix/pull/1450)
([janmasrovira](https://github.com/janmasrovira)) for supporting the
new Juvix Mode for Visual Studio Code
([jonaprieto](https://github.com/anoma/vscode-juvix))
- Allow \_ in Wasm exported names to support Anoma signature
[#1449](https://github.com/anoma/juvix/pull/1449)
([paulcadman](https://github.com/paulcadman))
- Add Towers of Hanoi and Pascal triangle examples
[#1446](https://github.com/anoma/juvix/pull/1446)
([paulcadman](https://github.com/paulcadman))
- Add `juvix init` command
[#1445](https://github.com/anoma/juvix/pull/1445)
([janmasrovira](https://github.com/janmasrovira))
- Refactor pretty to reduce duplication
[#1443](https://github.com/anoma/juvix/pull/1443)
([janmasrovira](https://github.com/janmasrovira))
- Add initial support for examples in Html documentation
[#1442](https://github.com/anoma/juvix/pull/1442)
([janmasrovira](https://github.com/janmasrovira))
- Add revisions to README
[#1440](https://github.com/anoma/juvix/pull/1440)
([jonaprieto](https://github.com/jonaprieto))
- CI: Run build on push to main
[#1437](https://github.com/anoma/juvix/pull/1437)
([paulcadman](https://github.com/paulcadman))
- Add doctor subcommand
[#1436](https://github.com/anoma/juvix/pull/1436)
([paulcadman](https://github.com/paulcadman))
- CI checkout repo before cache and use recommended cache strategy
[#1435](https://github.com/anoma/juvix/pull/1435)
([paulcadman](https://github.com/paulcadman))
- Various documentation adjustments
[#1434](https://github.com/anoma/juvix/pull/1434)
([paulcadman](https://github.com/paulcadman))
- Setup Clang before building docs in CI
[#1433](https://github.com/anoma/juvix/pull/1433)
([paulcadman](https://github.com/paulcadman))
- Major revisions to Makefile
[#1431](https://github.com/anoma/juvix/pull/1431)
([jonaprieto](https://github.com/jonaprieto))
- Do not add `-src` suffix to links in HTML when running `juvix html`
[#1429](https://github.com/anoma/juvix/pull/1429)
([paulcadman](https://github.com/paulcadman))
- Add a Web version of TicTacToe
[#1427](https://github.com/anoma/juvix/pull/1427)
([paulcadman](https://github.com/paulcadman))
- WASM import all non-compile axioms with alphanum names in entrypoint
[#1426](https://github.com/anoma/juvix/pull/1426)
([paulcadman](https://github.com/paulcadman))
- Export all functions with alpha numeric names from entrypoint module
[#1425](https://github.com/anoma/juvix/pull/1425)
([paulcadman](https://github.com/paulcadman))
- Refactor [#1420](https://github.com/anoma/juvix/pull/1420)
([jonaprieto](https://github.com/jonaprieto))
- Permit axiom without a compile block
[#1418](https://github.com/anoma/juvix/pull/1418)
([paulcadman](https://github.com/paulcadman))
- Implement an html documentation generator similar to haddock (#1413)
[#1416](https://github.com/anoma/juvix/pull/1416)
([janmasrovira](https://github.com/janmasrovira))
- Fix version shell test for 0.2.2
[#1415](https://github.com/anoma/juvix/pull/1415)
([paulcadman](https://github.com/paulcadman))
- Remove Int from stdlib and update SimpleFungibleToken example
[#1414](https://github.com/anoma/juvix/pull/1414)
([paulcadman](https://github.com/paulcadman))
## [v0.2.2](https://github.com/anoma/juvix/tree/v0.2.2) (2022-07-25)
[Full Changelog](https://github.com/anoma/juvix/compare/v0.2.1...v0.2.2)
**Implemented enhancements:**
- Compute name dependency graph and filter unreachable definitions
[#1408](https://github.com/anoma/juvix/pull/1408)
([lukaszcz](https://github.com/lukaszcz))
- Support type aliases
[#1404](https://github.com/anoma/juvix/pull/1404)
([janmasrovira](https://github.com/janmasrovira))
- Add debugging custom function to Prelude
[#1401](https://github.com/anoma/juvix/pull/1401)
([jonaprieto](https://github.com/jonaprieto))
- Add positivity check for data types
[#1393](https://github.com/anoma/juvix/pull/1393)
([jonaprieto](https://github.com/jonaprieto))
- Keep qualified names
[#1392](https://github.com/anoma/juvix/pull/1392)
([janmasrovira](https://github.com/janmasrovira))
- Direct translation from MicroJuvix to MiniC
[#1386](https://github.com/anoma/juvix/pull/1386)
([lukaszcz](https://github.com/lukaszcz))
- Widens the accepted symbol list
[#1385](https://github.com/anoma/juvix/pull/1385)
([mariari](https://github.com/mariari))
- Check all the type parameter names are different when declaring an
inductive type [#1377](https://github.com/anoma/juvix/pull/1377)
([jonaprieto](https://github.com/jonaprieto))
**Fixed bugs:**
- Curly braces are allowed nested in patterns
[#1380](https://github.com/anoma/juvix/pull/1380)
([janmasrovira](https://github.com/janmasrovira))
**Merged pull requests:**
- Add `Fail` effect (#1409)
[#1411](https://github.com/anoma/juvix/pull/1411)
([janmasrovira](https://github.com/janmasrovira))
- Refactor of typechecking and other checking processes
[#1410](https://github.com/anoma/juvix/pull/1410)
([jonaprieto](https://github.com/jonaprieto))
- Use bold for code in scoper error messages
[#1403](https://github.com/anoma/juvix/pull/1403)
([janmasrovira](https://github.com/janmasrovira))
- Replace ppSimple by text
[#1402](https://github.com/anoma/juvix/pull/1402)
([jonaprieto](https://github.com/jonaprieto))
- Implement some error messages (#1396)
[#1400](https://github.com/anoma/juvix/pull/1400)
([lukaszcz](https://github.com/lukaszcz))
- Refactor childs of pattern parentheses and braces
[#1398](https://github.com/anoma/juvix/pull/1398)
([janmasrovira](https://github.com/janmasrovira))
- Update Juvix standard-library
[#1389](https://github.com/anoma/juvix/pull/1389)
([jonaprieto](https://github.com/jonaprieto))
- Fix documentation generation
[#1387](https://github.com/anoma/juvix/pull/1387)
([jonaprieto](https://github.com/jonaprieto))
- Adds Collatz sequence generator example
[#1384](https://github.com/anoma/juvix/pull/1384)
([paulcadman](https://github.com/paulcadman))
- html-examples [#1381](https://github.com/anoma/juvix/pull/1381)
([jonaprieto](https://github.com/jonaprieto))
- Refine hole in type signature to function type
[#1379](https://github.com/anoma/juvix/pull/1379)
([janmasrovira](https://github.com/janmasrovira))
- Type checking fails when the type of a pattern is not given by the
signature [#1378](https://github.com/anoma/juvix/pull/1378)
([janmasrovira](https://github.com/janmasrovira))
- Set cname for gh-pages action
[#1376](https://github.com/anoma/juvix/pull/1376)
([paulcadman](https://github.com/paulcadman))
- Add fibonacci sequence example program
[#1375](https://github.com/anoma/juvix/pull/1375)
([paulcadman](https://github.com/paulcadman))
- Fix Changelog links and minors
[#1371](https://github.com/anoma/juvix/pull/1371)
([jonaprieto](https://github.com/jonaprieto))
- Add Version number to the emacs mode
[#1320](https://github.com/anoma/juvix/pull/1320)
([mariari](https://github.com/mariari))
## New name: Juvix
Since version 0.2.2, the project has been renamed from "Mini Juvix" to
"Juvix". The new name reflects the fact that the project is no longer
just a compiler for a subset of Juvix, but a full implementation of the
language. Affected by this change are:
- Github repository moved from the Heliax organization to the Anoma
organization. "anoma/juvix" is the new repository name.
- All references to "Mini Juvix" have been replaced with "Juvix".
Unfortunetly,
due to the move, the old links to the Mini Juvix repository are broken
and will not be fixed.
## v0.2.1 (2022-07-12)
**Implemented enhancements:**
- Specialize commands of/for internal use MiniJuvix-#270
([jonaprieto](https://github.com/jonaprieto))
- Improve handling of location information for different objs
MiniJuvix-#263 ([jonaprieto](https://github.com/jonaprieto))
- Add issues and PR templates MiniJuvix-#261
([jonaprieto](https://github.com/jonaprieto))
- Throw error when reading a file that conflicts with embedded stdlib
MiniJuvix-#243 ([paulcadman](https://github.com/paulcadman))
- Embed standard library in the minijuvix binary MiniJuvix-#210
([paulcadman](https://github.com/paulcadman))
**Fixed bugs:**
- Fixed a bug with the path to walloc.c MiniJuvix-#237
([lukaszcz](https://github.com/lukaszcz))
- Perform ScopedToAbstract exactly once for each module MiniJuvix-#223
([paulcadman](https://github.com/paulcadman))
**Merged pull requests:**
- Label renaming MiniJuvix-#275
([jonaprieto](https://github.com/jonaprieto))
- Update link to discord MiniJuvix-#264
([Romainua](https://github.com/Romainua))
- Include `open import` statements when generating HTML MiniJuvix-#260
([paulcadman](https://github.com/paulcadman))
- Renaming MiniJuvix to Juvix MiniJuvix-#259
([jonaprieto](https://github.com/jonaprieto))
- Updates tests to use the updated standard library MiniJuvix-#253
([paulcadman](https://github.com/paulcadman))
- Enforce C99 standard in the generated C files MiniJuvix-#252
([lukaszcz](https://github.com/lukaszcz))
- Restore mascot images to the minijuvix book MiniJuvix-#250
([paulcadman](https://github.com/paulcadman))
- Allow jumping to another module in emacs MiniJuvix-#249
([janmasrovira](https://github.com/janmasrovira))
- Restore Juvix mascot image to README MiniJuvix-#248
([paulcadman](https://github.com/paulcadman))
- Add emacs option `minijuvix-disable-embedded-stdlib` MiniJuvix-#247
([paulcadman](https://github.com/paulcadman))
- Deprecate GHC backend MiniJuvix-#244
([lukaszcz](https://github.com/lukaszcz))
- Removed 'eval' and 'print' keywords (#214) MiniJuvix-#242
([lukaszcz](https://github.com/lukaszcz))
- Add option to disable minijuvix input method MiniJuvix-#239
([janmasrovira](https://github.com/janmasrovira))
- Remove the 'match' keyword MiniJuvix-#238
([lukaszcz](https://github.com/lukaszcz))
- Removed tests/positive/HelloWorld.mjuvix and specified clang version
in the documentation MiniJuvix-#236
([lukaszcz](https://github.com/lukaszcz))
- Filter symbol entries properly in the scoper MiniJuvix-#234
([janmasrovira](https://github.com/janmasrovira))
- Use the ModulesCache for `open` statements in ScopedToAbstract pass
MiniJuvix-#224 ([paulcadman](https://github.com/paulcadman))
- README: Include `--recursive` in git clone command to fetch stdlib
MiniJuvix-#211 ([paulcadman](https://github.com/paulcadman))
- Update project description v0.2.0 MiniJuvix-#209
([jonaprieto](https://github.com/jonaprieto))
- Unify AST representation of types and expressions in MicroJuvix
MiniJuvix-#188 ([janmasrovira](https://github.com/janmasrovira))
## v0.2.0 (2022-06-28)
**Implemented enhancements:**
- Support built in types MiniJuvix-#192
([janmasrovira](https://github.com/janmasrovira))
- Support partial application and closure passing in C backend
MiniJuvix-#190 ([paulcadman](https://github.com/paulcadman))
- Allow `open import` statements MiniJuvix-#175
([janmasrovira](https://github.com/janmasrovira))
- Remove TypeAny and adapt typechecking for literals MiniJuvix-#173
([janmasrovira](https://github.com/janmasrovira))
- Allow holes to be refined into function types MiniJuvix-#165
([janmasrovira](https://github.com/janmasrovira))
- Support implicit arguments MiniJuvix-#144
([janmasrovira](https://github.com/janmasrovira))
- Add support for holes in type signatures MiniJuvix-#141
([janmasrovira](https://github.com/janmasrovira))
- Support function closures with no environment in minic
MiniJuvix-#137 ([paulcadman](https://github.com/paulcadman))
- Add holes for expressions in function clauses and inference support
MiniJuvix-#136 ([janmasrovira](https://github.com/janmasrovira))
- Add "-Oz" optimization flag to clang args MiniJuvix-#133
([paulcadman](https://github.com/paulcadman))
- Add version and help option and root command to the CLI
MiniJuvix-#131 ([jonaprieto](https://github.com/jonaprieto))
**Fixed bugs:**
- Fix: Ignore implicit patterns and arguments in termination checking
MiniJuvix-#172 ([janmasrovira](https://github.com/janmasrovira))
- Fix: pretty printing for terminating keyword MiniJuvix-#145
([jonaprieto](https://github.com/jonaprieto))
**Merged pull requests:**
- Fix: proper error handling for typechecker errors MiniJuvix-#189
([jonaprieto](https://github.com/jonaprieto))
- Add juvix version info and date to HTML output MiniJuvix-#186
([jonaprieto](https://github.com/jonaprieto))
- Fix: Add check for constructor return types MiniJuvix-#182
([jonaprieto](https://github.com/jonaprieto))
- Use Abstract name in Abstract syntax and Micro/MonoJuvix
MiniJuvix-#181 ([janmasrovira](https://github.com/janmasrovira))
- Add an option to specify the path where to put the HTML output
MiniJuvix-#179 ([jonaprieto](https://github.com/jonaprieto))
- Upgrade to ghc-9.2.3 MiniJuvix-#178
([janmasrovira](https://github.com/janmasrovira))
- Replace dead link in README with a link to the Juvix book
MiniJuvix-#177 ([paulcadman](https://github.com/paulcadman))
- Embed HTML assets in the juvix binary MiniJuvix-#176
([paulcadman](https://github.com/paulcadman))
- Fix: identifiers with a keyword prefix cannot be parsed
MiniJuvix-#171 ([janmasrovira](https://github.com/janmasrovira))
- Improve filepath equality MiniJuvix-#170
([janmasrovira](https://github.com/janmasrovira))
- Update validity predicate milestone example to 0.2 syntax
MiniJuvix-#167 ([paulcadman](https://github.com/paulcadman))
- Fix links in documentation and update to new syntax MiniJuvix-#163
([paulcadman](https://github.com/paulcadman))
- Update stdlib to work with version 0.2 MiniJuvix-#160
([janmasrovira](https://github.com/janmasrovira))
- Update README usage example to use the compile command
MiniJuvix-#158 ([paulcadman](https://github.com/paulcadman))
- Remove dead code related to the pipeline MiniJuvix-#156
([janmasrovira](https://github.com/janmasrovira))
- Add negative test for AppLeftImplicit MiniJuvix-#154
([janmasrovira](https://github.com/janmasrovira))
- Add positive test designed for implicit arguments MiniJuvix-#153
([janmasrovira](https://github.com/janmasrovira))
- Remove ExpressionTyped from MicroJuvix MiniJuvix-#143
([janmasrovira](https://github.com/janmasrovira))
- Revision for package.yaml and minor deletions MiniJuvix-#135
([jonaprieto](https://github.com/jonaprieto))
## v0.1.4 (2022-05-30)
**Merged pull requests:**
- Generic Errors and refactoring MiniJuvix-#123
([jonaprieto](https://github.com/jonaprieto))
- Only generates docs if the pull request merges MiniJuvix-#121
([jonaprieto](https://github.com/jonaprieto))
- Add initial docs generation website MiniJuvix-#119
([jonaprieto](https://github.com/jonaprieto))
- Fix internal link in README MiniJuvix-#116
([paulcadman](https://github.com/paulcadman))
- Add minic-runtime for linking without libc MiniJuvix-#113
([paulcadman](https://github.com/paulcadman))
- Add termination checking to the pipeline MiniJuvix-#111
([jonaprieto](https://github.com/jonaprieto))
- Support uncurried higher order functions MiniJuvix-#110
([paulcadman](https://github.com/paulcadman))
- Improve error generation and handling MiniJuvix-#108
([janmasrovira](https://github.com/janmasrovira))
- Add MiniC tests with clang+wasi-sdk MiniJuvix-#105
([paulcadman](https://github.com/paulcadman))
- Add usage example and move developer docs MiniJuvix-#96
([paulcadman](https://github.com/paulcadman))
- Refactor warning related stuff MiniJuvix-#91
([janmasrovira](https://github.com/janmasrovira))
- Remove Agda backend MiniJuvix-#86
([paulcadman](https://github.com/paulcadman))
**Implemented enhancements:**
- Add `compile` subcommand to generate binaries MiniJuvix-#128
- Add intervals to flycheck errors MiniJuvix-#124
- Improve error handling in juvix-mode MiniJuvix-#107
- Support multiple modules in compilation MiniJuvix-#93
- Add compile command to CLI MiniJuvix-#130
([paulcadman](https://github.com/paulcadman))
- Use Interval in GenericErrors MiniJuvix-#125
([janmasrovira](https://github.com/janmasrovira))
- Remove dev in the CI and other tweaks MiniJuvix-#118
([jonaprieto](https://github.com/jonaprieto))
- Highlight comments correctly MiniJuvix-#106
([janmasrovira](https://github.com/janmasrovira))
- Support multiple modules in compilation MiniJuvix-#100
([janmasrovira](https://github.com/janmasrovira))
- New target syntax and modular VP examples MiniJuvix-#92
([jonaprieto](https://github.com/jonaprieto))
**Fixed bugs:**
- Missing error messages when using throw/error MiniJuvix-#117
- Fix highlight of comments MiniJuvix-#104
- Fix juvix-mode coloring for projects with multiple modules
MiniJuvix-#101
- Fix `highlight` command for modules with import statements
MiniJuvix-#102 ([janmasrovira](https://github.com/janmasrovira))
**Closed issues:**
- Deprecate the class JuvixError MiniJuvix-#115
- Add ToGenericError instance for the infix parsing errors
MiniJuvix-#114
- Compile to WASM without linking libc MiniJuvix-#112
- Add the termination checker to the pipeline MiniJuvix-#109
- Use clang + wasi-sdk instead of emcc to compile to WASM
MiniJuvix-#103
- Move developer tooling docs out of README MiniJuvix-#95
- Add pre-commit checks to CI checks MiniJuvix-#94
- Support higher order functions in C backend MiniJuvix-#90
- Remove dev from the list of branches in the CI MiniJuvix-#89
- Refactor warning related stuff MiniJuvix-#87
- The Juvix website MiniJuvix-#51
## v0.1.3 (2022-05-05)
**Closed issues:**
- Monomorphisation naming inconsistency MiniJuvix-#84
- Remove BackendAgda MiniJuvix-#83
- Change terminating keyword behavior MiniJuvix-#81
- MonoJuvix `ExpressionTyped` is never used MiniJuvix-#79
- Bump stackage nightly and delete `allow-newer: true` from
`stack.yaml` MiniJuvix-#75
- Generate automatically CHANGELOG and Github Release Notes
MiniJuvix-#73
- Make flag show-name-ids global MiniJuvix-#61
- Add C code generation backend MiniJuvix-#60
- Add polymorphism MiniJuvix-#59
- Add the compile keyword to the frontend syntax (support up to
Scoping) MiniJuvix-#58
- Error with undefined or underscores MiniJuvix-#54
- Add support for other GHC and Stack stable version MiniJuvix-#52
- Autodetect output ANSI support when prettyprinting MiniJuvix-#38
- Terminating for type signatures MiniJuvix-#11
**Merged pull requests:**
- Remove agda backend MiniJuvix-#86
([paulcadman](https://github.com/paulcadman))
- 84 monomorphisation naming inconsistency MiniJuvix-#85
([janmasrovira](https://github.com/janmasrovira))
- Change terminating keyword behavior MiniJuvix-#82
([jonaprieto](https://github.com/jonaprieto))
- Remove unused constructor ExpressionTyped in Monojuvix MiniJuvix-#80
([janmasrovira](https://github.com/janmasrovira))
- Stricter stack builds and pedantic mode for CI MiniJuvix-#78
([jonaprieto](https://github.com/jonaprieto))
- Bump stackage version and remove allow-newer MiniJuvix-#76
([janmasrovira](https://github.com/janmasrovira))
- Add automatically updates/issues/merged PRs to the changelog
MiniJuvix-#74 ([jonaprieto](https://github.com/jonaprieto))
- Add terminating keyword MiniJuvix-#71
([jonaprieto](https://github.com/jonaprieto))
- Monomorphization MiniJuvix-#70
([janmasrovira](https://github.com/janmasrovira))
- Remove StatementCompile in AST after scoping MiniJuvix-#69
([paulcadman](https://github.com/paulcadman))
- Add C code generation backend MiniJuvix-#68
([paulcadman](https://github.com/paulcadman))
- Check if stderr supports ANSI and print accordingly MiniJuvix-#67
([janmasrovira](https://github.com/janmasrovira))
- Add support for compile (by Jonathan) MiniJuvix-#66
([paulcadman](https://github.com/paulcadman))
- Add NameIdGen effect to the pipeline MiniJuvix-#64
([janmasrovira](https://github.com/janmasrovira))
- Make the `--show-name-ids` flag global MiniJuvix-#63
([janmasrovira](https://github.com/janmasrovira))
- Implement type checker with polymorphism MiniJuvix-#62
([janmasrovira](https://github.com/janmasrovira))
## v0.1.2 (2022-04-11)
**Closed issues:**
- Add en emacs mode with support for scoped highlighting MiniJuvix-#25
- Add support for project root detection through a juvix.yaml file
MiniJuvix-#24
- Add CLI cmd to generate juvix autocompletion files for fish and zsh
MiniJuvix-#23
- Add pretty and typecheck subcommands to the microjuvix CLI
MiniJuvix-#21
- Translate identifiers from MicroJuvix to MiniHaskell (valid Haskell)
MiniJuvix-#19
- Implement the MiniHaskell to Haskell translation (prettyprinter)
MiniJuvix-#18
- Implementation of a typechecker for MicroJuvix MiniJuvix-#16
- Add references to the Abstract AST to update compilation to
MiniHaskell MiniJuvix-#12
- Order in the house MiniJuvix-#10
**Merged pull requests:**
- The Juvix project now follows the same goals as the original Juvix
project. MiniJuvix-#7 ([jonaprieto](https://github.com/jonaprieto))
- Dev→main MiniJuvix-#6 ([jonaprieto](https://github.com/jonaprieto))
- Big update including termination checking MiniJuvix-#5
([janmasrovira](https://github.com/janmasrovira))
- Parser and scoper MiniJuvix-#3
([jonaprieto](https://github.com/jonaprieto))
- Upgrade to ghc9 and use hpack MiniJuvix-#2
([janmasrovira](https://github.com/janmasrovira))
- Merge MiniJuvix-#1 ([jonaprieto](https://github.com/jonaprieto))
## v0.1.1 (2022-03-25)
- Add support in the parser/scoper for Axiom backends
- Add support for `foreign` keyword
- Add flag `--no-colors` for the scope command
- Upgrade to GHC 9.2.2
- Improve resolution of local symbols in the scoper
- Several new tests related to ambiguous symbols
- Add `--version` flag
- Add InfoTableBuilder effect for the scoper
**Closed issues:**
- Add diff output to the test suite MiniJuvix-#9
- Improve scoper ambiguity error messages MiniJuvix-#8