Skip to content

Changelog

Juvix Mascot

v0.6.10 (2025-03-25)

What's Changed

  • Modify how the arguments are passed to the anoma node by @janmasrovira in https://github.com/anoma/juvix/pull/3258
  • Add dev anoma print-config command by @janmasrovira in https://github.com/anoma/juvix/pull/3260
  • Remove global --unroll limit flag by @janmasrovira in https://github.com/anoma/juvix/pull/3262
  • Add --print-loc option to dev import-tree scan command by @janmasrovira in https://github.com/anoma/juvix/pull/3263
  • Fix source locations for flatparse backend and add tests for import scanning by @janmasrovira in https://github.com/anoma/juvix/pull/3265
  • Allow partially applied trace by @lukaszcz in https://github.com/anoma/juvix/pull/3267
  • Update nock Anoma stdlib by @paulcadman in https://github.com/anoma/juvix/pull/3271
  • Add --cue flag to dev nockma encode by @janmasrovira in https://github.com/anoma/juvix/pull/3272
  • Check top module name in markdown files by @janmasrovira in https://github.com/anoma/juvix/pull/3266
  • Fix let-patterns inside named arguments by @lukaszcz in https://github.com/anoma/juvix/pull/3274
  • Optimize single-argument unknown function invocations with known non-function target types by @lukaszcz in https://github.com/anoma/juvix/pull/3270
  • Update stdlib reference to point to main by @lukaszcz in https://github.com/anoma/juvix/pull/3276
  • Recursive markdown generation by @janmasrovira in https://github.com/anoma/juvix/pull/3268
  • Upload Juvix binary from each CI run by @paulcadman in https://github.com/anoma/juvix/pull/3280
  • Update stdlib reference to point to main by @lukaszcz in https://github.com/anoma/juvix/pull/3281
  • Anoma protobuf version fix by @paulcadman in https://github.com/anoma/juvix/pull/3286
  • Improve error message for ambiguous export by @janmasrovira in https://github.com/anoma/juvix/pull/3289
  • Improve instance termination by @lukaszcz in https://github.com/anoma/juvix/pull/3288
  • Make meta-variables introduced by coercion resolution non-rigid by @lukaszcz in https://github.com/anoma/juvix/pull/3290
  • Fix prettyprinting of import statements by @janmasrovira in https://github.com/anoma/juvix/pull/3291
  • Treat holes as non-rigid meta-variables during instance search by @lukaszcz in https://github.com/anoma/juvix/pull/3293
  • Increase AnomaLib Layer Depth for v0.30 by @agureev in https://github.com/anoma/juvix/pull/3277
  • Remove mainFunctionWrapper in nock backend by @paulcadman in https://github.com/anoma/juvix/pull/3294
  • Allow local modules to be forward referenced by @janmasrovira in https://github.com/anoma/juvix/pull/3275
  • Add support for AnomaSet and AnomaSet{to, from}List by @paulcadman in https://github.com/anoma/juvix/pull/3296
  • Avoid double jamming prove arguments in Anoma CLI commands by @paulcadman in https://github.com/anoma/juvix/pull/3298
  • Make html links to top symbols stable by @janmasrovira in https://github.com/anoma/juvix/pull/3299
  • Pre-register all type axioms in internal to core by @janmasrovira in https://github.com/anoma/juvix/pull/3297
  • Fix recompilation message for when options change by @janmasrovira in https://github.com/anoma/juvix/pull/3304
  • Remove axioms info from Core InfoTable by @lukaszcz in https://github.com/anoma/juvix/pull/3307
  • Fix dependency graph creation in filterUnreachable by @lukaszcz in https://github.com/anoma/juvix/pull/3309
  • Support unjammed arguments by @janmasrovira in https://github.com/anoma/juvix/pull/3308
  • Improve Core parser error handling by @lukaszcz in https://github.com/anoma/juvix/pull/3300
  • Support ByteArray and List arguments to anoma prove CLI by @paulcadman in https://github.com/anoma/juvix/pull/3313
  • Allow named arguments for some anoma builtins by @janmasrovira in https://github.com/anoma/juvix/pull/3310
  • Fix bug in scoping for default arguments by @janmasrovira in https://github.com/anoma/juvix/pull/3318
  • Fix recompilation of package-base by @lukaszcz in https://github.com/anoma/juvix/pull/3314
  • Remove VampIR pipeline and commands by @lukaszcz in https://github.com/anoma/juvix/pull/3320
  • Remove unused Core transformations by @lukaszcz in https://github.com/anoma/juvix/pull/3321
  • Lock Rust version on the CI by @lukaszcz in https://github.com/anoma/juvix/pull/3325
  • Modular compilation in Core by @lukaszcz in https://github.com/anoma/juvix/pull/3315
  • Make pedantic option the default in the justfile by @janmasrovira in https://github.com/anoma/juvix/pull/3330
  • Fix main detection by @lukaszcz in https://github.com/anoma/juvix/pull/3335
  • Accept optional semicolon before pipe by @janmasrovira in https://github.com/anoma/juvix/pull/3334
  • Report error when named arguments are repeated by @janmasrovira in https://github.com/anoma/juvix/pull/3329
  • Fix markdown --folder-structure flag by @janmasrovira in https://github.com/anoma/juvix/pull/3332
  • Fix builtin anoma-random-next-bytes by @janmasrovira in https://github.com/anoma/juvix/pull/3322
  • Extend type modules by @janmasrovira in https://github.com/anoma/juvix/pull/3336
  • Update juvix-stdlib to main by @janmasrovira in https://github.com/anoma/juvix/pull/3311
  • Format exits with success unless --check given by @janmasrovira in https://github.com/anoma/juvix/pull/3338
  • Update RISC0 to 1.3.0 by @lukaszcz in https://github.com/anoma/juvix/pull/3341
  • Downgrade RISC0 to 1.2.4 by @lukaszcz in https://github.com/anoma/juvix/pull/3343
  • Modular compilation in JuvixTree by @lukaszcz in https://github.com/anoma/juvix/pull/3324
  • Qualified constructors by @janmasrovira in https://github.com/anoma/juvix/pull/3337
  • Trace the arg to OpFail before crashing in Nockma by @janmasrovira in https://github.com/anoma/juvix/pull/3345
  • Fix detection of mutual blocks for the positivity checker by @janmasrovira in https://github.com/anoma/juvix/pull/3349
  • Remember in stored compilation options if the module was the main file by @lukaszcz in https://github.com/anoma/juvix/pull/3350
  • Expose Cairo range check builtin by @lukaszcz in https://github.com/anoma/juvix/pull/3346
  • Fix syntax error format by @lukaszcz in https://github.com/anoma/juvix/pull/3353
  • Check package name conflicts by @janmasrovira in https://github.com/anoma/juvix/pull/3352
  • Verified compilation prototype: generation of Lean verification statements by @lukaszcz in https://github.com/anoma/juvix/pull/3344
  • Fix parseFailure in the parsers by @lukaszcz in https://github.com/anoma/juvix/pull/3355
  • Temporarily disable RISC0 in the CI by @lukaszcz in https://github.com/anoma/juvix/pull/3365
  • Add update-anomalib.sh script by @janmasrovira in https://github.com/anoma/juvix/pull/3369
  • SHA256 cache for import nodes by @lukaszcz in https://github.com/anoma/juvix/pull/3367
  • Accept TABs and CRs as whitespace by @lukaszcz in https://github.com/anoma/juvix/pull/3371
  • Don't compile the main file as a module by @lukaszcz in https://github.com/anoma/juvix/pull/3364
  • Lock RISC0 dependencies and re-enable RISC0 tests on the CI by @lukaszcz in https://github.com/anoma/juvix/pull/3373

Full Changelog: https://github.com/anoma/juvix/compare/v0.6.9...v0.6.10

v0.6.9 (2024-12-20)

Full Changelog

Merged pull requests:

v0.6.8 (2024-11-11)

Full Changelog

Merged pull requests:

v0.6.7 (2024-11-06)

Full Changelog

Merged pull requests:

v0.6.6 (2024-09-03)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.6.5 (2024-08-14)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.6.4 (2024-07-19)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.6.3 (2024-07-02)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.6.2 (2024-06-12)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.6.1 (2024-03-25)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.6.0 (2024-03-01)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.5.5 (2023-12-01)

Full Changelog

Implemented enhancements:

  • Add new case for positivity checker: type cannot occur as arg of bound var #2542 (jonaprieto)
  • Add dependent defaults for the new typechecker #2541 (janmasrovira)
  • Extract builtin definitions for loading a Package into bundled package-base package #2535 (paulcadman)
  • Update the Juvix lock file when the Package file changes #2522 (paulcadman)
  • Add non-dependent default values to the new typechecking algorithm #2516 (janmasrovira)

Merged pull requests:

v0.5.4 (2023-11-17)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.5.3 (2023-11-01)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.5.2 (2023-10-04)

Full Changelog

Implemented enhancements:

Merged pull requests:

0.5.1 (2023-09-15)

Full Changelog

Merged pull requests:

v0.5.0 (2023-09-14)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.4.3 (2023-08-24)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.4.2 (2023-07-25)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.4.1 (2023-06-23)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.4.0 - Prague! (2023-06-02)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.3.5 (2023-06-02)

Full Changelog

Implemented enhancements:

Merged pull requests:

v0.3.4 (2023-05-22)

Full Changelog

Implemented enhancements:

Merged pull requests:

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