Release 1.4.1
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 withExpression
: 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 intact.config.json
:ipfsAbiGetter
andinterfacesGetter
: PR #534 - Values of
Slice
andBuilder
types are not converted toCell
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 ofinit()
does not cause error135
anymore: PR #521 - Usage of
newAddress
with hash parts shorter than 64 hexadecimal digits does not cause constant evaluation errorInvalid 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 to0.0.16
which fixes the issue withDIV
instructions: PR #589 - Code generation for
recv_external
now correctly throws exit code130
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
- apasittacc
- Andrei Borzenkov
- byakuren-hijiri
- cemorum
- heli0dus
- Novus Nota
- Jesús Héctor Domínguez Sánchez
- Daniil Sedov
- Vlada Shafranskaia
- Anton Trunov
- Rahul Yadav
Special thanks
For opening numerous issues and making thoughtful suggestions we'd like to thank