And here are a summary of editor/IDE-relevant Tact features.
New or fixed syntax
[ ] Fixed precedence levels for bitwise operators, equality and comparisons. Now the precedence levels match common languages like JS/TS.
[ ] Support for string escape sequences: \\, \", \n, \r, \t, \v, \b, \f, \u{0} through \u{FFFFFF}, \u0000 through \uFFFF, \x00 through \xFF.
[ ] Allow chaining method calls with !!, for instance, map.asCell()!!.hash() is grammatically correct now.
[ ] Trailing commas are allowed in struct instantiations, initOf arguments, init() parameters, inherited traits via with, function arguments and parameters.
[ ] Struct fields punning, i.e. {foo, bar} is syntactic sugar for { foo: foo, bar: bar }.
[ ] Inherited trait lists now must be non-empty if with is used.
[ ] Bitwise XOR (^) operator.
[ ] The implicit empty init function is now present by default in the contract if not declared.
[ ] try {...} and try {...} catch {...} statements.
[ ] foreach loop for the Map type: foreach (k, v in map) {...}.
New stdlib functions
[ ] pow2, log2 and log math functions in @stdlib/math.
The Tact team has just release Tact v1.3.0 on NPM.
The full CHANGELOG for Tact v1.3.0 can be found here: https://github.com/tact-lang/tact/blob/main/CHANGELOG.md#130---2024-05-03
And here are a summary of editor/IDE-relevant Tact features.
New or fixed syntax
\\
,\"
,\n
,\r
,\t
,\v
,\b
,\f
,\u{0}
through\u{FFFFFF}
,\u0000
through\uFFFF
,\x00
through\xFF
.!!
, for instance,map.asCell()!!.hash()
is grammatically correct now.initOf
arguments,init()
parameters, inherited traits viawith
, function arguments and parameters.{foo, bar}
is syntactic sugar for{ foo: foo, bar: bar }
.with
is used.^
) operator.init
function is now present by default in the contract if not declared.try {...}
andtry {...} catch {...}
statements.foreach
loop for theMap
type:foreach (k, v in map) {...}
.New stdlib functions
pow2
,log2
andlog
math functions in@stdlib/math
.@stdlib/reserve
, namelyReserveExact
,ReserveAllExcept
,ReserveAtMost
,ReserveAddOriginalBalance
,ReserveInvertSign
,ReserveBounceIfActionFail
.New methods
concat
non-modifyingStringBuilder
's extension function for chained string concatenations:foo.concat(bar).concat(baz)
.toString
extension function forAddress
type:addr.toString
.isEmpty
anddel
extension functions for theMap
type:map.isEmpty
,map.del(key)
.