> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ton.org/llms.txt
> Use this file to discover all available pages before exploring further.

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://docs.ton.org/feedback

```json
{
  "path": "/tolk/changelog",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# Changelog

## [v1.3](https://github.com/ton-blockchain/ton/pull/2234)

1. Introduced `array<T>` — dynamically sized arrays backed by TVM tuples.
2. Introduced the `unknown` type — a TVM primitive with unknown contents.
3. Introduced `lisp_list<T>` — nested two-element tuples (FunC-style).
4. Introduced the `string` type — a dedicated string type backed by snaked cells, with `StringBuilder` for concatenation.
5. Compile-time string functions became methods: `"str".crc32()`, `"str".sha256()`, etc.
6. Allowed `[]` to create empty maps, deprecating `createEmptyMap`.
7. Added the null coalescing operator `??`.
8. Added import path mappings (`@alias` → directory).
9. Added compile-time reflection via `@stdlib/reflection`.
10. Extended custom serializers (`packToBuilder`/`unpackFromSlice`) to structures and generics.
11. The compiler can now report multiple errors at once.

## [v1.2](https://github.com/ton-blockchain/ton/pull/1886)

1. Introduced `address` as "internal only".
2. Delivered rich bounces: return the full body instead of 256 bits.
3. Provided low-cost builder-to-slice, `StateInit`, and address composition.
4. Improved compilation errors.
5. Added support for anonymous functions.
6. Added the borrow checker and related undefined-behavior checks.

## [v1.1](https://github.com/ton-blockchain/ton/pull/1795)

1. Added `map<K, V>` — a wrapper over TVM dictionaries.
2. Added `enum` — group numeric constants into a distinct type.
3. Added `private` and `readonly` fields in structures.
4. Enhanced overload resolution and partial specialization.

## [v1.0](https://github.com/ton-blockchain/ton/pull/1741)

1. Added the `lazy` keyword.
2. Added auto-detect and inline functions at the compiler level.
3. Added various peephole optimizations for gas efficiency.
4. Added `onInternalMessage` and `onBouncedMessage`, TVM 11 support.
5. Added custom pack and unpack serializers for custom types.

## [v0.99](https://github.com/ton-blockchain/ton/pull/1707)

1. Added `createMessage`.
2. Added `createExternalLogMessage`.
3. Added sharding support for calculating addresses "close to another contract".

## [v0.13](https://github.com/ton-blockchain/ton/pull/1694)

1. Added auto-packing `to` and `from` `cells`, `builders`, and `slices`.
2. Added type `address`.
3. Added Lateinit variables.
4. Added defaults for parameters.

## [v0.12](https://github.com/ton-blockchain/ton/pull/1645)

1. Added structures `struct A { ... }`.
2. Added generics `struct<T>` and `type<T>`.
3. Added methods `fun Point.getX(self)`.
4. Renamed stdlib functions to short methods.

## [v0.11](https://github.com/ton-blockchain/ton/pull/1610)

1. Added type aliases `type NewName = <existing type>`.
2. Added union types `T1 | T2 | ...`.
3. Added pattern matching for types.
4. Added the `is` and `!is` operators.
5. Added pattern matching for expressions.
6. Allowed the semicolon to be omitted for the last statement in a block.

## [v0.10](https://github.com/ton-blockchain/ton/pull/1559)

1. Added fixed-width integers such as `int32` and `uint64`.
2. Added the `coins` type and the `ton("0.05")` function.
3. Added `bytesN` and `bitsN` types backed by slices at the TVM level.
4. Replaced `"..."c` postfixes with `stringCrc32("...")` functions.
5. Added support `0b...` number literals in addition to `0x...`.
6. Added support trailing commas.

## [v0.9](https://github.com/ton-blockchain/ton/pull/1545)

1. Added nullable types `int?`, `cell?`, and others; introduce null safety.
2. Updated the standard library, including`asm` definitions, to support nullability.
3. Introduced smart casts, like in TypeScript and Kotlin.
4. Added the `!` operator (non-null assertion).
5. Treated code after `throw` as unreachable.
6. Added the `never` type.

## [v0.8](https://github.com/ton-blockchain/ton/pull/1503)

1. Introduced syntax `tensorVar.0` and `tupleVar.0` for reading and writing.
2. Allowed `cell`, `slice`, and similar terms to be used as valid identifiers rather than keywords.

## [v0.7](https://github.com/ton-blockchain/ton/pull/1477)

1. Refactored compiler internals and introduce an AST-level semantic analysis kernel.
2. Changed the type system to static typing.
3. Provided clear and readable error messages for type mismatch.
4. Added generic functions `fun f<T>(...)` and instantiations such as `f<int>(...)`.
5. Added `bool` type and type casting through `value as T`.

## [v0.6](https://github.com/ton-blockchain/ton/pull/1345)

The first public release.

Tolk is a fork of FunC with iterative improvements. In 2024, a pull request for [FunC v0.5.0](https://github.com/ton-blockchain/ton/pull/1026) was submitted together with a roadmap for further development. Instead of merging it, it was forked.

Tolk was first announced at [TON Gateway](https://www.youtube.com/watch?v=Frq-HUYGdbI) in 2024.
The released version was marked v0.6, indicating its relation to the FunC v0.5.
