Releases: aiken-lang/aiken
v1.1.19 - 2025-07-28
Release Notes
Added
- aiken-project: Pretty print execution units. Added
--plain-numbers
flag tocheck
command, to switch between the two formats. @nikhils9 - aiken-lang: New type decorators that allow control over the encoding of types. @rvcas @MicroProofs
Changed
- aiken-project: Reintroduce filtering by files with the extension
.ak
like in the past. This was how it was at first anyways. @keyan-m
Fixed
- aiken-lang: Fix formatting issue with grouped pipeline followed by tuple index. @rvcas
- aiken-lang: Fix formatting issue with record updates and punning syntax. @rvcas
- aiken-lang: Prevent validator params being in the top level scope for functions. @MicroProofs
- aiken-lang: Formatting for long import lines @rvcas
- aiken-lang:
aiken add
wrongly rejects valid org/project pairs. @rvcas - uplc: PlutusData comparison in the UPLC VM shouldn't rely on CBOR encoding. @rvcas @KtorZ
Install aiken 1.1.19
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aiken-lang/aiken/releases/download/v1.1.19/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.19/aiken-installer.ps1 | iex"
Install prebuilt binaries into your npm project
npm install @aiken-lang/[email protected]
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.19
File | Platform | Checksum |
---|---|---|
aiken-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
aiken-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
aiken-x86_64-pc-windows-msvc.tar.gz | x64 Windows | checksum |
aiken-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
v1.1.17 - 2025-05-08
Release Notes
Added
-
aiken: New
--property-coverage
flag to thecheck
command, to switch the coverage denominator between the number of iterations and the total number of labels. @KtorZ-P, --property-coverage <COVERAGE_MODE> Display options for the coverage. - relative-to-labels: Ratio of each label over the total number of labels. Better when labels are mutually-exclusive and present in each test. - relative-to-tests: Ratio of each label over the total number of tests/iterations. Better when labels are occasional and non-exclusive per test. [default: relative-to-labels]
-
aiken: New
--script-override
flag added to thetx simulate
command, to override script hashes with another script without modifying the transaction CBOR. @yHSJ--script-override [<SCRIPT_OVERRIDES>...] The "from" hash which is being replaced and the hash "to" hash which is being overriden in the form "FROM:TO"
-
aiken-lang: New prelude function to conveniently upcast any serialisable type into
Data
in places where the compiler cannot do it implicitly.pub fn as_data(data: Data) -> Data
-
aiken-lsp: New quickfix to pluck inferred types in holes within annotations. @KtorZ
-
aiken-lsp: New quickfix to make private functions, types or constants public when detected unused. @KtorZ
-
aiken-lsp: New quickfix to make types public when 'leaking' from a public function (e.g. validator handlers). @KtorZ
Fixed
- aiken: Allow blueprint 'apply' to be called from outside an Aiken project. @mpizenberg
- aiken-lang: Correctly infer Fuzzer & Sampler via type annotations when referring to foreign types. @KtorZ
- aiken-lang: Allow type reification to pierce through Data aliases (e.g. Redeemer) holding lists, tuples or pairs, instead of crashing the compiler. @KtorZ
- aiken-lang: Allow
Pair
to be used inline in Fuzzer's eDSL. @KtorZ - aiken-lang: Do not mark imported types as unused when used only as namespace in patterns. @KtorZ
- aiken-lang: Do not warn about unused constructors when already warning about unused type. @KtorZ
- aiken-lsp: Fix module's inhabitant import quickfix for renamed modules. @KtorZ
- aiken-lsp: Fix quickfix suggestion to use qualified for renamed modules. @KtorZ
Install aiken 1.1.17
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aiken-lang/aiken/releases/download/v1.1.17/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.17/aiken-installer.ps1 | iex"
Install prebuilt binaries into your npm project
npm install @aiken-lang/[email protected]
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.17
File | Platform | Checksum |
---|---|---|
aiken-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
aiken-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
aiken-x86_64-pc-windows-msvc.tar.gz | x64 Windows | checksum |
aiken-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
v1.1.16 - 2025-04-14
Release Notes
Added
-
aiken: Very simple support for monorepos via a
members
property in the
rootaiken.toml
file. Globs are supported you one could do this:members = ["pkgs/*"]
Fixed
-
aiken: Summary should always print at the end of the output not just when
checks plus warnings is greater than zero. @rvcas -
aiken-lang: Fix comments not being able to occur in ByteArray array
members. @rvcas -
uplc:
find_script
now supports stake registrations certificates @mpizenberg
Install aiken 1.1.16
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aiken-lang/aiken/releases/download/v1.1.16/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.16/aiken-installer.ps1 | iex"
Install prebuilt binaries into your npm project
npm install @aiken-lang/[email protected]
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.16
File | Platform | Checksum |
---|---|---|
aiken-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
aiken-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
aiken-x86_64-pc-windows-msvc.tar.gz | x64 Windows | checksum |
aiken-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
v1.1.15
Install aiken 1.1.15
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aiken-lang/aiken/releases/download/v1.1.15/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.15/aiken-installer.ps1 | iex"
Install prebuilt binaries into your npm project
npm install @aiken-lang/[email protected]
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.15
File | Platform | Checksum |
---|---|---|
aiken-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
aiken-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
aiken-x86_64-pc-windows-msvc.tar.gz | x64 Windows | checksum |
aiken-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
v1.1.14 - 2025-03-21
Release Notes
Added
- aiken: New
-S
flag oncheck
andbuild
that blocks the printing of warnings but it still shows the total warning count. @rvcas - aiken-lang: Allow types to be used as namespaces for constructors. Importing each constructor variants independently is no longer required in neither pattern-matches nor value construction. One can simply use the type name as a prefix/namespace now. @KtorZ
- aiken-lang: Allow capture on constructor calls. @KtorZ
Changed
- aiken-lang: Prevent (type error) backpassing blocks with empty continuation. See #1111. @KtorZ
- aiken-lang: Change default placeholder for
trace
toVoid
instead oftodo
. @KtorZ - aiken-lang: Disallow (parse error) dangling colon
:
in traces. See #1113. @KtorZ - aiken-lang: Fix
aiken blueprint apply
wrongly overriding all validators handlers names & ABI to the mint's one. See #1099. @KtorZ - aiken-lang: Always type-check trace label irrespective of the trace level, to avoid unnecessary warnings in compact or silent mode. See #1122. @KtorZ
- aiken-lang: Formatter was removing comments from function type annotation args @rvcas
- aiken-lang: Parser wrongly merged two adjacent sequences together, effectively fusioning scopes. @KtorZ
- aiken-lang: Fix hint when suggesting to use named fields, wrongly suggesting args in lexicographical order instead of definition order. @KtorZ
- aiken-project: Better errors on
blueprint apply
when matching multiple or no validators. See #1127 @KtorZ
Install aiken 1.1.14
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aiken-lang/aiken/releases/download/v1.1.14/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.14/aiken-installer.ps1 | iex"
Install prebuilt binaries into your npm project
npm install @aiken-lang/[email protected]
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.14
File | Platform | Checksum |
---|---|---|
aiken-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
aiken-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
aiken-x86_64-pc-windows-msvc.tar.gz | x64 Windows | checksum |
aiken-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
v1.1.13 - 2025-02-21
Release Notes
Changed
- aiken: Bumped pallas to 0.32.0
Install aiken 1.1.13
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aiken-lang/aiken/releases/download/v1.1.13/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.13/aiken-installer.ps1 | iex"
Install prebuilt binaries into your npm project
npm install @aiken-lang/[email protected]
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.13
File | Platform | Checksum |
---|---|---|
aiken-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
aiken-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
aiken-x86_64-pc-windows-msvc.tar.gz | x64 Windows | checksum |
aiken-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
v1.1.12 - 2025-02-18
Release Notes
Changed
-
uplc:
eval_phase_two
and related functions now return an EvalResult @QuantumplationIn order to allow consuming tools provide better tooling experiences, the various
eval_phase_two
functions provide anEvalResult
, which includes the final term, the remaining budget, and the traces.
This means you can display or work with the traces of a script even if it succeeds.
Install aiken 1.1.12
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aiken-lang/aiken/releases/download/v1.1.12/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.12/aiken-installer.ps1 | iex"
Install prebuilt binaries into your npm project
npm install @aiken-lang/[email protected]
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.12
File | Platform | Checksum |
---|---|---|
aiken-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
aiken-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
aiken-x86_64-pc-windows-msvc.tar.gz | x64 Windows | checksum |
aiken-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
v1.1.11 - 2025-02-11
Release Notes
Added
-
aiken: New
aiken bench
command to run benchmarks. @Riley-Kilgore, @KtorZThe 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, @KtorZA
bench
is a new type of test that takes in a singleSampler<a> = fn(Int) -> Fuzzer<a>
as parameter, similar to how property-based test receiveFuzzer<a>
. ASampler
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
npm install @aiken-lang/[email protected]
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.11
File | Platform | Checksum |
---|---|---|
aiken-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
aiken-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
aiken-x86_64-pc-windows-msvc.tar.gz | x64 Windows | checksum |
aiken-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
v1.1.10 - 2025-01-21
Release Notes
Added
- aiken-project:
export
output now supports the functionsreturn_type
. @rvcas - aiken-lang:
write_bits
can now be used from aiken/builtins. @MicroProofs
Changed
- aiken-project: The
aiken.toml
file no longer supportsv1
andv2
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
npm install @aiken-lang/[email protected]
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.10
File | Platform | Checksum |
---|---|---|
aiken-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
aiken-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
aiken-x86_64-pc-windows-msvc.tar.gz | x64 Windows | checksum |
aiken-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
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
andunconstr_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
npm install @aiken-lang/[email protected]
Install prebuilt binaries via Homebrew
brew install aiken-lang/tap/aiken
Download aiken 1.1.9
File | Platform | Checksum |
---|---|---|
aiken-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
aiken-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
aiken-x86_64-pc-windows-msvc.tar.gz | x64 Windows | checksum |
aiken-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |