Recently, TVM version 10 was rolled out in the mainnet. It introduced a number of new and interesting changes, the most notable being the addition of extra currencies and the removal of anycast addresses in favor of fixed address prefixes, which allows deploying a contract to an arbitrary shard. The Tact team has already begun work on preparing convenient ways to work with both.
However, TVM v10 also effectively removed the variable-length addresses,
addr_var, which made the Tact's VarAddress struct and parseVarAddress() function obsolete. We had to adjust to those changes as soon as possible, while bringing other important fixes we've made along the way.That road was a bit bumpy, as third-party dependencies crippled up and had to be dealt with special care. Two extra patch versions of the Tact compiler were needed along the way to ensure that the resulting version 1.6.10 was stable, well-built and battle-proven.
With that out of the way, let's see the fixes applied:
🧰 Breaking changes in the standard library
With TVM version 10 available in the mainnet, if you try to use the TVM instructions related to the now deprecated
addr_var (variable-length addresses), you'll get an exit code 9. That happens because those addresses got deprecated and removed from pretty much any place where they could've been used, and the instructions that work with them did not introduce a special "deprecated" exit code and started re-using the existing one.Thus, to prevent your new contracts from unwanted failures, the Tact compiler now reports the usage of the
VarAddress struct and the parseVarAddress() function as a compilation error.🛠 Bug fixes
Compiler:
• Now, it correctly handles optional slices, builders, and strings when generating serialization logic
• Usage of type identifiers as values in expressions were disallowed, e.g.
let x = Int or let x = MyStruct are now prohibitedFormatter:
• Floating comments are now handled correctly
• Inline comments after the last declaration in the file are now handled correctly
• Floating comments after
import are now handled correctly• Finally, formatter now has a better support of comments inside chained method calls
🧳 Miscellaneous improvements
• The latest v2025.04 WASM build of FunC and Fift compilers is now used in Tact. Aside from other things, that update fixed the
SDBEGINS and SDBEGINSQ instructions.• We've did a number of documentation updates, read more here.
📥 Upgrade Tact in your projects
New specifications are brewing behind the scenes, with new tools being tested and polished enough to share a public link.
However, the link is out there, and you can trace it from the developers' most frequently opened website.
🍲 sharded jockey
♨️ @tact_kitchen from the @ton_studio

