You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
asm functions: asm fun keccak256(s: Slice): Int { 1 INT HASHEXT_KECCAK256 };
Wider range of serialization options for integers — uint1 through uint256 and int1 through int257: counter: Int as uint48;
Allow omitting last semicolons in contract/trait declarations and definitions: trait Test { abstract fun foo() } -- the semicolon after foo() is not required anymore.
New builtin and stdlib functions and methods:
The exists method for the Map type: m.exists(key), equivalent to m.get(key) != null;
The deepEquals method for the Map type: m1.deepEquals(m2);
The toSlice method for structs and messages: struct.toSlice();
The storeBit method for Builder type and the loadBit method for Slice type (aliases for storeBool and loadBool respectively): b.storeBit(true), sl.loadBit();
slice, rawSlice, ascii and crc32 built-in functions;
Corresponding stdlib functions for the new TVM instructions from 2023.07 and 2024.04 upgrades: storeBuilder extension function and gasConsumed, getComputeFee, getStorageFee, getForwardFee, getSimpleComputeFee, getSimpleForwardFee, getOriginalFwdFee, myStorageDue functions.
Builder.storeMaybeRef, parseStdAddress and parseVarAddress stdlib functions.
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.
The text was updated successfully, but these errors were encountered:
Because of lack of lookaheads, implementing correct-ish asm function block parsing without resorting to external scanner (scanner.c) is quite tough. I'll try some more without it, but probably would have to make it anyways.
On the up side, making an external scanner here will help making tact-lang/tact#837 later on
Let's just support some reasonable subset of Fift-asm for now, without creating an external scanner. For instance, the stuff in stdlib.fc and other common and important FunC contracts. Our wiki has a list of those: https://github.com/tact-lang/tact/wiki/FunC-contracts.
And document somewhere that our tree-sitter does not support the full syntax.
This was resolved long ago and only kept open because of the hanging PR to nvim-treesitter-textobjects. It's still there, but all other things were done, so let's close this issue as done too
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 }
;uint1
throughuint256
andint1
throughint257
:counter: Int as uint48
;trait Test { abstract fun foo() }
-- the semicolon afterfoo()
is not required anymore.New builtin and stdlib functions and methods:
exists
method for theMap
type:m.exists(key)
, equivalent tom.get(key) != null
;deepEquals
method for theMap
type:m1.deepEquals(m2)
;toSlice
method for structs and messages:struct.toSlice()
;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;storeBuilder
extension function andgasConsumed
,getComputeFee
,getStorageFee
,getForwardFee
,getSimpleComputeFee
,getSimpleForwardFee
,getOriginalFwdFee
,myStorageDue
functions.Builder.storeMaybeRef
,parseStdAddress
andparseVarAddress
stdlib functions.Tracking progress
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.
The text was updated successfully, but these errors were encountered: