# What's new in Alice 1.0

> Alice 1.0 release notes: IL backend, affine arenas, proof certificates, Alice Core, WebAssembly, and CM loops.

Canonical: https://alice-lang.org/documentation/reference/whats-new-1-0/

[Documentation index](https://alice-lang.org/documentation/llms.txt) · [Complete book](https://alice-lang.org/llms-full.txt)

# What's new in Alice 1.0

**Secure as Rust, fast as C, parallel as Bend, easy as Ruby.**

Alice 1.0.0 delivers production-ready systems programming with memory safety, C-level performance, effortless parallelism, and Ruby syntax.

## Install

```bash
# Linux, macOS
curl -fsSL https://alice-lang.org/install.sh | sh

# Windows  
irm https://alice-lang.org/install.ps1 | iex
```

## 1.0 Highlights

### Direct IL Backend

Alice now compiles directly to .NET IL without going through C# and Roslyn. The IL backend is **6% faster** on average across the bend2 benchmark suite (geomean 0.94), with **30% faster compile times** on large files.

The C# backend remains available for `alice emit`, `alice explain`, and programs using source generators.

See [benchmarks/bend2/results/il-vs-csharp.md](https://github.com/alicelanguage/alice/blob/main/benchmarks/bend2/results/il-vs-csharp.md).

### Affine Arenas

Tree structures compile to cache-friendly slot-based arenas with compile-time move tracking. tree-radix is **3.7x faster** than GC records with **4x less memory** (295 MB vs 1116 MB).

Mark sum types with `affine enum` to require arena allocation, or let the compiler decide based on usage patterns.

See [benchmarks/bend2/results/arena.md](https://github.com/alicelanguage/alice/blob/main/benchmarks/bend2/results/arena.md).

### Proof Certificates

`alice prove --smt` now produces independently verifiable LRAT certificates. The standalone `alice-check` tool (<600 lines, no compiler or Z3 dependencies) validates the proof certificate.

The trusted base is reduced to: rule translation + alice-check, vs Z3 + compiler + runtime for enumeration.

See [docs/proofs.md](https://github.com/alicelanguage/alice/blob/main/docs/proofs.md).

### Alice Core Library

Alice Core ships SIMD implementations of regex, JSON, CSV, and TOML with Ruby semantics:

- **Regex**: 4.8x faster than .NET Compiled on regex-redux (UTF-16), 7.2x faster with UTF-8
- **JSON**: 2-6x faster DOM parsing than System.Text.Json
- **CSV**: 1.6 GB/s RFC 4180 parsing with zero-copy fields

See [benchmarks/core/regex/results.md](https://github.com/alicelanguage/alice/blob/main/benchmarks/core/regex/results.md) and [benchmarks/core/json/results.md](https://github.com/alicelanguage/alice/blob/main/benchmarks/core/json/results.md).

### WebAssembly

Compile Alice programs to `wasm32-wasi` standalone modules. Run on Node.js, Wasmtime, or any WASI runtime without the .NET runtime.

```bash
alice build --target wasm32-wasi
wasmtime app.wasm
```

### CM Loops

Counted loops matching scan/histogram/permutation shapes compile to data-parallel primitives:

```alice
cm for i in 0...n
  output[i] = process(input[i])
end
```

terrain is **2.1x faster** than serial on 32 cores.

## Breaking Changes

1. **Regex semantics changed to Ruby/Onigmo**: Literals are now `Alice.Core.Text.Regex`. Use explicit `.NET` regex if you need BCL semantics.

2. **Affine arena analysis**: Sum types may compile to arenas automatically. New errors AL0240-AL0243 for use-after-move and escapes.

3. **Wrapping operators fixed**: `1 &* (b * c)` now correctly wraps only the outer multiply.

4. **FFI callbacks**: Exceptions in callbacks are caught and rethrown after the C call returns.

5. **Arena regions per-thread**: `scope` only affects its own thread. `Dispose` on wrong thread throws.

## New Features

- `dataflow do` with `source` / `stage` / `sink` for streaming pipelines
- Iterators: methods returning `IEnumerable(T)` with `yield` are generators
- `cm for` / `cm ordered for` for data-parallel primitives
- Native callbacks: `Callback(A, B, R)` for zero-allocation C callbacks
- `alice run` image caching: 0.13s startup vs 1.2s for unchanged programs

## Known Limitations

See the [production readiness guide](https://alice-lang.org/documentation/reference/production.md) for the complete list. Notable 1.0 limits:

- Archives are SHA-256 verified but not code-signed (planned for 1.1+)
- Some generic method inference cases still require explicit type arguments

See the [full changelog](https://github.com/alicelanguage/alice/blob/main/CHANGELOG.md) for all changes since 0.14.

## Continue reading

- Previous: [Production readiness](https://alice-lang.org/documentation/reference/production.md)
