Releases: anoma/juvix
Releases · anoma/juvix
v0.6.6
Implemented enhancements:
- Improve output of
juvix dev import-tree print
#2976 (janmasrovira) - Isabelle/HOL translation: comments #2974 (lukaszcz)
- Improve compilation progress log #2969 (janmasrovira)
- Isabelle/HOL translation: records and named patterns #2963 (lukaszcz)
- Translate Judoc comments to Isabelle/HOL #2958 (lukaszcz)
- Isabelle/HOL translation: the
isabelle-ignore
pragma #2955 (lukaszcz) - Add do notation #2937 (janmasrovira)
Merged pull requests:
- Add
IsInstanceCoercion
to Internal #2981 (janmasrovira) - Monad and Applicative traits in juvix stdlib #2979 (paulcadman)
- Add
PartialDo
effect #2978 (janmasrovira) - Improve performance of anomaEncode / anomaDecode in the Core evaluator #2975 (paulcadman)
- Don't fold lets with
fail
,trace
or>->
in the body #2973 (lukaszcz) - Fix JuvixTree type unification #2972 (lukaszcz)
- Isabelle/HOL translation: add 'O' and 'OO' to reserved names #2961 (lukaszcz)
- Add
anoma-bytearray-{to, from}-anoma-contents
builtins #2960 (paulcadman) - Fix bug where highlighting is not kept when the file has a type error and imports some other file #2959 (janmasrovira)
- Register builtins during scoping and report proper errors instead of crashing #2943 (janmasrovira)
v0.6.5
Implemented enhancements:
- Add
--statements
flag tojuvix dev latex export
#2946 (janmasrovira) - Improve specialization optimization #2944 (lukaszcz)
- Export Juvix source code to latex #2917 (janmasrovira)
- Allow instance field declarations #2916 (janmasrovira)
- Add ByteArray builtin and Byte literal #2865 (paulcadman)
Merged pull requests:
- Fix inference of let and letrec in core #2953 (janmasrovira)
- Isabelle/HOL name quoting #2951 (lukaszcz)
- Remove unicode from Isabelle/HOL output #2950 (lukaszcz)
- Use ByteArray for Anoma cryptographic builtins #2947 (paulcadman)
- Add more comments in the source code #2938 (lukaszcz)
- Update stdlib submodule reference to juvix-stdlib main #2936 (paulcadman)
- Do not try flatparse scanner for .md files #2934 (janmasrovira)
- Add builtin ByteArray type #2933 (paulcadman)
- Update juvix-stdlib to include Foldable and Functor traits #2932 (paulcadman)
- Improve css of html documentation and allow different themes #2931 (janmasrovira)
- Fix html rendering of fixities #2930 (janmasrovira)
- Fix scanning of names with
import
prefix #2929 (janmasrovira) - Fix name signature bug and extend test for instance fields #2928 (janmasrovira)
- Add FromNatural trait in
package-base
#2926 (paulcadman) - Fix #2924. Use MegaParsec scanner for Markdown files #2925 (jonaprieto)
- Put
Last modified
message inside footer tag #2922 (janmasrovira) - Improve css themes #2921 (janmasrovira)
- Do not show progress log for
juvix html
#2920 (janmasrovira) - Add support for unsigned 8-bit integer type Byte #2918 (paulcadman)
- Properly handle confluent imports #2915 (janmasrovira)
- Allow record fields to be iterators #2909 (janmasrovira)
- Logger #2908 (janmasrovira)
v0.6.4
Implemented enhancements:
- Puns for named application #2890 (janmasrovira)
juvix typecheck
with no file argument typechecks all project #2889 (janmasrovira)- Update juvix-stdlib submodule reference to add Result #2885 (paulcadman)
- Make
juvix format
line width 100 with ribbon width 100 #2883 (paulcadman) - Translate function bodies to Isabelle/HOL #2868 (lukaszcz)
- Add front-end support for case expressions boolean side conditions #2852 (janmasrovira)
Merged pull requests:
- Bugfix: compiler looping with the
specialize
pragma #2899 (lukaszcz) - Fix CI for RISC0 version 1.0.2 #2888 (lukaszcz)
- Add precondition to run tests #2887 (janmasrovira)
- Remove Geb backend #2886 (paulcadman)
- Print pipe for else branch in multi if expression #2881 (janmasrovira)
- Add
ExceptT
,MonadError
,MonadTrans
as a test #2880 (janmasrovira) - Migrate old named application syntax #2876 (janmasrovira)
- Pragmas for record fields #2875 (lukaszcz)
- Reduce Internal boilerplate #2874 (janmasrovira)
v0.6.3
Implemented enhancements:
- Improve performance of formatting a project #2863 (janmasrovira)
- Adapt Anoma builtins to new Anoma Node API #2861 (paulcadman)
- Support Anoma representation of Maybe #2856 (paulcadman)
- Add support for anoma specific functions to the Core evaluator #2851 (paulcadman)
- Inline immediate values #2842 (lukaszcz)
- Dead code elimination in JuvixReg #2835 (lukaszcz)
- Give proper colors to builtins #2834 (janmasrovira)
- Constant propagation in JuvixReg #2833 (lukaszcz)
- Copy propagation in JuvixReg #2828 (lukaszcz)
- Generalize import syntax #2819 (janmasrovira)
Merged pull requests:
- Merge
if
->ite
renaming from stdlib #2869 (janmasrovira) - Optimize
letFunctionDefs
inJuvix.Compiler.Internal.Data.InfoTable
#2867 (lukaszcz) - Refactor pipeline functions for tests #2864 (lukaszcz)
- Make
Maybe
a builtin inductive type #2860 (paulcadman) - Peephole optimization of Cairo assembly #2858 (lukaszcz)
- Update juvix-stdlib to remove non-ASCII indentifiers #2857 (paulcadman)
- Add an
if
instruction to JuvixReg #2855 (lukaszcz) - Cairo: untagged record representation #2853 (lukaszcz)
- Add lcomposition fixity to support (>>) in the stdlib #2847 (paulcadman)
- Remove copy propagation from the native/WASM and Rust pipelines #2846 (lukaszcz)
just format
uses ghc flags in juvix.cabal #2844 (janmasrovira)- Fix names in Core #2843 (lukaszcz)
- Fix Rust toolchain caching #2825 (lukaszcz)
- Cairo: Support complex data types in program input #2822 (lukaszcz)
- Add error message for ill-scoped variables #2566 (janmasrovira)
v0.6.2
v0.6.2 (2024-06-12)
Implemented enhancements:
- Rust runtime #2782 (lukaszcz)
- Optional braces in case syntax #2778 (lukaszcz)
- Support Anoma cryptographic primitives as Juvix builtin axioms #2767 (paulcadman)
- Support Anoma serialisation primitives as Juvix builtin axioms #2764 (paulcadman)
- Multiway
if
syntax #2770 (lukaszcz) - Add integer literals with bases #2746 (janmasrovira)
- Cairo Elliptic Curve builtin #2731 (lukaszcz)
- refactor
--target
into subcommands fordev tree compile
and other improvements #2713 (janmasrovira) - Make
compile
targets a subcommand instead of a flag #2700 (janmasrovira) - Translate Juvix types to Isabelle/HOL #2689 (lukaszcz)
- Parallelize the pipeline #2749 (janmasrovira)
Merged pull requests:
- Upgrade to ghc-9.8.2 #2794 (janmasrovira)
- Report proper location for normalized types in the WrongType error #2814 (janmasrovira)
- Disable macOS CI #2821 (lukaszcz)
- Add pedantic option to justfile #2816 (janmasrovira)
- Add GHC Identity to Juvix/Prelude #2815 (janmasrovira)
- Fixes crash when trying to normalize case expression #2811 (janmasrovira)
- Improve parallel template #2809 (janmasrovira)
- RISC0 Rust backend #2702 (lukaszcz)
- Juvix to Isabelle/HOL translation #2752 (lukaszcz)
- Fix generation of wildcards in RecordPattern #2802 (janmasrovira)
- Support Anoma stdlib sign-detached API #2798 (paulcadman)
- Use little endian encoding of ByteStrings in Anoma #2793 (paulcadman)
- Update stdlib to the main branch #2791 (lukaszcz)
- Add support for Strings in the Anoma backend #2789 (paulcadman)
- Support Anoma stdlib APIs
sign
andverify
#2788 (paulcadman) - Rust backend #2787 (lukaszcz)
- Update Anoma nock stdlib #2786 (paulcadman)
- Support Anoma stdlib API
verifyDetached
#2785 (paulcadman) - refactor: Add Anoma Node in Tree language #2784 (paulcadman)
- justfile: replace enableOptimized flag with disableOptimized #2783 (paulcadman)
- Effects for finite and infinite supplies #2780 (janmasrovira)
- Parallel pipeline #2779 (janmasrovira)
- Remove checking for module fragility #2777 (lukaszcz)
- Use multiway
if
in the standard library #2776 (lukaszcz) - Add support for anoma-decode builtin #2775 (paulcadman)
- Support type synonyms in instance types #2772 (lukaszcz)
- Bugfix: modules associated with inductive types should be declared after their inductive types #2768 (lukaszcz)
- Add support for anoma-encode builtin #2766 (paulcadman)
- Update Anoma nockma stdlib #2765 (paulcadman)
- justfile: use numParallelJobs in test flag #2762 (paulcadman)
- Deduplicate project remote dependencies #2761 (paulcadman)
- Check for unsupported builtins #2757 (lukaszcz)
- Fully respect _evalOptionsNoFailure in the Core evaluator #2756 (lukaszcz)
- Use aarch64 macOS agent for CI build #2754 (paulcadman)
- Support sharing ModuleInfoCache between pipeline runs #2753 (paulcadman)
- Import tree #2751 (janmasrovira)
- Remove unused
resourcet-effectful
dependency #2748 (janmasrovira) - Remove support for examples from judoc #2747 (paulcadman)
- Fix dev compile options documentation #2741 (paulcadman)
- Fix benchmark runtime variant #2740 (paulcadman)
- Style refactor #2739 (janmasrovira)
- remove redundant GitClone constraint #2738 (janmasrovira)
- Support
extract-module-statements
attribute in juvix code blocks #2734 (paulcadman) - Apply common options in
dev compile
subcommands #2732 (janmasrovira) - Use the justfile for CI builds #2730 (paulcadman)
- Support parallel module compilation in justfile #2729 (paulcadman)
--debug
implies-O0
as the default #2728 (janmasrovira)- Fix output file extension for
compile cairo
#2727 (janmasrovira) - Cairo Poseidon hash builtin support #2723 (lukaszcz)
- Support for Cairo builtins #2718 (lukaszcz)
- Fix benchmarks suite
juvix compile
variants #2717 (paulcadman) - Double substitute the Nockma functions placeholder in the main function #2715 (paulcadman)
- Miscellaneous improvements for Nockma debugging #2714 (paulcadman)
- Cairo field compatibility #2712 (lukaszcz)
- Use
prettyString
instead ofshow . pretty
#2711 (janmasrovira) - Cairo disassembler #2710 (lukaszcz)
- Support Cairo VM input hints #2709 (lukaszcz)
- Cache cairo-vm-cli in the CI build #2707 (paulcadman)
- Fix casm test failures due to concurrent calls to setCurrentDir #2706 ([paulcadman](https://github.com/paulcadma...
v0.6.1
v0.6.1 (2024-03-25)
Implemented enhancements:
- Support Nockma/Anoma scry operation #2672 (paulcadman)
- JuvixReg to CASM translation #2671 (lukaszcz)
Merged pull requests:
- Rename
Dynamic'
toDynamicTy'
#2696 (janmasrovira) - Rename
Const
constructor in Tree and Reg languages #2695 (janmasrovira) - Promote use of
MonadIO
to minimizeembed
occurrences #2694 (janmasrovira) - Support compilation of Anoma transactions in nockma backend #2693 (paulcadman)
- Add flags for the markdown and html backend:
--strip-prefix
and--ext
. #2681 (jonaprieto) - Support nockma scry #2678 (paulcadman)
- JuvixReg to CASM translation #2671 (lukaszcz)
- Replace
polysemy
byeffectful
#2663 (janmasrovira)
v0.6.0
v0.6.0 (2024-03-01)
Implemented enhancements:
- Translation from JuvixTree to Nockma #2606 (paulcadman)
- Add field element type #2659 (lukaszcz)
- Support compilation to Anoma compatible functions #2652 (paulcadman)
- Effectful Juvix tree evaluator #2623 (janmasrovira)
- JuvixTree REPL #2608 (lukaszcz)
- Filter out unreachable functions in JuvixTree #2597 (lukaszcz)
- JuvixTree "apply" transformation #2595 (lukaszcz)
- JuvixTree recursors and transformation framework #2594 (lukaszcz)
- JuvixTree evaluator #2589 (lukaszcz)
- Nock serialization #2558 (janmasrovira)
- Nock language and evaluator #2557 (paulcadman)
- Per-module compilation #2468 (lukaszcz)
Merged pull requests:
- Update juvix-stdlib submodule reference to main #2675 (paulcadman)
- Use the target of aliases when resolving name signatures and iterators #2669 (paulcadman)
- Fix caseCmd for RepConstr #2666 (janmasrovira)
- Create separate
polysemy
andeffectful
based prelude #2662 (janmasrovira) - Move noFile to common code #2661 (paulcadman)
- Correctly resolve the visibility annotations of NameSpaceEntries #2657 (paulcadman)
- Transitively register local modules in ScoperState #2655 (paulcadman)
- Generalize backend builtin primitive operations #2653 (lukaszcz)
- JuvixReg transformation: initialize variables assigned in other branches #2650 (lukaszcz)
- Refactor
readFile
and some parsers to usePath
instead ofFilePath
#2649 (janmasrovira) - JuvixReg cleanup transformation #2647 (lukaszcz)
- Transform JuvixReg into SSA form #2646 (lukaszcz)
- Use
EmbedIO
instead ofEmbed IO
#2645 (janmasrovira) - Remove redundant
Embed
effect in the scoper #2644 (janmasrovira) - Style improvements #2642 (lukaszcz)
- JuvixReg recursors #2641 (lukaszcz)
- Effect benchmarks #2640 (janmasrovira)
- Update REPL artifacts with builtins from stored modules #2639 (paulcadman)
- Remove redundant
embed @IO
#2637 (janmasrovira) - JuvixReg interpreter #2635 (lukaszcz)
- Fix linux static binary build workflow #2634 (paulcadman)
- Fix bugs in the Nockma prettyprinter and parser #2632 (janmasrovira)
- Parse nockma
atomVoid
#2631 (janmasrovira) - Add nockma as a valid target for the tree compile command #2630 (janmasrovira)
- Use pow2 function from Anoma/Nock stdlib #2629 (paulcadman)
- Add jvt files to
extra-source-files
#2628 (paulcadman) - Add
-XBangPatterns
to the justfile #2627 (janmasrovira) - Remove BangPattern pragmas #2626 (janmasrovira)
- Effectful
Output
#2625 (janmasrovira) - upgrade to Ghc 9.8.1 #2624 (janmasrovira)
- Use images from Quay #2620 (benz0li)
- Replace
egrep
withgrep -E
#2618 (janmasrovira) - JuvixReg parser and pretty printer #2617 (lukaszcz)
- JuvixTree validation #2616 (lukaszcz)
- Add a justfile to perform project install, test, clean, format tasks #2615 (paulcadman)
- Translation from
Juvix Tree
toNockma
#2614 (janmasrovira) - Store syntax aliases in serialized scoper infotable #2605 (paulcadman)
- Use
writeFileEnsureLn
in place ofwriteFile
#2604 (janmasrovira) - Remove redundant
QuasiQuotes
pragmas #2603 (janmasrovira) - Fix generation and evaluation of Nock isCell op #2602 (paulcadman)
- JuvixTree negative evaluation tests #2601 (lukaszcz)
- Location info in JuvixTree nodes #2600 (lukaszcz)
- Options for
juvix dev tree read
#2599 (lukaszcz) - JuvixTree smoke tests #2598 (lukaszcz)
- Compute temporary stack height in JuvixTree #2596 (lukaszcz)
- Add
dev nockma format
command #2593 (janmasrovira) - Use Anoma compatible Nockma serialization of Bools and List-like data structures #2591 (paulcadman)
- Add the
juvix dev tree compile
command #2590 (lukaszcz) - JuvixTree tests #2587 (lukaszcz)
- Support
MemRepTuple
in the Nockma backend #2586 (janmasrovira) - Improved errors for nockma eval #2585 (janmasrovira)
- Unqualify language import in nockma parser #2584 (janmasrovira)
- JuvixTree parser and pretty printer #2583 (lukaszcz)
- Nockma compile refactor #2582 (paulcadman)
- Factor the JuvixCore -> JuvixAsm translation into JuvixCore -> JuvixTree -> JuvixAsm #2581 (lukaszcz)
- Fast nockma eval #2580 (janmasrovira)
- Merge stack and temporary variable groups in JuvixReg #2579 (lukaszcz)
- Filter out unreachable functions in JuvixAsm #2575 (lukaszcz)
- Require semicolon to separate case/if branches in JuvixAsm syntax [#2574](https://github.c...
v0.5.5
v0.5.5 (2023-12-01)
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:
- Update to the latest juvix-stdlib #2546 (paulcadman)
- Remove old typechecker #2545 (janmasrovira)
- Fix codeblocks indentation in Markdown output #2539 (jonaprieto)
- runtime Makefile: Do not resolve variables when writing a dependency file #2538 (paulcadman)
- Fix location for aliases #2536 (jonaprieto)
- Add Makefile to hyperfine benchmarks #2533 (jonaprieto)
- Negative tests for
--new-typechecker
#2532 (janmasrovira) - Fix the global 'package' package so that modules within it can be type-checked independently #2526 (paulcadman)
- Improve inference for
--new-typechecker
#2524 (janmasrovira)
v0.5.4
Implemented enhancements:
- Add MarkdownInfo entry in Module Concrete Decl and proper errors #2515 (jonaprieto)
- Fix check for module name for Orphan Juvix files and imports of Juvix Markdown files #2512 (jonaprieto)
- General inductive parameters #2506 (janmasrovira)
- Named arguments syntax with function definitions #2494 (lukaszcz)
- Update juvix init to generate Package.juvix instead of juvix.yaml #2483 (paulcadman)
- Interleave arity and typechecking #2481 (janmasrovira)
- Literal casting #2457 (lukaszcz)
Merged pull requests:
- Fix Bank Example #2514 (jonaprieto)
- Refactor markdown parsing #2513 (janmasrovira)
- Add PackageDescription.Basic module Package variant #2509 (paulcadman)
- Run test suite in parallel #2507 (paulcadman)
- test: Run juvix format on juvix packages rather than files #2505 (paulcadman)
- Fix
clone
insubsHoles
#2504 (lukaszcz) - Migrate all Juvix projects from juvix.yaml to Package.juvix in the repository #2503 (paulcadman)
- Update file walker to use Package.juvix to detect a Juvix package #2502 (paulcadman)
- Refresh bound variable ids when substituting in Internal #2501 (lukaszcz)
- Add -n/--non-interactive option to juvix init #2500 (paulcadman)
- Use Package.juvix in the global project #2499 (paulcadman)
- Normalise paths on ResolverCache set and lookup #2498 (paulcadman)
- Fix Empty Lines at the Beginning of a File with No module decl Prevent Parsing #2496 (jonaprieto)
- Fix remove unexpected whitespaces introduced by formatting #2489 (jonaprieto)
- Add support for Literate Juvix Markdown #2448 (jonaprieto)
v0.5.3
Implemented enhancements:
- Arithmetic simplification #2454 (lukaszcz)
- Constant folding #2450 (lukaszcz)
- Proposal: Use a Juvix source file to define a package instead of YAML #2336 (paulcadman)
- Dependent default values #2446 (janmasrovira)
- Instance coercions #2444 (lukaszcz)
- Comparison optimization #2443 (lukaszcz)
- Allow
syntax operator
in the rhs of a record declaration #2442 (janmasrovira) - Add constructor wildcards #2437 (janmasrovira)
- Add default arguments #2408 (janmasrovira)
Merged pull requests:
- Cache .hie directory in CI #2490 (paulcadman)
- Fix #2479 #2486 (jonaprieto)
- Update Lisp File Printer #2484 (agureev)
- Rename Roots type to Root #2480 (paulcadman)
- Version the PackageDescription module #2478 (paulcadman)
- Format long list literals by splitting using pre-comma multiline #2477 (paulcadman)
- Use a versioned documentation link in the doctor output #2475 (paulcadman)
- Add missing juvix.yaml files to test project roots #2474 (paulcadman)
- Use system locale independent readFile and writeFile APIs from with-utf8 #2473 (paulcadman)
- Fix precedence inconsistency bug #2470 (lukaszcz)
- Add FileExt type #2467 (jonaprieto)
- Update clang formatting #2465 (jonaprieto)
- Add dependency on expressions in function default arguments #2462 (paulcadman)
- Use JuvixError instead of Text for errors in Package file loading #2459 (paulcadman)
- Refactor EntryPoint, Package, Pipeline, Root packages #2458 (paulcadman)
- Show import with public keyword in the html doc #2456 (janmasrovira)
- Process $root/Package.juvix using a special PathResolver #2451 (paulcadman)
- Add new flags to the Html backend #2447 (jonaprieto)
- Case value inlining #2441 (lukaszcz)
- Fix instance axiom bug #2439 (lukaszcz)
- Update Geb backend #2436 (agureev)
- Ignore instance arguments in the termination checker #2435 (janmasrovira)
- Use a Juvix source file to define a package #2434 (paulcadman)
- Numeric, ordering and equality traits #2433 (lukaszcz)
- Synchronize stdlib submodule #2428 (paulcadman)
- Improve the specialisation optimisation #2417 (lukaszcz)
- Fix formatting for all Juvix files in tests folder #2404 (jonaprieto)