Releases: aiken-lang/aiken
Releases · aiken-lang/aiken
v1.1.11 - 2025-02-11
Release Notes
Added
-
aiken: New aiken bench
command to run benchmarks. @Riley-Kilgore, @KtorZ
The command is very similar to aiken check
, and will collect and run benchmarks found across the codebase. The output by default is a set of pretty terminal plots for each dimension (mem & cpu) for each test bench. The complete dataset of points can be obtained in a structured (JSON) format by redirecting the output to a file.
-
aiken-lang: New bench
keyword and capabilities to the test framework. @Riley-Kilgore, @KtorZ
A bench
is a new type of test that takes in a single Sampler<a> = fn(Int) -> Fuzzer<a>
as parameter, similar to how property-based test receive Fuzzer<a>
. A Sampler
is in fact, a scaled Fuzzer which receive a monotically increasing size as parameter. This allows fine-grained control over generated values. Unlike tests, benchmarks can return anything since their output is ignored.
Read more about benchmarks in the user manual.
Changed
- aiken-lang: The compiler now raises a warning when attempting to destructure a record constructor without using named fields. See #1084. @KtorZ
- aiken-lang: Fix blueprint schema definitions related to pairs (no longer omit (sometimes) Pairs definitions, and generate them as data List). See #1086 and #970. @KtorZ
- aiken-project: Improve feedback returned when matching tests or modules. See #1092. @KtorZ
- aiken-project: Disambiguate type-alias blueprint definition using module's name. See #1074. @KtorZ
Install aiken 1.1.11
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aiken-lang/aiken/releases/download/v1.1.11/aiken-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/aiken-lang/aiken/releases/download/v1.1.11/aiken-installer.ps1 | iex"
Install prebuilt binaries into your npm project
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.11
v1.1.10 - 2025-01-21
Release Notes
Added
- aiken-project:
export
output now supports the functions return_type
. @rvcas
- aiken-lang:
write_bits
can now be used from aiken/builtins. @MicroProofs
Changed
- aiken-project: The
aiken.toml
file no longer supports v1
and v2
for the plutus version field. @rvcas
- aiken-project:
Error::TomlLoading
now looks much better - see. @rvcas
- aiken-lang: 10-20% optimization improvements via case-constr, rearranging function definitions (while maintaining dependency ordering),
and allowing inlining in if_then_else_error cases which preserve the same error semantics for a program. @MicroProofs
Fixed
- aiken: panic error when using
aiken uplc decode
on cbor encoded flat bytes. @rvcas
- aiken-lang: comment formatting in pipelines leading to confusion. @rvcas
- aiken-lang: preserve holes discard name in function captures (see #1080). @KtorZ
- uplc: Added deserialization match for the new builtin indices.
Install aiken 1.1.10
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aiken-lang/aiken/releases/download/v1.1.10/aiken-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/aiken-lang/aiken/releases/download/v1.1.10/aiken-installer.ps1 | iex"
Install prebuilt binaries into your npm project
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.10
v1.1.9 - 2024-12-13
Release notes
Added
- aiken: Generate a default 'placeholder.ak' validator when using
aiken new
. See #1061 @waalge
- aiken-lang: New builtins
unconstr_fields
and unconstr_index
. @MicroProofs
- aiken-lang: Added builtins from Chang2 hardfork (except for writeBits). @MicroProofs, @KtorZ
- aiken-projects: The generated documentation may now include maths typesetting rendered using KaTex. See #1070 @adrian052.
-
(Linux & MacOS only) Both inline (delimited by single $
symbols) and blocks (delimited by doubled $$
symbols) are now parsed and rendered as SVG upon generating documentation. For example:
$$
g^{z} = g^{r +c \cdot x} = g^{r} g^{x \cdot c} = g^{r} (g^{x})^{c} = g^{r} u^{c}
$$
will display:
$$
g^{z} = g^{r + c \cdot x} = g^{r} g^{x \cdot c} = g^{r} (g^{x})^{c} = g^{r} u^{c}
$$
- uplc: New builtins from Chang2 hardfork added to the VM along with costing. @hadelive, @MicroProofs
Changed
- aiken: Fix
aiken blueprint policy
computing hashes as PlutusV1, instead of relying on the plutus version from the Blueprint. @KtorZ
- uplc: Parse tild in identifiers for UPLC nodes. @SupernaviX
- examples: Update "Hello, World!" source code tutorial to match website, now using MeshJS. @jinglescode
- examples: Update "Gift Card" source code tutorial to match website, now using Lucid-Evolution and Weld. @rvcas
- aiken-lang: Fixed a code gen crash when using records in when is expressions. @MicroProofs
Install aiken 1.1.9
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aiken-lang/aiken/releases/download/v1.1.9/aiken-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/aiken-lang/aiken/releases/download/v1.1.9/aiken-installer.ps1 | iex"
Install prebuilt binaries into your npm project
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.9
v1.1.7 - 2024-11-19
Release Notes
Changed
- aiken: Move JSON schema help for
check
under a new dedicated flag --show-json-schema
. @KtorZ
- aiken-lang: Fix pattern-matching on list wildcard sometimes causing compiler crash following the new decision trees approach. @MicroProofs
- uplc, aiken, aiken-lang: Update internal dependencies to pallas-0.31.0. @KtorZ
Install aiken 1.1.7
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aiken-lang/aiken/releases/download/v1.1.7/aiken-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/aiken-lang/aiken/releases/download/v1.1.7/aiken-installer.ps1 | iex"
Install prebuilt binaries into your npm project
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.7
v1.1.6 - 2024-11-13
Release Notes
Added
- aiken: Optionally provide blueprint file location when using
blueprint apply
. @Riley-Kilgore
- aiken: Output test results as structured JSON when the target output is not a TTY terminal. @Riley-Kilgore, @KtorZ
Changed
- aiken: Fix validator selection for
apply
, address
and policy
commands. Parameters are also now correctly applied to all handlers of a given validator, instead of needing to be manually targetted one-by-one. @KtorZ
- aiken: Add more flexibility around the management of Plutus blueprint files for
build
, address
, policy
and apply
commands. See #1055. @KtorZ
- aiken: Rename
--filter_traces
to --trace_filter
for more consistency with --trace_level
. An alias for --filter_traces
still exists for backward compatibility. @KtorZ
- aiken-project: Fix
aiken docs
wrongly formatting list constants as tuples. See #1048. @KtorZ
- aiken-project: Fix
aiken docs
source linking crashing when generating docs for config modules. See #1044. @KtorZ
- aiken-project: Fix
aiken docs
generating very long lines for constants. @KtorZ
- aiken-lang: Leverage Decision Trees for compiling pattern matches to UPLC. @MicroProofs
- aiken-lang: Rework optimization passes to safely reduce different kinds of patterns for each pass over the uplc. @MicroProofs
- aiken-lang: Implement a looping mechanism to reduce uplc with deletion optimizations until term count remains the same. @MicroProofs
Removed
Install aiken 1.1.6
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aiken-lang/aiken/releases/download/v1.1.6/aiken-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/aiken-lang/aiken/releases/download/v1.1.6/aiken-installer.ps1 | iex"
Install prebuilt binaries into your npm project
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.6
v1.1.5 - 2024-10-19
Release Notes
Added
Changed
- uplc: Fix costing of byteStringToInteger builtins. @MicroProofs
- aiken-lang: Fix data-type reification from
Void
; somehow missing from known definition 🤦. @KtorZ
Removed
Install aiken 1.1.5
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aiken-lang/aiken/releases/download/v1.1.5/aiken-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/aiken-lang/aiken/releases/download/v1.1.5/aiken-installer.ps1 | iex"
Install prebuilt binaries into your npm project
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.5
v1.1.4 -2024-10-01
Release Notes
Added
Changed
- aiken-project: Generate empty redeemer for
else
handler, to keep full compliance with the blueprint spec. @KtorZ
- aiken-lang: Forbid constants evaluating to generic or unbound functions. Same restrictions as for validators or any exported UPLC programs apply here. @KtorZ & @MicroProofs
- aiken-lang: Fix compiler crash on trace + expect as last expression of a clause. See #1029. @KtorZ
- aiken-lang: Fix redundant warning on introduced identifiers when destructuring validator params. @KtorZ
- aiken-lsp: Compile project using verbose tracing, to avoid having the language server complain about unused imports. @KtorZ
- uplc: Fix (again 😬) cost-models for PlutusV1 & PlutusV2. @MicroProofs
Removed
Install aiken 1.1.4
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aiken-lang/aiken/releases/download/v1.1.4/aiken-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/aiken-lang/aiken/releases/download/v1.1.4/aiken-installer.ps1 | iex"
Install prebuilt binaries into your npm project
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.4
v1.1.3 - 2024-09-20
Release Notes
Added
Changed
- aiken-project: Fix documentation link-tree generation messing up with modules when re-inserting the same module. @KtorZ
- aiken-project: Provide intermediate feedback when looking for counterexamples during property tests. @KtorZ
- aiken-lang: Fix formatter adding extra unnecessary newlines after literal lists clause values or assignments. @KtorZ
- aiken-lang: Fix formatting of long multi-line if/is expressions. @KtorZ
- aiken-lang: Fix extraneous white-space added by the formatter after multiline alternative patterns. @KtorZ
- aiken-lang: Fix incorrect warning about unused variable when softcasting without explicit right-pattern. @KtorZ
- aiken-lang: Fix soft cast and hard cast on same type issues that lead to validator errors. @MicroProofs
- aiken-lang: Bls constants are automatically converted to a hoisted compressed form with uncompress builtin call. @MicroProofs
- uplc: Fix cost-models for PlutusV1 & PlutusV2. @MicroProofs
Removed
Install aiken 1.1.3
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aiken-lang/aiken/releases/download/v1.1.3/aiken-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -c "irm https://github.com/aiken-lang/aiken/releases/download/v1.1.3/aiken-installer.ps1 | iex"
Install prebuilt binaries into your npm project
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.3
v1.1.2 - 2024-09-13
Release Notes
Added
Changed
- aiken-lang: Fix issues with static recursive optimization. See #1009 @MicroProofs
- aiken-lang: Aiken IR now interns variables while building up to ensure uniqueness for local vars. @MicroProofs
- aiken-lang: Fix reification of
Data
(failing to reify) & PRNG
(missing variants' arguments). @KtorZ
- aiken-lang: Adjust reification of
String
to be shown as plain UTF-8 text strings (instead of hex-encoded byte array). @KtorZ
- aiken-lang: Fix formatting of long if-condition over multiline. @KtorZ & @MicroProofs
- aiken-lang: Fix formatting of standalone logical binary chains (
and
& or
) in functions. @KtorZ
- uplc: Fix script context generation failure on missing datum when evaluating transactions. @solidsnakedev
Removed
Install aiken 1.1.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aiken-lang/aiken/releases/download/v1.1.2/aiken-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -c "irm https://github.com/aiken-lang/aiken/releases/download/v1.1.2/aiken-installer.ps1 | iex"
Install prebuilt binaries into your npm project
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.2
v1.1.1 - 2024-09-10
Release Notes
Added
Changed
- aiken-lang: Fix validator's else handler generation. See #1015 @KtorZ
- aiken-lang: Fix underflow in error message reported by the validator arity. See #1013 @KtorZ
- aiken-lang: Fix list-pattern needlessly formatting over multiple lines. @KtorZ
- aiken-lang: Fix formatter on long alternative patterns spanning over multiple lines. @KtorZ
- aiken-lang: Fix needed parentheses under trace-if-false operator for todo, fail, unop & pipelines; removed when formatting. @KtorZ
- aiken-lang: Fix formatter removing curly braces around multi-line constants. It's fine to not have curly braces, but it's the Aiken signature after all. @KtorZ
- aiken-lang: Improve LSP suggestion for module imports. @Riley-Kilgore
Removed
Install aiken 1.1.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aiken-lang/aiken/releases/download/v1.1.1/aiken-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -c "irm https://github.com/aiken-lang/aiken/releases/download/v1.1.1/aiken-installer.ps1 | iex"
Install prebuilt binaries into your npm project
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.1