FunC changelog
The official smart contract language of TON Blockchain is Tolk. FunC is now a legacy language, with its compiler no longer maintained.
FunC pages will be moved down in the sidebar in mid-April 2026. Here is the preview of a possible future placement, right between "Blockchain foundations" and "Contribute" sections:


Learn how to migrate from FunC to Tolk.
Version 0.4.6
Released in Dec 2024.
Fixes:
try/catchhandling.- Pure flag for functions stored in variables.
Version 0.4.5
Released in Oct 2024.
Fixes:
- Bug in optimization of operator
<<.
Version 0.4.4
Released in May 2023.
New features:
- Better error-handling.
Fixes:
catchstack recovery.
Version 0.4.3
Released in Apr 2023.
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.
New features:
Fixes:
- Handling of incorrect integer literal values.
Version 0.4.1
Released in Jan 2023.
New features:
- Added pragmas for precise control of computation order:
allow-post-modificationandcompute-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.
New features:
try/catchstatements.throw_arg,throw_arg_if, andthrow_arg_unlessfunctions.- Support for in-place modification and mass assignment of global variables, e.g.,
a~inc()and(a, b) = (3, 5), whereais 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, whilevar x = (ds~load_uint(32), ds~load_unit(64), ds);is allowed. - Allowed empty inline functions.
- Fixed a rare optimization bug in
whileloops.
Version 0.3.0
Released in Oct 2022.
New features:
- Support for multiline
asmstatements. - Allow duplicate definitions of identical constants and
asmstatements. - Enable bitwise operations for constants.
Version 0.2.0
Released in Aug 2022.
New features:
- Unbalanced
if/elsebranches, where some branches return a value while others do not.
Fixes:
- FunC incorrectly handles
while(false)loops (#377). - FunC generates incorrect code for
if/elsebranches (#374). - FunC incorrectly returns from conditions in inline functions (#370).
Asm.fif: splitting large function bodies incorrectly interferes with inline (#375).
Version 0.1.0
Released in May 2022.
New features:
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.
Last updated on