# Appendix E: Coming in 1.0

> Appendix E: features designed for Alice 1.0 that are not available in 0.14: arenas for tree data, dataflow networks, cm for loops, a direct IL backend, WebAssembly without the .NET runtime, and the Alice Core library.

Canonical: https://alice-lang.org/documentation/learn/coming-in-1-0/

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

This book describes what works in Alice today. Several larger features are designed, with accepted design documents, and planned for version 1.0. They are listed here so you know what is coming, and so you do not rely on them yet. Names and details may still change before they ship.

## Affine arenas for trees

Programs that build and walk many small tree nodes, such as interpreters, parsers and search, spend much of their time in the garbage collector. The plan is **affine enums**: sum types whose values are used exactly once, stored in large per-thread slabs called arenas, and freed when they are consumed by a `case`. The compiler will check the "used once" rule with new error codes (planned: `AL0222`, `AL0223` and related). The runtime part, `Arena`, exists in the repository; the language syntax does not yet.

## Dataflow networks

For streaming work, such as reading a file, parsing records and aggregating them, the plan is **static dataflow networks**: a `dataflow do ... end` block of stages connected by bounded queues, checked at compile time for isolation and purity, with backpressure and no allocation per item. A runtime library for such graphs exists; the `dataflow` syntax and its checks (planned codes in the `AL022x` range) are not available yet. Today, use channels and actors ([chapter 15](https://alice-lang.org/documentation/learn/async.md)).

## `cm for` loops

Chapter 11's data-parallel primitives (`prefix_sum`, `histogram`, `sort_by_key` and the others) are available as methods. The plan adds a `cm for` loop form that the compiler lowers to those primitives when it recognizes a scan, a combine, a compaction or a permutation, and rejects with an explanation otherwise.

## A direct .NET IL backend

Alice currently compiles to C#, and the .NET compiler produces the final IL. The plan for 1.0 is a typed intermediate representation and a backend that writes IL and debug information directly, with the C# backend kept as a reference. For users this should mean faster builds and the same or better code; no source changes are expected.

## WebAssembly without the .NET runtime

Today, `kind = "wasm"` packages ship the .NET WebAssembly runtime ([chapter 20](https://alice-lang.org/documentation/learn/webassembly.md)). The plan adds `[build] runtime = "alice"`, which compiles pure Alice code straight to a small wasm module with a thin runtime of its own, for much smaller downloads and faster startup. It will start with a core profile of the language: numbers, strings, arrays, structs, classes, sum types, closures, ownership and SIMD, without reflection, `dynamic` or the full .NET library. Code outside that profile will keep using `runtime = "dotnet"`.

## Alice Core

A standard library of Alice's own, where the .NET library is weaker or allocates more than needed: regular expressions compiled at build time when the pattern is a literal, fast JSON, UTF-8 text, HTTP client and server, file system, processes, time, digests, CSV and TOML. The goal is that each part beats its .NET counterpart on a public benchmark suite, and is documented with that benchmark.

## Language completeness

The Ruby and Crystal forms that Alice does not yet support, such as macros, union types, named arguments and splats, are being reviewed one by one: each is either added or rejected with a reason in the language reference. Until then, a few Ruby forms behave differently, such as negative array indexes and range slicing like `xs[1..]`; [Appendix C](https://alice-lang.org/documentation/learn/from-ruby.md) lists them.

## Also planned

- Signed and notarized installers, and Linux arm64 archives.
- Editor extensions for more editors.
- Verified samples for web services, desktop apps, games, command-line tools, data processing and low-level code.

## Continue reading

- Previous: [Appendix D: Standard library index](https://alice-lang.org/documentation/learn/library-index.md)
- Next: [Appendix F: Glossary](https://alice-lang.org/documentation/learn/glossary.md)
