Skip to content

Changelog

Juvix Mascot

v0.3.3 (2023-05-08)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.3.2 (2023-04-18)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.3.1 (2023-03-31)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.3.0 (2023-03-15)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.2.9 (2023-01-18)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.2.8 (2022-12-20)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.2.7 (2022-12-05)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.2.6 (2022-10-26)

Full Changelog

Implemented enhancements:

Fixed bugs:

Merged pull requests:

v0.2.5 (2022-09-14)

Full Changelog

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:

v0.2.4 (2022-08-19)

Full Changelog

(Special version for Heliax's retreat in Italy)

Implemented enhancements:

Fixed bugs:

Merged pull requests:

v0.2.3 (2022-08-15)

Full Changelog

Implemented enhancements:

Fixed bugs:

Merged pull requests:

v0.2.2 (2022-07-25)

Full Changelog

Implemented enhancements:

Fixed bugs:

Merged pull requests:

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)
  • Improve handling of location information for different objs MiniJuvix-#263 (jonaprieto)
  • Add issues and PR templates MiniJuvix-#261 (jonaprieto)
  • Throw error when reading a file that conflicts with embedded stdlib MiniJuvix-#243 (paulcadman)
  • Embed standard library in the minijuvix binary MiniJuvix-#210 (paulcadman)

Fixed bugs:

  • Fixed a bug with the path to walloc.c MiniJuvix-#237 (lukaszcz)
  • Perform ScopedToAbstract exactly once for each module MiniJuvix-#223 (paulcadman)

Merged pull requests:

  • Label renaming MiniJuvix-#275 (jonaprieto)
  • Update link to discord MiniJuvix-#264 (Romainua)
  • Include open import statements when generating HTML MiniJuvix-#260 (paulcadman)
  • Renaming MiniJuvix to Juvix MiniJuvix-#259 (jonaprieto)
  • Updates tests to use the updated standard library MiniJuvix-#253 (paulcadman)
  • Enforce C99 standard in the generated C files MiniJuvix-#252 (lukaszcz)
  • Restore mascot images to the minijuvix book MiniJuvix-#250 (paulcadman)
  • Allow jumping to another module in emacs MiniJuvix-#249 (janmasrovira)
  • Restore Juvix mascot image to README MiniJuvix-#248 (paulcadman)
  • Add emacs option minijuvix-disable-embedded-stdlib MiniJuvix-#247 (paulcadman)
  • Deprecate GHC backend MiniJuvix-#244 (lukaszcz)
  • Removed 'eval' and 'print' keywords (#214) MiniJuvix-#242 (lukaszcz)
  • Add option to disable minijuvix input method MiniJuvix-#239 (janmasrovira)
  • Remove the 'match' keyword MiniJuvix-#238 (lukaszcz)
  • Removed tests/positive/HelloWorld.mjuvix and specified clang version in the documentation MiniJuvix-#236 (lukaszcz)
  • Filter symbol entries properly in the scoper MiniJuvix-#234 (janmasrovira)
  • Use the ModulesCache for open statements in ScopedToAbstract pass MiniJuvix-#224 (paulcadman)
  • README: Include --recursive in git clone command to fetch stdlib MiniJuvix-#211 (paulcadman)
  • Update project description v0.2.0 MiniJuvix-#209 (jonaprieto)
  • Unify AST representation of types and expressions in MicroJuvix MiniJuvix-#188 (janmasrovira)

v0.2.0 (2022-06-28)

Implemented enhancements:

  • Support built in types MiniJuvix-#192 (janmasrovira)
  • Support partial application and closure passing in C backend MiniJuvix-#190 (paulcadman)
  • Allow open import statements MiniJuvix-#175 (janmasrovira)
  • Remove TypeAny and adapt typechecking for literals MiniJuvix-#173 (janmasrovira)
  • Allow holes to be refined into function types MiniJuvix-#165 (janmasrovira)
  • Support implicit arguments MiniJuvix-#144 (janmasrovira)
  • Add support for holes in type signatures MiniJuvix-#141 (janmasrovira)
  • Support function closures with no environment in minic MiniJuvix-#137 (paulcadman)
  • Add holes for expressions in function clauses and inference support MiniJuvix-#136 (janmasrovira)
  • Add "-Oz" optimization flag to clang args MiniJuvix-#133 (paulcadman)
  • Add version and help option and root command to the CLI MiniJuvix-#131 (jonaprieto)

Fixed bugs:

  • Fix: Ignore implicit patterns and arguments in termination checking MiniJuvix-#172 (janmasrovira)
  • Fix: pretty printing for terminating keyword MiniJuvix-#145 (jonaprieto)

Merged pull requests:

  • Fix: proper error handling for typechecker errors MiniJuvix-#189 (jonaprieto)
  • Add juvix version info and date to HTML output MiniJuvix-#186 (jonaprieto)
  • Fix: Add check for constructor return types MiniJuvix-#182 (jonaprieto)
  • Use Abstract name in Abstract syntax and Micro/MonoJuvix MiniJuvix-#181 (janmasrovira)
  • Add an option to specify the path where to put the HTML output MiniJuvix-#179 (jonaprieto)
  • Upgrade to ghc-9.2.3 MiniJuvix-#178 (janmasrovira)
  • Replace dead link in README with a link to the Juvix book MiniJuvix-#177 (paulcadman)
  • Embed HTML assets in the juvix binary MiniJuvix-#176 (paulcadman)
  • Fix: identifiers with a keyword prefix cannot be parsed MiniJuvix-#171 (janmasrovira)
  • Improve filepath equality MiniJuvix-#170 (janmasrovira)
  • Update validity predicate milestone example to 0.2 syntax MiniJuvix-#167 (paulcadman)
  • Fix links in documentation and update to new syntax MiniJuvix-#163 (paulcadman)
  • Update stdlib to work with version 0.2 MiniJuvix-#160 (janmasrovira)
  • Update README usage example to use the compile command MiniJuvix-#158 (paulcadman)
  • Remove dead code related to the pipeline MiniJuvix-#156 (janmasrovira)
  • Add negative test for AppLeftImplicit MiniJuvix-#154 (janmasrovira)
  • Add positive test designed for implicit arguments MiniJuvix-#153 (janmasrovira)
  • Remove ExpressionTyped from MicroJuvix MiniJuvix-#143 (janmasrovira)
  • Revision for package.yaml and minor deletions MiniJuvix-#135 (jonaprieto)

v0.1.4 (2022-05-30)

Merged pull requests:

  • Generic Errors and refactoring MiniJuvix-#123 (jonaprieto)
  • Only generates docs if the pull request merges MiniJuvix-#121 (jonaprieto)
  • Add initial docs generation website MiniJuvix-#119 (jonaprieto)
  • Fix internal link in README MiniJuvix-#116 (paulcadman)
  • Add minic-runtime for linking without libc MiniJuvix-#113 (paulcadman)
  • Add termination checking to the pipeline MiniJuvix-#111 (jonaprieto)
  • Support uncurried higher order functions MiniJuvix-#110 (paulcadman)
  • Improve error generation and handling MiniJuvix-#108 (janmasrovira)
  • Add MiniC tests with clang+wasi-sdk MiniJuvix-#105 (paulcadman)
  • Add usage example and move developer docs MiniJuvix-#96 (paulcadman)
  • Refactor warning related stuff MiniJuvix-#91 (janmasrovira)
  • Remove Agda backend MiniJuvix-#86 (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)
  • Use Interval in GenericErrors MiniJuvix-#125 (janmasrovira)
  • Remove dev in the CI and other tweaks MiniJuvix-#118 (jonaprieto)
  • Highlight comments correctly MiniJuvix-#106 (janmasrovira)
  • Support multiple modules in compilation MiniJuvix-#100 (janmasrovira)
  • New target syntax and modular VP examples MiniJuvix-#92 (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)

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)
  • 84 monomorphisation naming inconsistency MiniJuvix-#85 (janmasrovira)
  • Change terminating keyword behavior MiniJuvix-#82 (jonaprieto)
  • Remove unused constructor ExpressionTyped in Monojuvix MiniJuvix-#80 (janmasrovira)
  • Stricter stack builds and pedantic mode for CI MiniJuvix-#78 (jonaprieto)
  • Bump stackage version and remove allow-newer MiniJuvix-#76 (janmasrovira)
  • Add automatically updates/issues/merged PRs to the changelog MiniJuvix-#74 (jonaprieto)
  • Add terminating keyword MiniJuvix-#71 (jonaprieto)
  • Monomorphization MiniJuvix-#70 (janmasrovira)
  • Remove StatementCompile in AST after scoping MiniJuvix-#69 (paulcadman)
  • Add C code generation backend MiniJuvix-#68 (paulcadman)
  • Check if stderr supports ANSI and print accordingly MiniJuvix-#67 (janmasrovira)
  • Add support for compile (by Jonathan) MiniJuvix-#66 (paulcadman)
  • Add NameIdGen effect to the pipeline MiniJuvix-#64 (janmasrovira)
  • Make the --show-name-ids flag global MiniJuvix-#63 (janmasrovira)
  • Implement type checker with polymorphism MiniJuvix-#62 (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)
  • Dev→main MiniJuvix-#6 (jonaprieto)
  • Big update including termination checking MiniJuvix-#5 (janmasrovira)
  • Parser and scoper MiniJuvix-#3 (jonaprieto)
  • Upgrade to ghc9 and use hpack MiniJuvix-#2 (janmasrovira)
  • Merge MiniJuvix-#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:

  • Add diff output to the test suite MiniJuvix-#9
  • Improve scoper ambiguity error messages MiniJuvix-#8