Skip to content

Release 1.4.1

Compare
Choose a tag to compare
@anton-trunov anton-trunov released this 26 Jul 15:21
· 228 commits to main since this release
5bec486

Added

  • -e / --eval CLI flags to evaluate constant Tact expressions: PR #462
  • -q / --quiet CLI flags to suppress compiler log output: PR #509
  • Markdown report for compiled contracts now includes Mermaid diagrams for trait inheritance and contract dependencies: PR #560
  • Documentation comments to Zod schema of tact.config.json for descriptive hover pop-ups in editors: PR #575

Changed

  • Removed the LValue grammatical category and replaced it with Expression: PR #479
  • Compilation results are placed into the source file directory when compiling without tact.config.json file: PR #495
  • External receivers are enabled for single file compilation: PR #495
  • [DEBUG] prefix was removed from debug prints because a similar prefix was already present: PR #506
  • File paths in debug prints always use POSIX file paths (even on Windows): PR #523
  • The IPFS ABI and supported interfaces getters are not generated by default; to generate those, set to true the two newly introduced per-project options in tact.config.json: ipfsAbiGetter and interfacesGetter: PR #534
  • Values of Slice and Builder types are not converted to Cell in Typescript bindings anymore: PR #562
  • Debug prints now include line content for better debugging experience: PR #563
  • Error messages now suggest to add the self prefix if there is an attempt to access a missing variable when the contract storage has a variable with the same name: PR #568
  • Error messages now suggest to add or remove parentheses if there is an attempt to access a missing field when there is a method with the same name (and vice versa): PR #622

Fixed

  • Name clashes with FunC keywords in struct constructor function parameters: PR #467
  • Error messages for traversing non-path-expressions in foreach-loops : PR #479
  • Shadowing of trait constants by contract storage variables: PR #480
  • Parsing of non-decimal message opcodes: PR #481
  • Detection of multiple receivers of the same message: PR #491
  • Detection of non-unique message opcodes: PR #493
  • Error messages for non-abstract constants in traits: PR #483
  • All immediately inherited traits must be unique: PR #500
  • Do not throw error when overriding abstract and virtual getters: PR #503
  • Error message for non-existent storage variables: PR #519
  • Error message for duplicate receiver definitions inherited from traits: PR #519
  • Usage of initOf inside of init() does not cause error 135 anymore: PR #521
  • Usage of newAddress with hash parts shorter than 64 hexadecimal digits does not cause constant evaluation error Invalid address hash length anymore: PR #525
  • Introduced a streamlined error logger for compilation pipeline to support third-party tools: PR #509
  • Collisions of PascalCase getter names in generated wrappers are now checked: PR #556
  • Display a clearer error in case the source code file is missing when using the Tact CLI: PR #561
  • Error messages for unicode code points outside of valid range: PR #535
  • Correct regex for unicode code points and escaping of control codes in generated comments: PR #535
  • Add impure specifier to some stdlib functions that are expected to throw errors: PR #565
  • Defining non-existing native FunC functions now throws an understandable compilation error: PR #585
  • Bump used @tact-lang/opcode version to 0.0.16 which fixes the issue with DIV instructions: PR #589
  • Code generation for recv_external now correctly throws exit code 130 when processing an unexpected message: PR #604
  • Allocator bug resulting in cell overflows for some contract data layouts: PR #615
  • Structs with more than 15 fields do not cause a FunC compilation error anymore: PR #590
  • Typechecking for constant and struct field initializers: PR #621
  • Constant evaluation for structures with default and optional fields: PR #621
  • Report error for self-referencing and mutually-recursive types: PR #624
  • Error reporting for bounced receivers with missing parameter types: PR #626
  • Allowed range of FunC function identifiers in grammar.ohm: PR #628

Release contributors

Special thanks

For opening numerous issues and making thoughtful suggestions we'd like to thank