diff --git a/CHANGELOG.md b/CHANGELOG.md index e291c847be..eb88c0bf83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,98 @@ Juvix Mascot +## [v0.6.0](https://github.com/anoma/juvix/tree/v0.6.0) (2024-03-01) + +[Full Changelog](https://github.com/anoma/juvix/compare/v0.5.5...v0.6.0) + +**Implemented enhancements:** + +- Translation from JuvixTree to Nockma [\#2606](https://github.com/anoma/juvix/issues/2606) ([paulcadman](https://github.com/paulcadman)) +- Add field element type [\#2659](https://github.com/anoma/juvix/pull/2659) ([lukaszcz](https://github.com/lukaszcz)) +- Support compilation to Anoma compatible functions [\#2652](https://github.com/anoma/juvix/pull/2652) ([paulcadman](https://github.com/paulcadman)) +- Effectful Juvix tree evaluator [\#2623](https://github.com/anoma/juvix/pull/2623) ([janmasrovira](https://github.com/janmasrovira)) +- JuvixTree REPL [\#2608](https://github.com/anoma/juvix/pull/2608) ([lukaszcz](https://github.com/lukaszcz)) +- Filter out unreachable functions in JuvixTree [\#2597](https://github.com/anoma/juvix/pull/2597) ([lukaszcz](https://github.com/lukaszcz)) +- JuvixTree "apply" transformation [\#2595](https://github.com/anoma/juvix/pull/2595) ([lukaszcz](https://github.com/lukaszcz)) +- JuvixTree recursors and transformation framework [\#2594](https://github.com/anoma/juvix/pull/2594) ([lukaszcz](https://github.com/lukaszcz)) +- JuvixTree evaluator [\#2589](https://github.com/anoma/juvix/pull/2589) ([lukaszcz](https://github.com/lukaszcz)) +- Nock serialization [\#2558](https://github.com/anoma/juvix/issues/2558) ([janmasrovira](https://github.com/janmasrovira)) +- Nock language and evaluator [\#2557](https://github.com/anoma/juvix/pull/2557) ([paulcadman](https://github.com/paulcadman)) +- Per-module compilation [\#2468](https://github.com/anoma/juvix/pull/2468) ([lukaszcz](https://github.com/lukaszcz)) + +**Merged pull requests:** + +- Update juvix-stdlib submodule reference to main [\#2675](https://github.com/anoma/juvix/pull/2675) ([paulcadman](https://github.com/paulcadman)) +- Use the target of aliases when resolving name signatures and iterators [\#2669](https://github.com/anoma/juvix/pull/2669) ([paulcadman](https://github.com/paulcadman)) +- Fix caseCmd for RepConstr [\#2666](https://github.com/anoma/juvix/pull/2666) ([janmasrovira](https://github.com/janmasrovira)) +- Create separate `polysemy` and `effectful` based prelude [\#2662](https://github.com/anoma/juvix/pull/2662) ([janmasrovira](https://github.com/janmasrovira)) +- Move noFile to common code [\#2661](https://github.com/anoma/juvix/pull/2661) ([paulcadman](https://github.com/paulcadman)) +- Correctly resolve the visibility annotations of NameSpaceEntries [\#2657](https://github.com/anoma/juvix/pull/2657) ([paulcadman](https://github.com/paulcadman)) +- Transitively register local modules in ScoperState [\#2655](https://github.com/anoma/juvix/pull/2655) ([paulcadman](https://github.com/paulcadman)) +- Generalize backend builtin primitive operations [\#2653](https://github.com/anoma/juvix/pull/2653) ([lukaszcz](https://github.com/lukaszcz)) +- JuvixReg transformation: initialize variables assigned in other branches [\#2650](https://github.com/anoma/juvix/pull/2650) ([lukaszcz](https://github.com/lukaszcz)) +- Refactor `readFile` and some parsers to use `Path` instead of `FilePath` [\#2649](https://github.com/anoma/juvix/pull/2649) ([janmasrovira](https://github.com/janmasrovira)) +- JuvixReg cleanup transformation [\#2647](https://github.com/anoma/juvix/pull/2647) ([lukaszcz](https://github.com/lukaszcz)) +- Transform JuvixReg into SSA form [\#2646](https://github.com/anoma/juvix/pull/2646) ([lukaszcz](https://github.com/lukaszcz)) +- Use `EmbedIO` instead of `Embed IO` [\#2645](https://github.com/anoma/juvix/pull/2645) ([janmasrovira](https://github.com/janmasrovira)) +- Remove redundant `Embed` effect in the scoper [\#2644](https://github.com/anoma/juvix/pull/2644) ([janmasrovira](https://github.com/janmasrovira)) +- Style improvements [\#2642](https://github.com/anoma/juvix/pull/2642) ([lukaszcz](https://github.com/lukaszcz)) +- JuvixReg recursors [\#2641](https://github.com/anoma/juvix/pull/2641) ([lukaszcz](https://github.com/lukaszcz)) +- Effect benchmarks [\#2640](https://github.com/anoma/juvix/pull/2640) ([janmasrovira](https://github.com/janmasrovira)) +- Update REPL artifacts with builtins from stored modules [\#2639](https://github.com/anoma/juvix/pull/2639) ([paulcadman](https://github.com/paulcadman)) +- Remove redundant `embed @IO` [\#2637](https://github.com/anoma/juvix/pull/2637) ([janmasrovira](https://github.com/janmasrovira)) +- JuvixReg interpreter [\#2635](https://github.com/anoma/juvix/pull/2635) ([lukaszcz](https://github.com/lukaszcz)) +- Fix linux static binary build workflow [\#2634](https://github.com/anoma/juvix/pull/2634) ([paulcadman](https://github.com/paulcadman)) +- Fix bugs in the Nockma prettyprinter and parser [\#2632](https://github.com/anoma/juvix/pull/2632) ([janmasrovira](https://github.com/janmasrovira)) +- Parse nockma `atomVoid` [\#2631](https://github.com/anoma/juvix/pull/2631) ([janmasrovira](https://github.com/janmasrovira)) +- Add nockma as a valid target for the tree compile command [\#2630](https://github.com/anoma/juvix/pull/2630) ([janmasrovira](https://github.com/janmasrovira)) +- Use pow2 function from Anoma/Nock stdlib [\#2629](https://github.com/anoma/juvix/pull/2629) ([paulcadman](https://github.com/paulcadman)) +- Add jvt files to `extra-source-files` [\#2628](https://github.com/anoma/juvix/pull/2628) ([paulcadman](https://github.com/paulcadman)) +- Add `-XBangPatterns` to the justfile [\#2627](https://github.com/anoma/juvix/pull/2627) ([janmasrovira](https://github.com/janmasrovira)) +- Remove BangPattern pragmas [\#2626](https://github.com/anoma/juvix/pull/2626) ([janmasrovira](https://github.com/janmasrovira)) +- Effectful `Output` [\#2625](https://github.com/anoma/juvix/pull/2625) ([janmasrovira](https://github.com/janmasrovira)) +- upgrade to Ghc 9.8.1 [\#2624](https://github.com/anoma/juvix/pull/2624) ([janmasrovira](https://github.com/janmasrovira)) +- Use images from Quay [\#2620](https://github.com/anoma/juvix/pull/2620) ([benz0li](https://github.com/benz0li)) +- Replace `egrep` with `grep -E` [\#2618](https://github.com/anoma/juvix/pull/2618) ([janmasrovira](https://github.com/janmasrovira)) +- JuvixReg parser and pretty printer [\#2617](https://github.com/anoma/juvix/pull/2617) ([lukaszcz](https://github.com/lukaszcz)) +- JuvixTree validation [\#2616](https://github.com/anoma/juvix/pull/2616) ([lukaszcz](https://github.com/lukaszcz)) +- Add a justfile to perform project install, test, clean, format tasks [\#2615](https://github.com/anoma/juvix/pull/2615) ([paulcadman](https://github.com/paulcadman)) +- Translation from `Juvix Tree` to `Nockma` [\#2614](https://github.com/anoma/juvix/pull/2614) ([janmasrovira](https://github.com/janmasrovira)) +- Store syntax aliases in serialized scoper infotable [\#2605](https://github.com/anoma/juvix/pull/2605) ([paulcadman](https://github.com/paulcadman)) +- Use `writeFileEnsureLn` in place of `writeFile` [\#2604](https://github.com/anoma/juvix/pull/2604) ([janmasrovira](https://github.com/janmasrovira)) +- Remove redundant `QuasiQuotes` pragmas [\#2603](https://github.com/anoma/juvix/pull/2603) ([janmasrovira](https://github.com/janmasrovira)) +- Fix generation and evaluation of Nock isCell op [\#2602](https://github.com/anoma/juvix/pull/2602) ([paulcadman](https://github.com/paulcadman)) +- JuvixTree negative evaluation tests [\#2601](https://github.com/anoma/juvix/pull/2601) ([lukaszcz](https://github.com/lukaszcz)) +- Location info in JuvixTree nodes [\#2600](https://github.com/anoma/juvix/pull/2600) ([lukaszcz](https://github.com/lukaszcz)) +- Options for `juvix dev tree read` [\#2599](https://github.com/anoma/juvix/pull/2599) ([lukaszcz](https://github.com/lukaszcz)) +- JuvixTree smoke tests [\#2598](https://github.com/anoma/juvix/pull/2598) ([lukaszcz](https://github.com/lukaszcz)) +- Compute temporary stack height in JuvixTree [\#2596](https://github.com/anoma/juvix/pull/2596) ([lukaszcz](https://github.com/lukaszcz)) +- Add `dev nockma format` command [\#2593](https://github.com/anoma/juvix/pull/2593) ([janmasrovira](https://github.com/janmasrovira)) +- Use Anoma compatible Nockma serialization of Bools and List-like data structures [\#2591](https://github.com/anoma/juvix/pull/2591) ([paulcadman](https://github.com/paulcadman)) +- Add the `juvix dev tree compile` command [\#2590](https://github.com/anoma/juvix/pull/2590) ([lukaszcz](https://github.com/lukaszcz)) +- JuvixTree tests [\#2587](https://github.com/anoma/juvix/pull/2587) ([lukaszcz](https://github.com/lukaszcz)) +- Support `MemRepTuple` in the Nockma backend [\#2586](https://github.com/anoma/juvix/pull/2586) ([janmasrovira](https://github.com/janmasrovira)) +- Improved errors for nockma eval [\#2585](https://github.com/anoma/juvix/pull/2585) ([janmasrovira](https://github.com/janmasrovira)) +- Unqualify language import in nockma parser [\#2584](https://github.com/anoma/juvix/pull/2584) ([janmasrovira](https://github.com/janmasrovira)) +- JuvixTree parser and pretty printer [\#2583](https://github.com/anoma/juvix/pull/2583) ([lukaszcz](https://github.com/lukaszcz)) +- Nockma compile refactor [\#2582](https://github.com/anoma/juvix/pull/2582) ([paulcadman](https://github.com/paulcadman)) +- Factor the JuvixCore -\> JuvixAsm translation into JuvixCore -\> JuvixTree -\> JuvixAsm [\#2581](https://github.com/anoma/juvix/pull/2581) ([lukaszcz](https://github.com/lukaszcz)) +- Fast nockma eval [\#2580](https://github.com/anoma/juvix/pull/2580) ([janmasrovira](https://github.com/janmasrovira)) +- Merge stack and temporary variable groups in JuvixReg [\#2579](https://github.com/anoma/juvix/pull/2579) ([lukaszcz](https://github.com/lukaszcz)) +- Filter out unreachable functions in JuvixAsm [\#2575](https://github.com/anoma/juvix/pull/2575) ([lukaszcz](https://github.com/lukaszcz)) +- Require semicolon to separate case/if branches in JuvixAsm syntax [\#2574](https://github.com/anoma/juvix/pull/2574) ([lukaszcz](https://github.com/lukaszcz)) +- Fix typos [\#2573](https://github.com/anoma/juvix/pull/2573) ([rex4539](https://github.com/rex4539)) +- Cairo ASM language and interpreter [\#2572](https://github.com/anoma/juvix/pull/2572) ([lukaszcz](https://github.com/lukaszcz)) +- Nockma compile [\#2570](https://github.com/anoma/juvix/pull/2570) ([janmasrovira](https://github.com/janmasrovira)) +- Remove old typechecker module [\#2565](https://github.com/anoma/juvix/pull/2565) ([janmasrovira](https://github.com/janmasrovira)) +- Add nockma evaluator [\#2564](https://github.com/anoma/juvix/pull/2564) ([paulcadman](https://github.com/paulcadman)) +- Implement the dynamic dispatch loop in JuvixAsm [\#2556](https://github.com/anoma/juvix/pull/2556) ([lukaszcz](https://github.com/lukaszcz)) +- Structured temporary stack manipulation in JuvixAsm [\#2554](https://github.com/anoma/juvix/pull/2554) ([lukaszcz](https://github.com/lukaszcz)) +- Fix benchmarks test compilation [\#2552](https://github.com/anoma/juvix/pull/2552) ([paulcadman](https://github.com/paulcadman)) +- Improve formatting of function definition arguments [\#2551](https://github.com/anoma/juvix/pull/2551) ([janmasrovira](https://github.com/janmasrovira)) +- Implement wildcard constructor [\#2550](https://github.com/anoma/juvix/pull/2550) ([janmasrovira](https://github.com/janmasrovira)) +- Read `Package` on demand and cache it [\#2548](https://github.com/anoma/juvix/pull/2548) ([janmasrovira](https://github.com/janmasrovira)) + ## [v0.5.5](https://github.com/anoma/juvix/tree/v0.5.5) (2023-12-01) [Full Changelog](https://github.com/anoma/juvix/compare/v0.5.4...v0.5.5) diff --git a/bench/hyperfine/Makefile b/bench/hyperfine/Makefile index f192a230fa..fd55b9ea1a 100644 --- a/bench/hyperfine/Makefile +++ b/bench/hyperfine/Makefile @@ -6,7 +6,7 @@ HYPERFINEFLAGS?=--warmup ${WARMUP} \ --runs ${RUNS} # Don't forget to add the comma at the end of the dev version -JUVIXVERSIONS?=-v0.4.3,-v0.5.0,-v0.5.1,-v0.5.2,-v0.5.3,-v0.5.4,-v0.5.5, +JUVIXVERSIONS?=-v0.4.3,-v0.5.0,-v0.5.1,-v0.5.2,-v0.5.3,-v0.5.4,-v0.5.5,-v0.6.0 TASKS?="dev root" \ "dev parse" \ "dev highlight" \ diff --git a/package.yaml b/package.yaml index d2402bf6f5..45e0365ad3 100644 --- a/package.yaml +++ b/package.yaml @@ -1,5 +1,5 @@ name: juvix -version: 0.5.5 +version: 0.6.0 license: GPL-3.0-only license-file: LICENSE.md copyright: (c) 2022- Heliax AG. diff --git a/tests/smoke/Commands/version-help-doctor.smoke.yaml b/tests/smoke/Commands/version-help-doctor.smoke.yaml index 2d724cd658..b7cdca3178 100644 --- a/tests/smoke/Commands/version-help-doctor.smoke.yaml +++ b/tests/smoke/Commands/version-help-doctor.smoke.yaml @@ -7,7 +7,7 @@ tests: stdout: matches: regex: |- - ^Juvix version 0.5.5-([a-f0-9]{7}).* + ^Juvix version 0.6.0-([a-f0-9]{7}).* - name: cli-numeric-version command: