> ## Documentation Index
> Fetch the complete documentation index at: https://companyname-a7d5b98e-nft-comparison.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

## Version 0.4.6

Released in [Dec 2024](https://github.com/ton-blockchain/ton/releases/tag/v2024.12-1).

**Fixes:**

* `try/catch` handling.
* Pure flag for functions stored in variables.

## Version 0.4.5

Released in [Oct 2024](https://github.com/ton-blockchain/ton/releases/tag/v2024.10).

**Fixes:**

* Bug in optimization of [operator `<<`](/languages/func/operators#shift-left%2C-%3C%3C).

## Version 0.4.4

Released in [May 2023](https://github.com/ton-blockchain/ton/releases/tag/v2023.05).

**New features:**

* Better error-handling.

**Fixes:**

* `catch` stack recovery.

## Version 0.4.3

Released in [Apr 2023](https://github.com/ton-blockchain/ton/releases/tag/v2023.04).

**New features:**

* Improved optimization of int constants and unused variables.

**Fixes:**

* Better handling of incorrect inputs: fix UB and prevent crashes on some inputs.
* Analysis of repeat loops.

## Version 0.4.2

Released in [Mar 2023](https://github.com/ton-blockchain/ton/releases/tag/v2023.03).

**New features:**

* [FunC Mathlib](https://github.com/ton-blockchain/ton/blob/master/crypto/smartcont/mathlib.fc/).

**Fixes:**

* Handling of incorrect integer literal values.

## Version 0.4.1

Released in [Jan 2023](https://github.com/ton-blockchain/ton/releases/tag/v2023.01).

**New features:**

* Added pragmas for precise control of computation order: [`allow-post-modification`](/languages/func/compiler-directives#%23pragma-allow-post-modification) and [`compute-asm-ltr`](/languages/func/compiler-directives#%23pragma-compute-asm-ltr).
* Added legacy tester, a collection of smart-contracts which is used to check whether a compiler update changes compilation results.

**Fixes:**

* Compiler crashes for some exotic inputs.

## Version 0.4.0

Released in [Jan 2023](https://github.com/ton-blockchain/ton/releases/tag/v2022.12/).

**New features:**

* [`try/catch` statements](/languages/func/statements#try-catch-statement).
* [`throw_arg`](/languages/func/built-ins#throw-arg), [`throw_arg_if`](/languages/func/built-ins#throw-arg-if), and [`throw_arg_unless`](/languages/func/built-ins#throw-arg-unless) functions.
* Support for in-place modification and mass assignment of global variables, e.g., `a~inc()` and `(a, b) = (3, 5)`, where `a` is global.

**Fixes:**

* Disallowed ambiguous modification of local variables after their usage in the same expression. For example, `var x = (ds, ds~load_uint(32), ds~load_unit(64));` is forbidden, while `var x = (ds~load_uint(32), ds~load_unit(64), ds);` is allowed.
* Allowed empty inline functions.
* Fixed a rare optimization bug in `while` loops.

## Version 0.3.0

Released in [Oct 2022](https://github.com/ton-blockchain/ton/releases/tag/v2022.10/).

**New features:**

* Support for [multiline `asm` statements](/languages/func/asm-functions#multi-line-asms).
* Allow duplicate definitions of identical constants and `asm` statements.
* Enable bitwise operations for constants.

## Version 0.2.0

Released in [Aug 2022](https://github.com/ton-blockchain/ton/releases/tag/v2022.08/).

**New features:**

* Unbalanced `if/else` branches, where some branches return a value while others do not.

**Fixes:**

* FunC incorrectly handles `while(false)` loops [(#377)](https://github.com/ton-blockchain/ton/issues/377/).
* FunC generates incorrect code for `if/else` branches [(#374)](https://github.com/ton-blockchain/ton/issues/374/).
* FunC incorrectly returns from conditions in inline functions [(#370)](https://github.com/ton-blockchain/ton/issues/370/).
* `Asm.fif`: splitting large function bodies incorrectly interferes with inline [(#375)](https://github.com/ton-blockchain/ton/issues/375/).

## Version 0.1.0

Released in [May 2022](https://github.com/ton-blockchain/ton/releases/tag/v2022.05/).

**New features:**

* [Constants](/languages/func/literals#constants)
* [Compile-time built-ins](/languages/func/literals#compile-time-built-ins)
* [Semver pragmas](/languages/func/compiler-directives#%23pragma-version)
* [Includes](/languages/func/compiler-directives#%23include)

**Fixes:**

* Resolved rare bugs in `Asm.fif`.

## Initial version

The initial version of FunC was developed by Telegram, but active development stopped after May 2020.
The May 2020 release is referred to as the "initial" version.
