Closed
Description
Full changelog for Tact v1.5.0: https://github.com/tact-lang/tact/blob/main/CHANGELOG.md#150---2024-09-15
New Tact features:
asm
functions:asm fun keccak256(s: Slice): Int { 1 INT HASHEXT_KECCAK256 }
;- Wider range of serialization options for integers —
uint1
throughuint256
andint1
throughint257
:counter: Int as uint48
; - Allow omitting last semicolons in contract/trait declarations and definitions:
trait Test { abstract fun foo() }
-- the semicolon afterfoo()
is not required anymore.
New builtin and stdlib functions and methods:
- The
exists
method for theMap
type:m.exists(key)
, equivalent tom.get(key) != null
; - The
deepEquals
method for theMap
type:m1.deepEquals(m2)
; - The
toSlice
method for structs and messages:struct.toSlice()
; - The
storeBit
method forBuilder
type and theloadBit
method forSlice
type (aliases forstoreBool
andloadBool
respectively):b.storeBit(true)
,sl.loadBit()
; slice
,rawSlice
,ascii
andcrc32
built-in functions;- Corresponding stdlib functions for the new TVM instructions from 2023.07 and 2024.04 upgrades:
storeBuilder
extension function andgasConsumed
,getComputeFee
,getStorageFee
,getForwardFee
,getSimpleComputeFee
,getSimpleForwardFee
,getOriginalFwdFee
,myStorageDue
functions. Builder.storeMaybeRef
,parseStdAddress
andparseVarAddress
stdlib functions.
Tracking progress
- feat: support Tact 1.5.0 #40
- New release: https://github.com/tact-lang/tree-sitter-tact/releases/tag/v1.5.0
- Bugfix PR: fix: bugfix release 1.5.1 #41
- Bugfix release: https://github.com/tact-lang/tree-sitter-tact/releases/tag/v1.5.1
- PR to Neovim's repos
P.S.: Consider removing the built-in functions from highlighting queries, as this generally hurts the highlighting more than it helps. New structs, messages and constants are better candidates for inclusion into queries.