Skip to content

Commit

Permalink
Merge pull request #163 from everx-labs/0.76.0
Browse files Browse the repository at this point in the history
0.76.0
  • Loading branch information
IgorKoval authored Jul 18, 2024
2 parents 7f26a06 + 8f26330 commit 7c240c9
Show file tree
Hide file tree
Showing 21 changed files with 620 additions and 509 deletions.
19 changes: 19 additions & 0 deletions API.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ When deploying contracts, you should use the latest released version of Solidity
* [\<TvmBuilder\>.remBitsAndRefs()](#tvmbuilderrembitsandrefs)
* [\<TvmBuilder\>.depth()](#tvmbuilderdepth)
* [\<TvmBuilder\>.store()](#tvmbuilderstore)
* [\<TvmBuilder\>.storeQ()](#tvmbuilderstoreq)
* [\<TvmBuilder\>.storeZeroes(), \<TvmBuilder\>.storeOnes() and \<TvmBuilder\>.storeSame()](#tvmbuilderstorezeroes-tvmbuilderstoreones-and-tvmbuilderstoresame)
* [\<TvmBuilder\>.storeInt()](#tvmbuilderstoreint)
* [\<TvmBuilder\>.storeUint()](#tvmbuilderstoreuint)
Expand Down Expand Up @@ -1087,6 +1088,22 @@ builder.store(a, b, uint(33));
See also: [\<TvmSlice\>.load()](#tvmsliceload).
##### \<TvmBuilder\>.storeQ()
```TVMSolidity
<TvmBuilder>.storeQ(T value) returns (bool ok);
```
Same as [\<TvmBuilder\>.store()](#tvmbuilderstore) but returns the success flag. It does not throw exceptions.
Supported types:
* `uintN`/`intN`/`bytesN`
* `bool`
* `ufixedMxN`/`fixedMxN`
* `address`/`contract`
* `TvmCell`/`bytes`/`string`
* `TvmSlice`/`TvmBuilder`
##### \<TvmBuilder\>.storeZeroes(), \<TvmBuilder\>.storeOnes() and \<TvmBuilder\>.storeSame()
```TVMSolidity
Expand Down Expand Up @@ -2240,6 +2257,8 @@ fixed32x3 v = 1.5;
str = format("{}", v); // str == "1.500"
fixed256x10 vv = -987123.4567890321;
str = format("{}", vv); // str == "-987123.4567890321"
bool flag = true;
str = format("Hello, {}!", flag); // str == "Hello, true!"
```
##### stoi()
Expand Down
78 changes: 39 additions & 39 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

52 changes: 30 additions & 22 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
### 0.76.0 (2024-07-18)

Compiler features:
* Supported `bool` type for function [format](API.md#format).
* Supported [\<TvmBuilder\>.storeQ()](API.md#tvmbuilderstoreq).

Fixed minor bugs.

### 0.75.0 (2024-06-04)

Breaking changes:
Expand Down Expand Up @@ -748,9 +756,9 @@ Bugfixes:
### 0.33 (2020-11-18)

Compiler Features:
* Support ``varInit`` and ``pubkey`` options in ``new`` expression.
* Support `varInit` and `pubkey` options in `new` expression.
* Support optional type in complex lvalue expressions. e.g. `m[11].get()[22] = 33` where `m` is `mapping(uint => optional(uint[]))`.
* Support option `splitDepth` in ``new`` expression and in `tvm.buildStateInit(...)`.
* Support option `splitDepth` in `new` expression and in `tvm.buildStateInit(...)`.

Breaking changes:
* `public` state variable don't create record in *.abi.json in section `data`. Use keyword `static` for that goal. For `public` state variable, getter function is automatically generated. That function can be called locally only.
Expand All @@ -764,36 +772,36 @@ functions are declared as `pure` or `view`.
### 0.32 (2020-11-03)

Compiler Features:
* Support some math function: ``math.divc()`` and ``math.divr()``.
* Support ``tvm.exit()`` and ``tvm.exit1()``.
* Support ``bytes.toSlice()``.
* Support ``tvm.functionId`` and ``tvm.decodeFunctionParams`` for contract constructor.
* Support ``mapping.at``.
* Support api for *SmartContractInfo*: ``tx.timestamp``, ``block.timestamp``.
* Support api for getting info about size of DAG: ``cell.dataSize``, ``slice.dataSize`` and another.
* Support api functions for converting integer or address to a string: ``format()``, ``string(int)`` and ``hexstring``.
* Support api for pseudo-random number generator: ``rnd.next()``,
``rnd.shuffle()`` and another.
* Support some math function: `math.divc()` and `math.divr()`.
* Support `tvm.exit()` and `tvm.exit1()`.
* Support `bytes.toSlice()`.
* Support `tvm.functionId` and `tvm.decodeFunctionParams` for contract constructor.
* Support `mapping.at`.
* Support api for *SmartContractInfo*: `tx.timestamp`, `block.timestamp`.
* Support api for getting info about size of DAG: `cell.dataSize`, `slice.dataSize` and another.
* Support api functions for converting integer or address to a string: `format()`, `string(int)` and `hexstring`.
* Support api for pseudo-random number generator: `rnd.next()`,
`rnd.shuffle()` and another.
* Support function library calls via library name and object.
* Support pragma to specify default message value: ``pragma msgValue``.
* Support api function for converting string into an integer ``stoi()``.
* Support control structure ``repeat`` which repeats block of code arbitrary amount of times.
* Changed mapping api function ``delMin`` to return optional.
* Support pragma to specify default message value: `pragma msgValue`.
* Support api function for converting string into an integer `stoi()`.
* Support control structure `repeat` which repeats block of code arbitrary amount of times.
* Changed mapping api function `delMin` to return optional.

Some little gas optimizations.

### 0.31 (2020-09-16)

Breaking changes:
* The ``now`` returns ``uint32`` value, not ``uint256``
* The ``msg.value`` returns ``uint128`` value, not ``uint256``
* Change round mode for ``math.muldiv()``
* The `now` returns `uint32` value, not `uint256`
* The `msg.value` returns `uint128` value, not `uint256`
* Change round mode for `math.muldiv()`

Compiler Features:
* Optimize runtime code (delete duplicate code and useless checks)
* Add new math operations: ``math.muldivr()`` and ``math.muldivc()``
* Support setting workchain id for deploying contracts via ``new``
* Support ``tvm.buildEmptyData(publicKey)`` used for deploying contracts
* Add new math operations: `math.muldivr()` and `math.muldivc()`
* Support setting workchain id for deploying contracts via `new`
* Support `tvm.buildEmptyData(publicKey)` used for deploying contracts

Bugfixes:
* fixed an issue with overridden functionID
Expand Down
2 changes: 1 addition & 1 deletion compiler/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ include(EthPolicy)
eth_policy()

# project name and version should be set after cmake_policy CMP0048
set(PROJECT_VERSION "0.75.0")
set(PROJECT_VERSION "0.76.0")
# OSX target needed in order to support std::visit
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14")
project(solidity VERSION ${PROJECT_VERSION} LANGUAGES C CXX)
Expand Down
Loading

0 comments on commit 7c240c9

Please sign in to comment.