Releases
0.6 In development 0.5Released 0.4Released 0.3Released 0.2Released 0.1Released All release notesWhat's new in Incan¶
Explore the language and the tools behind each release.
Full release notesIncan 0.5 Released¶
Readable source. Real native systems.
Build a typed data processor¶
Model JSON records, handle file failures, test transformations, and produce a native report tool.
batch = OrderBatch.from_json(source)?
Excerpt: OrderBatch is defined by the tutorial application.
Use established Rust crates from Incan¶
Keep application logic in readable Incan and use existing crates through an explicit native boundary.
Choose which model fields are public¶
Fields on a public model now need their own pub marker to belong to its external API. Check your models before upgrading.
Keep compound powers grouped¶
Compound bases of ** retain their grouping during emission. The patch fixes valid programs that could previously return an incorrect numeric result.
Publish a checked library¶
Build a library and consume its public contract through one portable dependency identity.
Bake once, reuse compatible artifacts¶
Within the documented Alpha envelope, an explicit bake seals native build inputs for compatible build, run, and test commands. Unsupported shapes stop with guidance.
Keep projects on one checked view¶
Rooted and virtual workspaces share portable locks, provider identities, and inspectable feature selection.
Repair installed native toolchains¶
Release archives retain the standard-library sources and split-metadata sidecars needed by installed native consumers.
Incan 0.4 Released¶
Install, try, inspect, and automate.
Keep ordinary 0.3 programs working¶
The release focuses on tooling rather than a language rewrite. Review its migration notes when adopting the new inspection and reporting commands.
Start without cloning the compiler¶
The checksum-verified installer and zero-clone starter flow take you from a toolchain install to a runnable project.
Give tools structured compiler output¶
Use incan check, incan explain, and JSON build reports instead of scraping terminal prose.
Inspect compiler-backed source structure¶
incan inspect codegraph exports source, declaration, import, diagnostic, and provenance facts as JSONL.
Incan 0.3 Released¶
More expressive programs, stronger library boundaries.
Let a loop produce a value¶
Use loop: with break
Compose lazy iteration pipelines¶
Generators and source-owned iterator adapters support pipelines with explicit terminal operations such as collect, find, and fold.
Check local numeric type aliases¶
Names such as decimal, bigint, and numeric can collide with the canonical numeric vocabulary. Rename local aliases when migrating.
Format calls and fluent chains consistently¶
The formatter follows the vertical-spacing contract, wraps more long calls and signatures, and preserves scoped DSL expressions.
Run tests with structured results¶
The test runner supports fixtures, parametrization, markers, JSON Lines, and JUnit XML for local and automated workflows.
Incan 0.2 Released¶
Explicit libraries and a clearer native boundary.
Move standard-library imports to std.*¶
Import web, testing, and async capabilities from their named standard-library modules. Existing 0.1 projects need an import migration.
from std.testing import assert_eq
Existing standard-library import.
Keep runtime state in a module¶
Module static storage gives source modules an explicit place for runtime state.
Share an Incan library between projects¶
Experimental library builds publish public APIs for other Incan projects to consume.
Separate Incan and Rust dependencies¶
Use distinct manifest tables for Incan packages and Rust crates when migrating a project from 0.1.
Incan 0.1 Released¶
The first published Incan release.
Incan 0.6 In development¶
Compiler-owned meaning and Oven-native project authority.
Incan 0.6 has not shipped. These highlights describe the development line and its release contract. Consult the full notes for delivered behavior, remaining acceptance work, and current limitations.
Read typed TOML values¶
The development notes describe typed manifest values and declared models in std.toml, with source locations for parse and structural errors. Comment-preserving editing remains deferred.
Carry union types across package contracts¶
The development line records anonymous unions in checked package signatures and an explicit manifest-format boundary for older readers.
Make compiler facts the compilation authority¶
The release contract moves lowering, backend selection, and parity evidence onto compiler-owned facts. The notes distinguish delivered slices from acceptance work still owed.
Make Oven the normal project authority¶
The development contract covers selected Loafs, sealed dependencies, and explicit build evidence. Read the current boundaries before trying the development line.
No matching highlights¶
This is a curated selection. The full release notes include the complete change inventory.