Skip to content

Commit 0a6c688

Browse files
authored
chore[release]: Tact v1.6.0 (#2091)
1 parent 52ab3be commit 0a6c688

22 files changed

+69
-67
lines changed

Diff for: dev-docs/CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [1.6.0] - 2025-02-28
11+
1012
### Language features
1113

1214
- Added `&&=`, `||=`, `>>=` and `<<=` augmented assignment operators: PR [#853](https://github.com/tact-lang/tact/pull/853)

Diff for: docs/src/content/docs/book/config.mdx

+6-6
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ If set to `true{:json}`, enables inlining of all functions in contracts. This ca
339339

340340
#### `safety` {#options-safety}
341341

342-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
342+
<Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
343343

344344
Options that affect the safety of contracts.
345345

@@ -360,7 +360,7 @@ Options that affect the safety of contracts.
360360

361361
##### `nullChecks` {#safety-nullChecks}
362362

363-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
363+
<Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
364364

365365
`true{:json}` by default.
366366

@@ -387,7 +387,7 @@ Null checks are always enabled in the [`debug`](#options-debug) mode.
387387

388388
#### `optimizations` {#options-optimizations}
389389

390-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
390+
<Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
391391

392392
Options that affect the optimizations of contracts.
393393

@@ -408,7 +408,7 @@ Options that affect the optimizations of contracts.
408408

409409
##### `alwaysSaveContractData` {#optimizations-alwayssavecontractdata}
410410

411-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
411+
<Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
412412

413413
`false{:json}` by default.
414414

@@ -433,7 +433,7 @@ If set to `false{:json}`, enables saving the contract state at the end of a rece
433433

434434
#### `enableLazyDeploymentCompletedGetter` {#options-enablelazydeploymentcompletedgetter}
435435

436-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
436+
<Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
437437

438438
`false{:json}` by default.
439439

@@ -456,7 +456,7 @@ If set to `true{:json}`, enables generation of `lazy_deployment_completed()` get
456456

457457
### `verbose` {#verbose}
458458

459-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
459+
<Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
460460

461461
`1{:json}` by default.
462462

Diff for: docs/src/content/docs/book/contracts.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ In addition to that, [`tact.config.json`](/book/config) may still be used in [Bl
155155

156156
### Contract parameters {#parameters}
157157

158-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
158+
<Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
159159

160160
Most of the contracts do not need any on-chain deployment logic that runs just once after the contract's deployment is completed. As such, the costly lazy deployment strategy provided by the [`init(){:tact}`](#init-function) is generally discouraged in favor of simple, direct deployments with [initial code and initial data](/book/expressions#initof).
161161

Diff for: docs/src/content/docs/book/exit-codes.mdx

+3-3
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ Exit code | Origin | Brief description
5454
[$42$](#42) | [Action phase][a] | Library change action error.
5555
[$43$](#43) | [Action phase][a] | Exceeded maximum number of cells in the library or the maximum depth of the Merkle tree.
5656
[$50$](#50) | [Action phase][a] | Account state size exceeded limits.
57-
[$128$](#128) | Tact compiler ([Compute phase][c]) | Null reference exception. Configurable since Tact 1.6 (not released yet).
57+
[$128$](#128) | Tact compiler ([Compute phase][c]) | Null reference exception. Configurable since Tact 1.6.
5858
[$129$](#129) | Tact compiler ([Compute phase][c]) | Invalid serialization prefix.
5959
[$130$](#130) | Tact compiler ([Compute phase][c]) | Invalid incoming message — there's no receiver for the opcode of the received message.
6060
[$131$](#131) | Tact compiler ([Compute phase][c]) | Constraints error. Reserved, but never thrown.
@@ -63,7 +63,7 @@ Exit code | Origin | Brief description
6363
[$134$](#134) | Tact compiler ([Compute phase][c]) | Invalid argument.
6464
[$135$](#135) | Tact compiler ([Compute phase][c]) | Code of a contract was not found.
6565
[$136$](#136) | Tact compiler ([Compute phase][c]) | Invalid standard address.
66-
~~[$137$](#137)~~ | ~~Tact compiler ([Compute phase][c])~~ | ~~Masterchain support is not enabled for this contract.~~ Removed since Tact 1.6 (not released yet)
66+
~~[$137$](#137)~~ | ~~Tact compiler ([Compute phase][c])~~ | ~~Masterchain support is not enabled for this contract.~~ Removed since Tact 1.6
6767

6868
:::note
6969

@@ -658,7 +658,7 @@ try {
658658

659659
### 137: Masterchain support is not enabled for this contract {#137}
660660

661-
<Badge text="Removed since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
661+
<Badge text="Removed since Tact 1.6" variant="tip" size="medium"/><p/>
662662

663663
Prior to removal, any attempts to point to masterchain (ID $-1$) or otherwise interact with it without enabling masterchain support were throwing an exception with exit code $137$: `Masterchain support is not enabled for this contract`.
664664

Diff for: docs/src/content/docs/book/expressions.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ Field | Type | Description
303303

304304

305305
<Badge text="Gas-expensive" title="Uses 500 gas units or more" variant="danger" size="medium"/>
306-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
306+
<Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
307307

308308
Expression `codeOf{:tact}` returns a [`Cell{:tact}`][cell] with the code of a [contract](/book/contracts):
309309

Diff for: docs/src/content/docs/book/functions.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ contract Treasure {
150150

151151
### Explicit resolution of method ID collisions
152152

153-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
153+
<Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
154154

155155
Like other functions in TON contracts, getters have their _unique_ associated function selectors, which are $19$-bit signed integer identifiers commonly called _method IDs_.
156156

Diff for: docs/src/content/docs/book/integers.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ Name | [TL-B][tlb] | Inclusive range |
177177
`varuint32{:tact}` | [`VarUInteger 32`][varuint] | $0$ to $2^{248} - 1$ | between $5$ and $253$ bits
178178
`varint32{:tact}` | `VarInteger 32` | $-2^{247}$ to $2^{247} - 1$ | between $5$ and $253$ bits
179179

180-
<p/><Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
180+
<p/><Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
181181

182182
The `varuint16{:tact}` format is equivalent to [`coins{:tact}`](#serialization-varint). Its signed variant, `varint16{:tact}`, has the same memory layout except for the signed `value` field, which allows a different range of values: from $-2^{119}$ to $2^{119} - 1$, including both ends.
183183

Diff for: docs/src/content/docs/book/maps.mdx

+2-2
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ if (gotButUnsure != null) {
169169

170170
### Replace values, `.replace()` {#replace}
171171

172-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
172+
<Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
173173

174174
```tact
175175
// K and V correspond to the key and value types of the given map
@@ -216,7 +216,7 @@ replaced2; // false
216216

217217
### Replace and get old value, `.replaceGet()` {#replaceget}
218218

219-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
219+
<Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
220220

221221
```tact
222222
// K and V correspond to the key and value types of the given map

Diff for: docs/src/content/docs/book/message-mode.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Note that there are other [message-sending functions](/book/send#message-sending
1515

1616
Mode value | Constant name | Description
1717
---------: | :---------------------------- | -----------
18-
$0$ | <Badge text="Since Tact 1.6 (not released yet)" variant="tip"/> `SendDefaultMode{:tact}` | Ordinary message (default).
18+
$0$ | <Badge text="Since Tact 1.6" variant="tip"/> `SendDefaultMode{:tact}` | Ordinary message (default).
1919
$64$ | `SendRemainingValue{:tact}` | Carry all the remaining value of the inbound message in addition to the value initially indicated in the new message.
2020
$128$ | <Badge text="Use with caution" title="Careless use can result in a total balance loss" variant="danger"/> `SendRemainingBalance{:tact}` | Carry **all the remaining balance** of the current smart contract instead of the value originally indicated in the message.
2121
$1024$ | <Badge text="Since Tact 1.5" variant="tip"/> `SendOnlyEstimateFee{:tact}` | Doesn't send the message, only estimates the forward fees if the [message-sending function](/book/send#message-sending-functions) computes those.

Diff for: docs/src/content/docs/book/send.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ send(SendParameters{
101101
});
102102
```
103103

104-
<p/><Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
104+
<p/><Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
105105

106106
For cheaper on-chain deployments prefer using the [`deploy(){:tact}`](/ref/core-common#deploy) function instead. It computes the address of the contract based on its initial code and data and efficiently composes the resulting message:
107107

Diff for: docs/src/content/docs/book/statements.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ value += 5; // augmented assignment (one of the many, see below)
100100

101101
## Destructuring assignment
102102

103-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
103+
<Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
104104

105105
The destructuring assignment is a concise way to unpack [Structs][s] and [Messages][m] into distinct variables. It mirrors the [instantiation syntax](/book/expressions#instantiation), but instead of creating a new [Struct][s] or [Message][m] it binds every field or some of the fields to their respective variables.
106106

Diff for: docs/src/content/docs/book/structs-and-messages.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ message(0x7362d09c) TokenNotification {
122122

123123
This is useful for cases where you want to handle certain opcodes of a given smart contract, such as [Jetton standard](https://github.com/ton-blockchain/TEPs/blob/master/text/0074-jettons-standard.md). The short-list of opcodes this contract is able to process is [given here in FunC](https://github.com/ton-blockchain/token-contract/blob/main/ft/op-codes.fc). They serve as an interface to the smart contract.
124124

125-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="small"/> A message opcode can be any [compile-time](/ref/core-comptime) expression that evaluates to a positive $32$-bit integer, so the following is also valid:
125+
<Badge text="Available since Tact 1.6" variant="tip" size="small"/> A message opcode can be any [compile-time](/ref/core-comptime) expression that evaluates to a positive $32$-bit integer, so the following is also valid:
126126

127127
```tact
128128
// This Message overwrites its unique id (opcode) with 898001897,

Diff for: docs/src/content/docs/ref/core-advanced.mdx

+6-6
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ let origFee: Int = getOriginalFwdFee(fee, false);
278278

279279
## setGasLimit
280280

281-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
281+
<Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
282282

283283
```tact
284284
fun setGasLimit(limit: Int);
@@ -349,7 +349,7 @@ throw(42); // and this won't fail it
349349

350350
## myCode
351351

352-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
352+
<Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
353353

354354
```tact
355355
fun myCode(): Cell;
@@ -393,7 +393,7 @@ let dataStorageFeeConfig: Cell = getConfigParam(18)!!;
393393

394394
## getSeed
395395

396-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
396+
<Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
397397

398398
```tact
399399
fun getSeed(): Int;
@@ -420,7 +420,7 @@ setSeed(seed); // from now on the results of pseudorandom number generator
420420

421421
## setSeed
422422

423-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
423+
<Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
424424

425425
```tact
426426
fun setSeed(seed: Int);
@@ -448,7 +448,7 @@ setSeed(seed); // from now on the results of pseudorandom number generator
448448

449449
## curLt
450450

451-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
451+
<Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
452452

453453
```tact
454454
fun curLt(): Int;
@@ -473,7 +473,7 @@ nativeRandomize(lt); // equivalent to calling nativeRandomizeLt()
473473

474474
## blockLt
475475

476-
<Badge text="Available since Tact 1.6 (not released yet)" variant="tip" size="medium"/><p/>
476+
<Badge text="Available since Tact 1.6" variant="tip" size="medium"/><p/>
477477

478478
```tact
479479
fun blockLt(): Int;

0 commit comments

Comments
 (0)