Added
log2
andlog
math functions in@stdlib/math
: PR #166- Reserve mode constants in
@stdlib/reserve
, namelyReserveExact
,ReserveAllExcept
,ReserveAtMost
,ReserveAddOriginalBalance
,ReserveInvertSign
,ReserveBounceIfActionFail
: PR #173 - Support for string escape sequences (
\\
,\"
,\n
,\r
,\t
,\v
,\b
,\f
,\u{0}
through\u{FFFFFF}
,\u0000
through\uFFFF
,\x00
through\xFF
): PR #192 - JSON Schema for
tact.config.json
: PR #194 - Struct fields punning, i.e.
{foo, bar}
is syntactic sugar for{ foo: foo, bar: bar }
: PR #272 - The ability to use
dump
function on the values of theAddress
type: PR #175 - The non-modifying
StringBuilder
'sconcat
extension function for chained string concatenations: PR #217 - The
toString
extension function forAddress
type: PR #224 - The bitwise XOR operation (
^
): PR #238 - The
isEmpty
extension function for theMap
type: PR #266 - The
pow2
power function with base 2: PR #267 - The
try
andtry-catch
statements: PR #212 - The
del
method for theMap
type: PR #95 - The
-h
/--help
,-v
(short for--version
),-p
(short for--project
),--func
(for only outputting FunC code) and--check
(for only doing the syntax and type checking) command-line flags: PR #287 - The
mode
enum in project properties oftact.config.json
for specifying compilation mode:full
(default),funcOnly
(only outputs FunC code and exits), orcheckOnly
(only does the syntax and type checking, then exits): PR #287 - The
foreach
loop for theMap
type: PR #106
Changed
- The implicit empty
init
function is now present by default in the contract if not declared: PR #167 - Support trailing commas in all comma-separated lists (struct instantiations,
initOf
arguments,init()
parameters, inherited traits viawith
, function arguments and parameters): PR #179 and PR #246 @stdlib/stoppable
now imports@stdlib/ownable
so the programmer does not have to do it separately: PR #193- The
newAddress
function now evaluates to a constant value if possible: PR #237 - The
pow
power function could only be used at compile-time, but now it is available in the standard library and can be called both at runtime and compile-time: PR #267 - The
dump()
anddumpStack()
functions now print the file path, line number, and column number in addition to the data: PR #271 - Use
|
instead of+
for send mode flags because the bitwise OR operation is idempotent and hence safer: PR #274 - Bumped the versions of
@ton/core
andohm-js
to the most recent ones: PR #276 - Generated
.pkg
-files always use POSIX file paths (even on Windows): PR # 300 - The
-p
/--project
flags now allow specifying more than one project name. Additionally, they also require a--config
flag to be specified: PR #287 - Command-line interface now allows compiling a single Tact file directly, without specifying a config: PR #287
Fixed
- Escape backticks in error messages for generated TypeScript code: PR #192
- Integer overflows during compile-time constant evaluation are properly propagated as a compilation error: PR #200
- Incorrect "already exists" errors when using the
toString
andvalueOf
identifiers: PR #208 - Empty inherited trait lists after
with
keyword are now disallowed: PR #246 - Allow chaining method calls with
!!
, for instance,map.asCell()!!.hash()
is grammatically correct now: PR #257 - Precedence levels for bitwise operators, equality and comparisons now matches common languages, like JavaScript: PR #265
- Incorrect variable scoping in the
repeat
,while
anduntil
loops: PR #269 - FunC compilation errors when trying to
dump()
values of theCell
,Slice
,Builder
andStringBuilder
types: PR #271 - Tact's CLI returns a non-zero exit code if compilation fails: PR #278
- Use the most recent version of the FunC standard library
stdlib.fc
: PR #283 - The WASM version of the FunC compiler has been updated to 0.4.4 and patched to work on larger contracts: PR #297
- The
return
-statement reachability analysis: PR #302