From de6c8c185ffc6d25ad904f2b184d8a9743125f76 Mon Sep 17 00:00:00 2001 From: Anton Trunov Date: Thu, 30 Nov 2023 14:00:56 +0400 Subject: [PATCH] doc: update CHANGELOG.md (#104) Also, fix some typos and formatting issues --- CHANGELOG.md | 216 +++++++++++++++++++++++++++------------------------ 1 file changed, 113 insertions(+), 103 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 516c39a84..4225bef6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,37 +7,46 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added +- Continuous integration to run Tact tests on Linux, macOS and Windows: PR [#96](https://github.com/tact-lang/tact/pull/96) + +### Fixed +- Struct and message identifiers need to be capitalized: PRs [#81](https://github.com/tact-lang/tact/pull/81) and [#83](https://github.com/tact-lang/tact/pull/83) +- Fixed the signature of the `checkDataSignature` function in `stdlib/std/crypto.tact`: PR [#50](https://github.com/tact-lang/tact/pull/50) +- Show location info for the internal compiler error 'Invalid types for binary operation': PR [#63](https://github.com/tact-lang/tact/pull/63) + +## [1.1.4] - 2023-09-27 + ### Changed - Hacked paths to support builds on Windows ## [1.1.3] - 2023-06-27 -## Added +### Added - bitwise and and or operations - staticaly compile expressions with bitwise operations if possible ## [1.1.2] - 2023-04-27 -## Added +### Added - Add full ABI in bindings ## [1.1.1] - 2023-04-20 -## Fixed +### Fixed - Fix typescript bindings generation for custom key and value serialization formats - Fix missing external messages in bindings ## [1.1.0] - 2023-04-19 -## ⚡️ Breaking changes +### ⚡️ Breaking changes - `reply` is now a method of `Contract` instead of global context and changed it's behaviour if storage reserve is non-zero in contract. - Logical expressions are now calculated differently: `&&` now does not execute right expression if left is `false` and `||` does not execute right expression if left is `true`. Before it was executed in any case. This change is made in attempt to reduce unexpected behaviour. - `OwnableTransferable` is now sends response to the sender. - `overwrites` was renamed to `override` - `Deployable` trait now sends non-bounceable notifications instead of bounceable ones. -## Features - +### Features - `Address` to `Address` maps - Ability to define key and value serializations for maps - `sha256` hashing @@ -54,224 +63,226 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Ability to define empty messages (but not structs) - Some string-related operations are now computed at compile time if possible -## Fixed +### Fixed - Signature of `preloadBits` function - Fixed `readForwardFee` function ## [1.1.0-beta.28] - 2023-04-19 -## Fixed +### Fixed - Fix `func` invocation ## [1.1.0-beta.27] - 2023-04-14 -## Fixed +### Fixed - Remove tact-bindings binary reference ## [1.1.0-beta.26] - 2023-04-14 -## Added +### Added - Ability to define empty messages (but not structs) ## [1.1.0-beta.25] - 2023-04-14 -## Added + +### Added - Support for bounced receivers for message structs ## [1.1.0-beta.24] - 2023-04-13 -## Changed +### Changed - Bounced messages now skipped first 32 bits before passing it to receivers -## Fixed +### Fixed - Passing optional structs as arguments ## [1.1.0-beta.23] - 2023-04-13 -## Changed +### Changed - deploy trait now sends non-bounceable notifications - changed `forward` and added bounceable and init arguments -## Added +### Added - `Contract.notify()` non-bounceable alternative to reply ## [1.1.0-beta.22] - 2023-04-13 -## Added +### Added - `commit` function to commit state changes ## [1.1.0-beta.21] - 2023-04-13 -## Fixed +### Fixed - Work-around func `0.4.3` bug with pragma processing - Fix external messages with arguments type checking ## [1.1.0-beta.20] - 2023-04-11 -## Changed +### Changed - Upgrade `func` to `0.4.3` ## [1.1.0-beta.19] - 2023-04-10 -## Fixed +### Fixed - Fix bouncing unknown messages ## [1.1.0-beta.18] - 2023-04-10 -## Added +### Added - `FactoryDeployable` trait for deploying from factory contract ## [1.1.0-beta.17] - 2023-04-10 -## Added +### Added - Abstract functions - Abstract and virtual constants in traits -## Changed +### Changed - Rename `overrides` to `override` -- Updated ownership transfering methods +- Updated ownership transferring methods -## Removed +### Removed - Unused `public` modifier ## [1.1.0-beta.16] - 2023-04-09 -## Changed +### Changed - `reply` now in contract instead of global context ## [1.1.0-beta.15] - 2023-04-09 -## Added +### Added - `asCell` to maps ## [1.1.0-beta.14] - 2023-04-09 -## Fixed +### Fixed - Fix `dnsResolveWallet` compilation error ## [1.1.0-beta.13] - 2023-04-09 -## Added +### Added - `dns` library - map key and value serialization formats + ## [1.1.0-beta.12] - 2023-04-08 -## Fixed +### Fixed - Upgrade decompiler to a `@tact-lang/opcodes@0.0.13` ## [1.1.0-beta.11] - 2023-04-08 -## Fixed +### Fixed - Signature of `preloadBits` function ## [1.1.0-beta.10] - 2023-04-08 -## Added +### Added - `sha256` function to compute sha256 hash of a text or byte string ## [1.1.0-beta.9] - 2023-04-02 -## Added +### Added - Opt-in external messages support ## [1.1.0-beta.8] - 2023-04-02 -## Fixed +### Fixed - Missing implementation of `Address` to `Address` maps ## [1.1.0-beta.7] - 2023-03-28 -## Added +### Added - `inline` modifier for functions to inline them into the caller -## Fixed +### Fixed - Fix missing `method_id` in `get_abi_ipfs` and `lazy_deployment_completed` ## [1.1.0-beta.6] - 2023-03-27 -## Changed +### Changed - Optimization of gas usage of low level primitives ## [1.1.0-beta.5] - 2023-03-25 -## Changed +### Changed - Optimization of `String.asComment()` that tries to compute it compile time if possible ## [1.1.0-beta.4] - 2023-03-23 -## Added +### Added - Ability to compare cells -## Fixed +### Fixed - Fixed contract crash when equality check involving nullable variables -## Changed +### Changed - Change logic of `&&` and `||`. Now second argument is not calculated when first argument is `false` or `true` respectively. ## [1.1.0-beta.3] - 2023-03-22 -## Added +### Added - `emit` function to emit events -## Fixed +### Fixed - Fixed possible inconsistent behaviour when calling mutating get methods from inside of the contract - Fixed regression of order of functions in generated files ## [1.1.0-beta.2] - 2023-03-22 -## Changed +### Changed - Tact now emits func in multiple files, optimized not only for blockchain, but also for human ## [1.1.0-beta.1] - 2023-03-20 -## Fixed +### Fixed - Some functions for deep structures with optionals not emitted - Crash in bindings generator on boolean value in dictionary ## [1.1.0-beta.0] - 2023-03-14 -## Fixed +### Fixed - `overwrites` -> `override` - Invalid `check` function error generation - Error message for `address(0)` ## [1.0.0] - 2023-03-08 -## Added +### Added - `sender()` function to get message sender address ## [1.0.0-rc.13] - 2023-03-08 -## Changed +### Changed - Upgrade `func` to `0.4.2` -## Fixed +### Fixed - Windows paths support ## [1.0.0-rc.12] - 2023-03-03 -## Fixed +### Fixed - `pow` is now compile-only function -## Changed +### Changed - Use new FunC wasm bundle ## [1.0.0-rc.11] - 2023-03-02 -## Added +### Added - exported `check` function for language server support ## [1.0.0-rc.10] - 2023-03-02 -## Changed +### Changed - Contracts now can be deployed only to the basic workchain unless `masterchain` set `true` - Checking field initialisation in init function ## [1.0.0-rc.9] - 2023-03-01 -## Changed +### Changed - Contracts now work only with basic workchain. To enable masterchain support set `masterchain: true` in `tact.conf.json` -## Added +### Added - `pow` function for exponentiation - `address()` compile-time function for creating addresses from strings - `cell()` compile-time function for creating cells from base64 strings @@ -280,69 +291,69 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [1.0.0-rc.8] - 2023-02-27 -## Added +### Added - `logger` interface to programmatic API ## [1.0.0-rc.7] - 2023-02-27 -## Added +### Added - `verify` function to verify compiled package ## [1.0.0-rc.6] - 2023-02-26 -## Fixed +### Fixed - Fixing npm exports ## [1.0.0-rc.5] - 2023-02-26 -## Fixed +### Fixed - Fixing npm exports for typescript ## [1.0.0-rc.4] - 2023-02-26 -## Fixed +### Fixed - Fixing npm exports for typescript ## [1.0.0-rc.3] - 2023-02-26 -## Fixed +### Fixed - Fixed browser/node typings and exports - Fixed browser environment execution ## [1.0.0-rc.2] - 2023-02-26 -## Fixed +### Fixed - Fixed missing `mkdirp` dependency ## [1.0.0-rc.1] - 2023-02-26 -## Fixed +### Fixed - Fixed cli command ## [1.0.0-rc.0] - 2023-02-26 -## Added +### Added - `@ton-lang/compiler/node` to invoke compiler from node similar how cli works - `@ton-lang/compiler/browser` to invoke compiler from browser -## Removed +### Removed - Removed jetton library from stdlib. It would be re-introduced after 1.0 version with more thought put into it. ## [0.10.1] - 2023-02-23 -## Added +### Added - Display line and column numbers in error messages to be able to navigate to the error in the editor -## Fixed +### Fixed - Execution order of struct and message fields - `initOf` argument type checks ## [0.10.0] - 2023-02-23 -## Changed +### Changed - Tact contracts are now [Argument-addressable](https://docs.tact-lang.org/evolution/OTP-005) meaning that they depend on init arguments and code hash only. Init function is now called when first valid message is received. - Refactoring of allocator -- Moving contract's load function to the begining of the execution +- Moving contract's load function to the beginning of the execution - Moving contract's save function to the end of the execution - moving `debug` flag from `experimental` to `parameters` in `tact.config.json` - Unknown fields in config are now considered an error @@ -350,38 +361,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Typescript bindings are now working in browser and doesn't have `ton-emulator` dependency - `map` syntax now uses `<>` instead of `[]` for future compatibility with generics -## Added +### Added - Allow `Builder` type as a field type similar to `Cell` and `Slice` - Allow `String` type as a field type ## [0.9.3] - 2023-02-19 -## Added +### Added - Error codes in reports - Client-friendly typescript bindings -## Changed +### Changed - Change repository locations ## [0.9.2] - 2023-02-05 -## Added +### Added - `emptyMap()` for creating empty maps - Allowing assigning `null` value to a map variable (same as calling `emptyMap()`) ## [0.9.1] - 2023-02-03 -## Changed +### Changed - Update `dump` function to handle booleans and strings, better type checking or arguments - Report `org.ton.debug.v0` interface if debug mode is enabled - Update bindings generator to support `ton-emulator >= v2.1.0` ## [0.9.0] - 2023-02-02 -## Added +### Added - Importing `func` files -## Changed +### Changed - Upgrade `func` to `0.4.1` - Enforce `func` version in generated files - Enable critical pragmas by default @@ -389,66 +400,67 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [0.8.11] - 2023-01-28 -## Fixed +### Fixed - Optional `Address` fields in typescript bindings -## Added +### Added - `Address.asSlice` for manual address parsing - `@stdlib/content` library with `createOffchainContent` functions -## [0.8.10] - 2023-01-27 +### [0.8.10] - 2023-01-27 + ## Fixed - `>>` and `<<` operations - Type checking of struct constructors ## [0.8.9] - 2023-01-25 -## Fixed +### Fixed - Fix missing func compiler in distributive ## [0.8.8] - 2023-01-25 -## Added +### Added - TextMate Grammar for syntax highlighting -## Changed -- Embedd `func` compiler to package +### Changed +- Embed `func` compiler to package - Better builder types - Moved docs to `ton-docs` repository ## [0.8.7] - 2023-01-13 -## Added +### Added - `beginTailString` and `beginStringFromBuilder` for starting a `StringBuilder` - `Slice.asString` for converting slice to a `String` (without checks of contents) ## [0.8.6] - 2023-01-10 -## Fixed +### Fixed - Fixing passing non-nullable type as second argument to map's `set` operation -## Changed +### Changed - New `2022.v12` func compiler ## [0.8.5] - 2023-01-09 -## Changed +### Changed - Improve gas usage in `storeBool` ## [0.8.4] - 2023-01-09 -## Added +### Added -`newAddress` function to create a new address from chain and hash -`getConfigParam` to get system configuration ## [0.8.3] - 2023-01-09 -## Fixed +### Fixed - Deep contract dependencies ## [0.8.2] - 2023-01-08 -## Added +### Added - `loadAddress` in `Slice` ## [0.8.1] - 2023-01-07 @@ -457,48 +469,48 @@ Fixing missing NPM release ## [0.8.0] - 2023-01-07 -## Changed +### Changed - Changed message id algorithm to the one based on type signatures instead of tlb -## Added +### Added - Dictionaries in typescript bindings - Introduced packaging compilation step that packages a contract to a single package that can be deployed in predictable way. - `tact-bindings` to build bindings to non-tact contracts ## [0.7.1] - 2023-01-04 -## Fixed +### Fixed - Assignability type checks ## [0.7.0] - 2023-01-04 -## Added +### Added - `toCell` to all structs and messages - restored disassembler as part of a compilation flow - `typescript` bindings parser of structs and messages -## Removed +### Removed - `abi.pack_cell` and `abi.pack_slice` -## Changed +### Changed - Updated codegen to prefix function names with a `$` to avoid clashing with system functions - `random` and `randomInt` that are correctly initialized on first use unlike native one - Changed the way get and init methods expect their arguments and return values to match func-like primitives -## Fixed +### Fixed - non-nullable value could break the nullable variable memory representation ## [0.6.0] - 2023-01-03 -## Changed +### Changed - Large bindings generator refactoring to match new `ton-core` and `ton-emulator` packages -## Added +### Added - `Deployable` trait in `@stdlib/deploy` ## [0.5.0] - 2022-12-23 -## Added +### Added - Constants in contracts - Global constants @@ -506,7 +518,7 @@ Fixing missing NPM release - Added `emptyCell` and `emptySlice` helpers - Added jettons example -## Changed +### Changed - `require` now accepts two arguments, second one must be a string literal that has error message. This error message then will be exported to ABI - Optional `Address` fields are not encoded using native representation @@ -522,7 +534,6 @@ Fixing missing NPM release ## [0.3.0] - 2022-12-22 ### Added - - `String` literals and variables - `Int.toString()` and `Int.toFloatString()` - `StringBuilder` for gas-efficient string building @@ -545,7 +556,6 @@ Fixing missing NPM release - Renamed `receiveBounced` to `bounced` ### Fixed - - Fixing importing tact with providing extension, now `import "./lib";` and `import "./lib.tact";` are equivalent. - Fixing extension function generation - Fixing clashing of variable names with func primitives and global functions @@ -555,6 +565,6 @@ Fixing missing NPM release ## [0.2.0] -# Added +### Added - `supported_interfaces` TEP support. TACT now automatically builds a list of supported interfaces of a contract - `IPFS`-based ABI reporting. TACT now automatically calculates and embeds ABI hash into smart contract and prepares a file to upload to IPFS.