46 KiB
Changelog
<a href="https://github.com/anoma/juvix"> <img align="right" width="300" height="300" alt="Juvix Mascot" src="../assets/Seating_Tara_smiling.svg" /> </a>
v0.2.8 (2022-12-20)
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))
- 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))
- 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 (2022-12-05)
Implemented enhancements:
- Add juvix-repl-mode for emacs #1612 (paulcadman)
- Make lambda lifting correct when free variables occur in the types of binders #1609 (janmasrovira)
Merged pull requests:
- Files pure refactor #1652 (janmasrovira)
- Use the same stack version in all CI jobs and remove
stack setup
step #1651 (paulcadman) - Fix 'not a primitive type' error message #1648 (lukaszcz)
- Upgrade stack snapshot to use ghc-9.2.5 #1621 (janmasrovira)
- Add an emacs function to restart the REPL #1618 (paulcadman)
- Add types to Core functions and constructors when translating from Internal #1617 (paulcadman)
- Auto complete argument of 'dev core read -t' #1616 (janmasrovira)
- Compute new entrypoint root when loading a file in the REPL #1615 (paulcadman)
- Compute maximum runtime stack height in JuvixReg #1613 (lukaszcz)
- Remove shelltest threading #1611 (paulcadman)
- Use StackInfo and recurseS in the JuvixAsm to JuvixReg translation. #1610 (lukaszcz)
- Precompute maximum heap allocation #1608 (lukaszcz)
- Improvements to Juvix REPL #1607 (paulcadman)
- Fix discrepancy between Juvix and WASM pages #1605 (lukaszcz)
- Compute JuvixAsm stack usage info #1604 (lukaszcz)
- Improve As-Pattern parsing #1603 (ii8)
- Juvix core recursors should descend into nodes stored in infos #1600 (janmasrovira)
- Add docs for installing the linux binary #1599 (paulcadman)
- Binder refactor #1598 (janmasrovira)
- Juvix C runtime #1580 (lukaszcz)
- As-patterns #1576 (ii8)
- Eta expansion at the top of each core function definition (#1481) #1571 (janmasrovira)
- Add translation from Internal to Core #1567 (paulcadman)
v0.2.6 (2022-10-26)
Implemented enhancements:
- Support go to definition for the standard library #1592 (paulcadman)
- Add builtin if #1585 (paulcadman)
- Add builtin boolean #1582 (paulcadman)
- Add lambda expressions to internal and add typechecking support #1538 (janmasrovira)
Fixed bugs:
- Fix arity checker bug #1546 (janmasrovira)
- Look in patterns when building the dependency graph #1536 (janmasrovira)
Merged pull requests:
- Update language reference to match current state of Juvix #1594 (paulcadman)
- Fix letrec printing #1591 (janmasrovira)
- Update stdlib submodule with builtin changes #1589 (paulcadman)
- Rename builtin natural to nat and boolean to bool #1588 (paulcadman)
- Improve the test for eta-expansion of constructors and builtins #1583 (lukaszcz)
- Properly newline expressions in the pretty printer #1581 (janmasrovira)
- Letrec lifting #1579 (janmasrovira)
- Add softlines between applications and hang definitions #1578 (janmasrovira)
- Parse optional type info in JVC files #1575 (lukaszcz)
- Fix symbol numbering bug #1574 (lukaszcz)
- 1569 rewrite the test for lambda lifting to use evaluation #1572 (janmasrovira)
- Remove lambda from reservedSymbols #1568 (lukaszcz)
- Keywords refactor #1566 (janmasrovira)
- remove ≔ from the language and replace it by := #1563 (janmasrovira)
- JuvixReg #1551 (lukaszcz)
- Remove duplicate function in concrete analysis #1550 (ii8)
- Evaluator minor style refactor #1547 (janmasrovira)
- Properly handle top lambdas in the termination checker #1544 (janmasrovira)
- Mutual inference #1543 (janmasrovira)
- Autocomplete ".jvc" input files for core {eval, read} commands #1542 (paulcadman)
- Add –show-de-bruijn to
core eval
command #1540 (paulcadman) - Inductive types should depend on the types of their constructors #1537 (lukaszcz)
- Parser labels #1535 (janmasrovira)
- JuvixAsm #1432 (lukaszcz)
v0.2.5 (2022-09-14)
Fixed bugs:
- Properly type check patterns that need normalization #1472 (janmasrovira)
- Detect nested patterns as smaller in the termination checker #1524
- Fix developBeta in Core/Extra.hs #1487 (lukaszcz)
- Core/Extra/Recursors/Collector bugfix #1510 (lukaszcz)
Merged pull requests:
- Replace -> by := in lambda syntax #1533 (janmasrovira)
- 'Match' with complex patterns in Core #1530 (lukaszcz)
- Refactor CLI #1527 (janmasrovira)
- Add CanonicalProjection #1526 (janmasrovira)
- Make comma a delimiter #1525 (lukaszcz)
- Detect nested patterns as smaller in the termination checker #1524 (janmasrovira)
- Disallow tab characters as spaces #1523 (janmasrovira)
- Refactor
destruct
in Core/Extra/Base #1522 (lukaszcz) - JuvixCore primitive types #1521 (lukaszcz)
- Enable autocompletion for the –theme flag #1519 (janmasrovira)
- Stripped version of Core Node datatype #1518 (lukaszcz)
- Add
internal core read
command #1517 (janmasrovira) - Implement some instances for BinderList #1515 (janmasrovira)
- Back recursor types with type families #1514 (janmasrovira)
- Eager evaluation of Constr arguments #1513 (lukaszcz)
- Dynamic type in Core #1508 (lukaszcz)
- LetRec in Core #1507 (lukaszcz)
- Add Haddock and Agda licenses #1506 (janmasrovira)
- Fix docs webapp examples CI build #1505 (paulcadman)
- Add CLI usage examples doc and integrate with README #1504 (paulcadman)
- Refactor BinderInfo #1503 (lukaszcz)
- Make
juvix compile
default to native target #1502 (paulcadman) - Refactor Node datatype #1501 (lukaszcz)
- Clean up import list in Pipeline #1499 (jonaprieto)
- Remove mono #1497 (jonaprieto)
- Remove Haskell support #1496 (jonaprieto)
- Implement lambda lifting #1494 (janmasrovira)
- Document Emacs installation and the 'exec-path' problem #1493 (lukaszcz)
- Add –allow-different-user to workflow stack command #1492 (paulcadman)
- Stack with github actions permissions workaround #1490 (paulcadman)
- Restructure recursors and add some lens interfaces #1489 (janmasrovira)
- Add a github action to build a static linux binary #1488 (paulcadman)
- Fix developBeta in Core/Extra.hs #1487 (lukaszcz)
- Add an option to show name ids in errors #1486 (lukaszcz)
v0.2.4 (2022-08-19)
(Special version for Heliax's retreat in Italy)
Implemented enhancements:
- Add –stdin flag #1459 (janmasrovira)
Fixed bugs:
- Fix typechecker #1458 (janmasrovira)
Merged pull requests:
- use –stdin in flycheck mode #1460 (janmasrovira)
- Add a native compile target for demos #1457 (paulcadman)
- Small changes for the presentation #1456 (jonaprieto)
- Fixes TicTacToe Web example #1454 (paulcadman)
- Upgrade to ghc-9.2.4 #1451 (janmasrovira)
v0.2.3 (2022-08-15)
Implemented enhancements:
- add
name
andversion
tojuvix.yaml
#1422 (janmasrovira)
Fixed bugs:
- Properly handle paragraphs in judoc #1447 (janmasrovira)
Merged pull requests:
- Give a proper type to literal natural numbers #1453 (janmasrovira)
- Add the option to output json in the
juvix internal highlight
command #1450 (janmasrovira) for supporting the new Juvix Mode for Visual Studio Code (jonaprieto) - Allow _ in Wasm exported names to support Anoma signature #1449 (paulcadman)
- Add Towers of Hanoi and Pascal triangle examples #1446 (paulcadman)
- Add
juvix init
command #1445 (janmasrovira) - Refactor pretty to reduce duplication #1443 (janmasrovira)
- Add initial support for examples in Html documentation #1442 (janmasrovira)
- Add revisions to README #1440 (jonaprieto)
- CI: Run build on push to main #1437 (paulcadman)
- Add doctor subcommand #1436 (paulcadman)
- CI checkout repo before cache and use recommended cache strategy #1435 (paulcadman)
- Various documentation adjustments #1434 (paulcadman)
- Setup Clang before building docs in CI #1433 (paulcadman)
- Major revisions to Makefile #1431 (jonaprieto)
- Do not add
-src
suffix to links in HTML when runningjuvix html
#1429 (paulcadman) - Add a Web version of TicTacToe #1427 (paulcadman)
- WASM import all non-compile axioms with alphanum names in entrypoint #1426 (paulcadman)
- Export all functions with alpha numeric names from entrypoint module #1425 (paulcadman)
- Refactor #1420 (jonaprieto)
- Permit axiom without a compile block #1418 (paulcadman)
- Implement an html documentation generator similar to haddock (#1413) #1416 (janmasrovira)
- Fix version shell test for 0.2.2 #1415 (paulcadman)
- Remove Int from stdlib and update SimpleFungibleToken example #1414 (paulcadman)
v0.2.2 (2022-07-25)
Implemented enhancements:
- Compute name dependency graph and filter unreachable definitions #1408 (lukaszcz)
- Support type aliases #1404 (janmasrovira)
- Add debugging custom function to Prelude #1401 (jonaprieto)
- Add positivity check for data types #1393 (jonaprieto)
- Keep qualified names #1392 (janmasrovira)
- Direct translation from MicroJuvix to MiniC #1386 (lukaszcz)
- Widens the accepted symbol list #1385 (mariari)
- Check all the type parameter names are different when declaring an inductive type #1377 (jonaprieto)
Fixed bugs:
- Curly braces are allowed nested in patterns #1380 (janmasrovira)
Merged pull requests:
- Add
Fail
effect (#1409) #1411 (janmasrovira) - Refactor of typechecking and other checking processes #1410 (jonaprieto)
- Use bold for code in scoper error messages #1403 (janmasrovira)
- Replace ppSimple by text #1402 (jonaprieto)
- Implement some error messages (#1396) #1400 (lukaszcz)
- Refactor childs of pattern parentheses and braces #1398 (janmasrovira)
- Update Juvix standard-library #1389 (jonaprieto)
- Fix documentation generation #1387 (jonaprieto)
- Adds Collatz sequence generator example #1384 (paulcadman)
- html-examples #1381 (jonaprieto)
- Refine hole in type signature to function type #1379 (janmasrovira)
- Type checking fails when the type of a pattern is not given by the signature #1378 (janmasrovira)
- Set cname for gh-pages action #1376 (paulcadman)
- Add fibonacci sequence example program #1375 (paulcadman)
- Fix Changelog links and minors #1371 (jonaprieto)
- Add Version number to the emacs mode #1320 (mariari)
v0.2.1 (2022-07-12)
Implemented enhancements:
- Specialize commands of/for internal use #270 (jonaprieto)
- Improve handling of location information for different objs #263 (jonaprieto)
- Add issues and PR templates #261 (jonaprieto)
- Throw error when reading a file that conflicts with embedded stdlib #243 (paulcadman)
- Embed standard library in the minijuvix binary #210 (paulcadman)
Fixed bugs:
- Fixed a bug with the path to walloc.c #237 (lukaszcz)
- Perform ScopedToAbstract exactly once for each module #223 (paulcadman)
Merged pull requests:
- Label renaming #275 (jonaprieto)
- Update link to discord #264 (Romainua)
- Include
open import
statements when generating HTML #260 (paulcadman) - Renaming MiniJuvix to Juvix #259 (jonaprieto)
- Updates tests to use the updated standard library #253 (paulcadman)
- Enforce C99 standard in the generated C files #252 (lukaszcz)
- Restore mascot images to the minijuvix book #250 (paulcadman)
- Allow jumping to another module in emacs #249 (janmasrovira)
- Restore Juvix mascot image to README #248 (paulcadman)
- Add emacs option
minijuvix-disable-embedded-stdlib
#247 (paulcadman) - Deprecate GHC backend #244 (lukaszcz)
- Removed 'eval' and 'print' keywords (#214) #242 (lukaszcz)
- Add option to disable minijuvix input method #239 (janmasrovira)
- Remove the 'match' keyword #238 (lukaszcz)
- Removed tests/positive/HelloWorld.mjuvix and specified clang version in the documentation #236 (lukaszcz)
- Filter symbol entries properly in the scoper #234 (janmasrovira)
- Use the ModulesCache for
open
statements in ScopedToAbstract pass #224 (paulcadman) - README: Include
--recursive
in git clone command to fetch stdlib #211 (paulcadman) - Update project description v0.2.0 #209 (jonaprieto)
- Unify AST representation of types and expressions in MicroJuvix #188 (janmasrovira)
v0.2.0
(2022-06-28)
Implemented enhancements:
- Support built in types #192 (janmasrovira)
- Support partial application and closure passing in C backend #190 (paulcadman)
- Allow
open import
statements #175 (janmasrovira) - Remove TypeAny and adapt typechecking for literals #173 (janmasrovira)
- Allow holes to be refined into function types #165 (janmasrovira)
- Support implicit arguments #144 (janmasrovira)
- Add support for holes in type signatures #141 (janmasrovira)
- Support function closures with no environment in minic #137 (paulcadman)
- Add holes for expressions in function clauses and inference support #136 (janmasrovira)
- Add "-Oz" optimization flag to clang args #133 (paulcadman)
- Add version and help option and root command to the CLI #131 (jonaprieto)
Fixed bugs:
- Fix: Ignore implicit patterns and arguments in termination checking #172 (janmasrovira)
- Fix: pretty printing for terminating keyword #145 (jonaprieto)
Merged pull requests:
- Fix: proper error handling for typechecker errors #189 (jonaprieto)
- Add juvix version info and date to HTML output #186 (jonaprieto)
- Fix: Add check for constructor return types #182 (jonaprieto)
- Use Abstract name in Abstract syntax and Micro/MonoJuvix #181 (janmasrovira)
- Add an option to specify the path where to put the HTML output #179 (jonaprieto)
- Upgrade to ghc-9.2.3 #178 (janmasrovira)
- Replace dead link in README with a link to the Juvix book #177 (paulcadman)
- Embed HTML assets in the juvix binary #176 (paulcadman)
- Fix: identifiers with a keyword prefix cannot be parsed #171 (janmasrovira)
- Improve filepath equality #170 (janmasrovira)
- Update validity predicate milestone example to 0.2 syntax #167 (paulcadman)
- Fix links in documentation and update to new syntax #163 (paulcadman)
- Update stdlib to work with version 0.2 #160 (janmasrovira)
- Update README usage example to use the compile command #158 (paulcadman)
- Remove dead code related to the pipeline #156 (janmasrovira)
- Add negative test for AppLeftImplicit #154 (janmasrovira)
- Add positive test designed for implicit arguments #153 (janmasrovira)
- Remove ExpressionTyped from MicroJuvix #143 (janmasrovira)
- Revision for package.yaml and minor deletions #135 (jonaprieto)
v0.1.4
(2022-05-30)
Merged pull requests:
- Generic Errors and refactoring #123 (jonaprieto)
- Only generates docs if the pull request merges #121 (jonaprieto)
- Add initial docs generation website #119 (jonaprieto)
- Fix internal link in README #116 (paulcadman)
- Add minic-runtime for linking without libc #113 (paulcadman)
- Add termination checking to the pipeline #111 (jonaprieto)
- Support uncurried higher order functions #110 (paulcadman)
- Improve error generation and handling #108 (janmasrovira)
- Add MiniC tests with clang+wasi-sdk #105 (paulcadman)
- Add usage example and move developer docs #96 (paulcadman)
- Refactor warning related stuff #91 (janmasrovira)
- Remove Agda backend #86 (paulcadman)
Implemented enhancements:
- Add
compile
subcommand to generate binaries #128 - Add intervals to flycheck errors #124
- Improve error handling in juvix-mode #107
- Support multiple modules in compilation #93
- Add compile command to CLI #130 (paulcadman)
- Use Interval in GenericErrors #125 (janmasrovira)
- Remove dev in the CI and other tweaks #118 (jonaprieto)
- Highlight comments correctly #106 (janmasrovira)
- Support multiple modules in compilation #100 (janmasrovira)
- New target syntax and modular VP examples #92 (jonaprieto)
Fixed bugs:
- Missing error messages when using throw/error #117
- Fix highlight of comments #104
- Fix juvix-mode coloring for projects with multiple modules #101
- Fix
highlight
command for modules with import statements #102 (janmasrovira)
Closed issues:
- Deprecate the class JuvixError #115
- Add ToGenericError instance for the infix parsing errors #114
- Compile to WASM without linking libc #112
- Add the termination checker to the pipeline #109
- Use clang + wasi-sdk instead of emcc to compile to WASM #103
- Move developer tooling docs out of README #95
- Add pre-commit checks to CI checks #94
- Support higher order functions in C backend #90
- Remove dev from the list of branches in the CI #89
- Refactor warning related stuff #87
- The Juvix website #51
v0.1.3
(2022-05-05)
Closed issues:
- Monomorphisation naming inconsistency #84
- Remove BackendAgda #83
- Change terminating keyword behavior #81
- MonoJuvix
ExpressionTyped
is never used #79 - Bump stackage nightly and delete
allow-newer: true
fromstack.yaml
#75 - Generate automatically CHANGELOG and Github Release Notes #73
- Make flag –show-name-ids global #61
- Add C code generation backend #60
- Add polymorphism #59
- Add the compile keyword to the frontend syntax (support up to Scoping) #58
- Error with undefined or underscores #54
- Add support for other GHC and Stack stable version #52
- Autodetect output ANSI support when prettyprinting #38
- Terminating for type signatures #11
Merged pull requests:
- Remove agda backend #86 (paulcadman)
- 84 monomorphisation naming inconsistency #85 (janmasrovira)
- Change terminating keyword behavior #82 (jonaprieto)
- Remove unused constructor ExpressionTyped in Monojuvix #80 (janmasrovira)
- Stricter stack builds and pedantic mode for CI #78 (jonaprieto)
- Bump stackage version and remove allow-newer #76 (janmasrovira)
- Add automatically updates/issues/merged PRs to the changelog #74 (jonaprieto)
- Add terminating keyword #71 (jonaprieto)
- Monomorphization #70 (janmasrovira)
- Remove StatementCompile in AST after scoping #69 (paulcadman)
- Add C code generation backend #68 (paulcadman)
- Check if stderr supports ANSI and print accordingly #67 (janmasrovira)
- Add support for compile (by Jonathan) #66 (paulcadman)
- Add NameIdGen effect to the pipeline #64 (janmasrovira)
- Make the
--show-name-ids
flag global #63 (janmasrovira) - Implement type checker with polymorphism #62 (janmasrovira)
v0.1.2
(2022-04-11)
Closed issues:
- Add en emacs mode with support for scoped highlighting #25
- Add support for project root detection through a juvix.yaml file #24
- Add CLI cmd to generate juvix autocompletion files for fish and zsh #23
- Add pretty and typecheck subcommands to the microjuvix CLI #21
- Translate identifiers from MicroJuvix to MiniHaskell (valid Haskell) #19
- Implement the MiniHaskell to Haskell translation (prettyprinter) #18
- Implementation of a typechecker for MicroJuvix #16
- Add references to the Abstract AST to update compilation to MiniHaskell #12
- Order in the house #10
Merged pull requests:
- The Juvix project now follows the same goals as the original Juvix project. #7 (jonaprieto)
- Dev→main #6 (jonaprieto)
- Big update including termination checking #5 (janmasrovira)
- Parser and scoper #3 (jonaprieto)
- Upgrade to ghc9 and use hpack #2 (janmasrovira)
- Merge #1 (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: