Skip to content

What's new in Incan

Explore the language and the tools behind each release.

Full release notes

Incan 0.5 Released

Full 0.5 notes

Readable source. Real native systems.

NewStandard library

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.

Try the tutorial

ImprovedNative interop

Use established Rust crates from Incan

Keep application logic in readable Incan and use existing crates through an explicit native boundary.

Explore native integrations

BreakingModels

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.

Read the migration guidance

Fixed0.5.1 · Expressions

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.

Read the patch notes

NewPackages

Publish a checked library

Build a library and consume its public contract through one portable dependency identity.

Build and consume a library

NewOven Alpha

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.

Explore Oven Alpha

ImprovedWorkspaces

Keep projects on one checked view

Rooted and virtual workspaces share portable locks, provider identities, and inspectable feature selection.

Read the package changes

Fixed0.5.1 · Distribution

Repair installed native toolchains

Release archives retain the standard-library sources and split-metadata sidecars needed by installed native consumers.

Read the patch notes

Incan 0.4 Released

Full 0.4 notes

Install, try, inspect, and automate.

ImprovedCompatibility

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.

Read the migration notes

NewInstallation

Start without cloning the compiler

The checksum-verified installer and zero-clone starter flow take you from a toolchain install to a runnable project.

Explore installation

NewDiagnostics

Give tools structured compiler output

Use incan check, incan explain, and JSON build reports instead of scraping terminal prose.

Explore diagnostics and reports

NewInspection

Inspect compiler-backed source structure

incan inspect codegraph exports source, declaration, import, diagnostic, and provenance facts as JSONL.

Explore codegraph inspection

Incan 0.3 Released

Full 0.3 notes

More expressive programs, stronger library boundaries.

NewControl flow

Let a loop produce a value

Use loop: with break for searches, retries, and other loops whose result belongs in an expression.

Explore the language additions

NewIteration

Compose lazy iteration pipelines

Generators and source-owned iterator adapters support pipelines with explicit terminal operations such as collect, find, and fold.

Work with generators

BreakingNumeric names

Check local numeric type aliases

Names such as decimal, bigint, and numeric can collide with the canonical numeric vocabulary. Rename local aliases when migrating.

Read the migration guidance

ImprovedFormatter

Format calls and fluent chains consistently

The formatter follows the vertical-spacing contract, wraps more long calls and signatures, and preserves scoped DSL expressions.

Read the tooling changes

NewTesting

Run tests with structured results

The test runner supports fixtures, parametrization, markers, JSON Lines, and JUnit XML for local and automated workflows.

Explore the test workflow

Incan 0.2 Released

Full 0.2 notes

Explicit libraries and a clearer native boundary.

BreakingImports

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.

Migrate imports and decorators

NewModules

Keep runtime state in a module

Module static storage gives source modules an explicit place for runtime state.

Explore static storage

NewLibraries · Experimental

Share an Incan library between projects

Experimental library builds publish public APIs for other Incan projects to consume.

Explore the library workflow

BreakingDependencies

Separate Incan and Rust dependencies

Use distinct manifest tables for Incan packages and Rust crates when migrating a project from 0.1.

Update the project manifest

Incan 0.1 Released

Full 0.1 notes

The first published Incan release.

NewLanguage

Write typed programs with explicit failure

Typed functions, models, enums, pattern matching, and Result/Option error handling establish the first language surface.

Explore the first release

NewCLI

Build, run, format, and test

The first published release introduces the core CLI workflow and a generated language reference.

Read the release highlights

Incan 0.6 In development

Full 0.6 notes

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.

NewStandard library · Development

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.

Read the development notes

ImprovedPackages · Development

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.

Read the package development notes

ImprovedCompiler · Development

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.

Explore the compiler direction

ImprovedOven · Development

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.

Explore the Oven direction

Full release notes

Highlights link to the detailed release notes and guides. For complete inventories, patch notes, and migration requirements, choose a release:

0.6 — in development · 0.5 · 0.4 · 0.3 · 0.2 · 0.1

Docs versioning model

dev documentation is built from main and includes work that has not shipped. Released documentation is built from tags and published by minor version. A release badge on this page describes the release; it does not detect your installed compiler. See the stability policy before upgrading.