github tact-lang/tact v1.5.0
Release 1.5.0

latest release: v1.5.1
4 days ago

Added

  • The exists method for the Map type: PR #581
  • The storeBit method for Builder type and the loadBit method for Slice type: PR #699
  • The toSlice method for structs and messages: PR #630
  • Wider range of serialization options for integers — uint1 through uint256 and int1 through int257: PR #558
  • The deepEquals method for the Map type: PR #637
  • asm bodies for module-level functions: PR #769, PR #825
  • Corresponding stdlib functions for new TVM instructions from 2023.07 and 2024.04 upgrades: PR #331. Added the storeBuilder extension function and gasConsumed, getComputeFee, getStorageFee, getForwardFee, getSimpleComputeFee, getSimpleForwardFee, getOriginalFwdFee, myStorageDue functions.
  • slice, rawSlice, ascii and crc32 built-in functions: PR #787, PR #799
  • Builder.storeMaybeRef, parseStdAddress and parseVarAddress stdlib functions: PR #793
  • The compiler development guide: PR #833
  • Constant evaluator now uses an interpreter: PR #664. This allows calls to user-defined functions and references to declared global constants.

Changed

  • Allow omitting semicolons in contract/trait declarations and definitions: PR #718
  • Compiler Tests are now using @ton/sandbox instead of @tact-lang/emulator: PR #651
  • The minimal required Node.js version is bumped to 22: PR #769

Fixed

  • Traits can override inherited abstract functions: PR #724
  • Fix code generation bug for maps from unsigned integers to Boolean values: PR #725
  • Compiler failure when toString gets called as a static function and not a method: PR #745
  • Tact AST keeps the original format of integer literals (hex/dec/oct/bin): PR #771
  • Message opcodes are now checked if they fit into 32 bits: PR #771
  • Disallow zero binary message opcodes as those are reserved for text messages: PR #786
  • Return-statements in init() function do not cause FunC compilation error anymore: PR #794
  • emptyMap() in equality comparison expressions does not cause code generation failures: PR #814
  • Maps with coins as value type are now correctly handled in structs: PR #821
  • Contract method calls in return statements: PR #829
  • Disallow initializers for trait storage fields: PR #831
  • Fix dnsInternalNormalize() in @stdlib/dns to throw on slices with references as expected: PR #834

Release contributors

Special thanks

Don't miss a new tact release

NewReleases is sending notifications on new releases.