Language features
- [fix] Balanced quotation in error messages for out-of-project-root imports: PR #3242
- [fix] Disallow self-inheritance for contracts and traits: PR #3094
- [fix] Added fixed-bytes support to bounced message size calculations: PR #3129
- [fix] Fixed compiler errors for trait return types: PR #3197
- [fix] Added checks for trait returns in non-shuffle asm functions: PR #3197
- [fix] Allow equivalent
as
-annotations for maps types: PR #3172 - [fix] Added static/instance checks for core static methods: PR #3119
- [fix] Compiler now correctly counts the size of fields for maps in bounced messages: PR #3255
- [fix] Compiler now allows
bounced<T>
as a return type of assembly functions: PR #3259
Code generation
- Compiler now generates more efficient code for slice serialization: PR #3213
- Improve gas consumption for equality comparisons of optionals: PR #3233
- Improve gas consumption for deserialization of optional addresses: PR #3225
- Compiler now generates more efficient code for
if-throw
pattern withthrow_if/throw_unless
call: PR #3216 - [fix] Detect out-of-range exit codes for the special case of a fallback receiver with
throw
: PR #3244 - [fix] Correct transformation of binary and octal message opcodes to hexadecimal format: PR #3239
- [fix] Added escaping of special-chars in receiver comments break FunC compilation: PR #3234
- [fix] Disable optimization of optional integer comparisons that leads to runtime exceptions: PR #3210
- [fix] Compiler now doesn't generate
__tact_nop()
fordump()
anddumpStack()
in default mode: PR #3218 - [fix] Correct long struct tuple destruction: PR #3105
- [fix] Arguments of the
==
and!=
operators get evaluated in the left-to-right order: PR #3252
Docs
- Changed the title of the "Gas-expensive" badge to "500+ gas" to avoid confusion when discussing relative gas-efficiency: PR #3120
- Added description of
safety
-relatedtact.config.json
options to gas and security best practice pages: PR #3206