Skip to content

Commit a47fe3f

Browse files
authored
v0.2.3 Geneva (#1256)
### Added - The Solana units `sol` and `lamports` are now supported, e.g. `10 sol` and `100 lamports`. [seanyoung](https://github.com/seanyoung) - User defined operators are now supported. This is a feature in Ethereum Solidity v0.8.19. [seanyoung](https://github.com/seanyoung) - **Solana**: if a contract uses the `SystemAccount`, `ClockAccount`, or other standard builtin accounts, then this is automatically added to the IDL. [LucasSte](https://github.com/LucasSte) - **Substrate**: The content of the debug buffer is formatted in a human readable way. This vastly improves it's readability, allowing to spot API runtime return codes, runtime errors and debug prints much easier. [salaheldinsoliman](https://github.com/salaheldinsoliman) ### Fixed - Solana: contracts with a seed for the constructor do not require a signer in the Anchor IDL [seanyoung](https://github.com/seanyoung) - Fix panic when lexing ".9" at the beginning of a file. [seanyoung](https://github.com/seanyoung) - Forbid ABI encoding and decoding of recursive types. [xermicus](https://github.com/xermicus) - Treat enums as 8bit uint in constant hashing. [xermicus](https://github.com/xermicus) - Fix compilation failure with -g for the substrate target. [salaheldinsoliman](https://github.com/salaheldinsoliman) - Fixed incorrect ABI encoding for user defined types. [xermicus](https://github.com/xermicus) [seanyoung](https://github.com/seanyoung) - Fixed incorrect ABI encoding for struct with fields of type `bytesN` [xermicus](https://github.com/xermicus) - Fixed incorrect handling of recursive struct fields. [xermicus](https://github.com/xermicus) - Fixed a bug in our Common Subexpression Elimination optimization pass [LucasSte](https://github.com/LucasSte) ### Changed - Math overflow is now always enabled, unless the math happens with an `unchecked { .. }` block. The `--math-overflow` command line option has been removed. [seanyoung](https://github.com/seanyoung) - **Substrate**: the SCALE encoder and decoder now uses a much better implementation written in our CFG intermediate format. [xermicus](https://github.com/xermicus) - **Substrate**: When instantiating a new contract without providing a salt, the salt we be derived from the output of the new `instantiation_nonce` runtime API. [xermicus](https://github.com/xermicus) - Minimal Supported Rust Version is `1.65.0` - No longer silently overwrite contract artifacts, if the same contract is defined more than once in different locations [seanyoung](https://github.com/seanyoung) Signed-off-by: Sean Young <[email protected]>
1 parent 3b03af1 commit a47fe3f

File tree

5 files changed

+33
-14
lines changed

5 files changed

+33
-14
lines changed

CHANGELOG.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,36 @@
22
All notable changes to [Solang](https://github.com/hyperledger/solang/)
33
will be documented here.
44

5-
## Unreleased
5+
## v0.2.3 Geneva
66

77
### Added
88
- The Solana units `sol` and `lamports` are now supported, e.g. `10 sol` and `100 lamports`.
99
[seanyoung](https://github.com/seanyoung)
1010
- User defined operators are now supported. This is a feature in Ethereum Solidity v0.8.19.
1111
[seanyoung](https://github.com/seanyoung)
12+
- **Solana**: if a contract uses the `SystemAccount`, `ClockAccount`, or other standard builtin
13+
accounts, then this is automatically added to the IDL. [LucasSte](https://github.com/LucasSte)
14+
- **Substrate**: The content of the debug buffer is formatted in a human readable way. This vastly improves it's readability, allowing to spot API runtime return codes, runtime errors and debug prints much easier. [salaheldinsoliman](https://github.com/salaheldinsoliman)
1215

1316
### Fixed
1417
- Solana: contracts with a seed for the constructor do not require a signer in the Anchor IDL
1518
[seanyoung](https://github.com/seanyoung)
19+
- Fix panic when lexing ".9" at the beginning of a file. [seanyoung](https://github.com/seanyoung)
20+
- Forbid ABI encoding and decoding of recursive types. [xermicus](https://github.com/xermicus)
21+
- Treat enums as 8bit uint in constant hashing. [xermicus](https://github.com/xermicus)
22+
- Fix compilation failure with -g for the substrate target. [salaheldinsoliman](https://github.com/salaheldinsoliman)
23+
- Fixed incorrect ABI encoding for user defined types. [xermicus](https://github.com/xermicus) [seanyoung](https://github.com/seanyoung)
24+
- Fixed incorrect ABI encoding for struct with fields of type `bytesN` [xermicus](https://github.com/xermicus)
25+
- Fixed incorrect handling of recursive struct fields. [xermicus](https://github.com/xermicus)
26+
- Fixed a bug in our Common Subexpression Elimination optimization pass [LucasSte](https://github.com/LucasSte)
27+
### Changed
28+
- Math overflow is now always enabled, unless the math happens with an `unchecked { .. }` block.
29+
The `--math-overflow` command line option has been removed. [seanyoung](https://github.com/seanyoung)
30+
- **Substrate**: the SCALE encoder and decoder now uses a much better implementation written in our
31+
CFG intermediate format. [xermicus](https://github.com/xermicus)
32+
- **Substrate**: When instantiating a new contract without providing a salt, the salt we be derived from the output of the new `instantiation_nonce` runtime API. [xermicus](https://github.com/xermicus)
33+
- Minimal Supported Rust Version is `1.65.0`
34+
- No longer silently overwrite contract artifacts, if the same contract is defined more than once in different locations [seanyoung](https://github.com/seanyoung)
1635

1736
## v0.2.2 Alexandria
1837

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "solang"
3-
version = "0.2.2"
3+
version = "0.2.3"
44
authors = ["Sean Young <[email protected]>", "Lucas Steuernagel <[email protected]>", "Cyrill Leutwiler <[email protected]>"]
55
homepage = "https://github.com/hyperledger/solang"
66
documentation = "https://solang.readthedocs.io/"
@@ -46,7 +46,7 @@ itertools = "0.10"
4646
num-rational = "0.4"
4747
indexmap = "1.9"
4848
once_cell = "1.17"
49-
solang-parser = { path = "solang-parser", version = "0.2.2" }
49+
solang-parser = { path = "solang-parser", version = "0.2.4" }
5050
codespan-reporting = "0.11"
5151
phf = { version = "0.11", features = ["macros"] }
5252
rust-lapper = "1.1"

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,22 +135,22 @@ Here is a brief description of what we envision for the next versions.
135135

136136
### V0.3
137137

138-
| Milestone | Status |
138+
| Feature | Status |
139139
|----------------------------------------------|-------------|
140140
| Specify values as "1 sol" and "1e9 lamports" | Completed |
141141
| Call Solana's Rust contracts from Solidity | Completed |
142142
| Improvements in overflow checking | Completed |
143143
| Support Solana's Program Derived Addresses | Completed |
144144
| Call Solidity from Solana's Rust contracts | Not started |
145-
| Improve developer experience for Substrate | In progress |
145+
| Improve developer experience for Substrate | Complete |
146146
| Tooling for calls between ink! <> solidity | In progress |
147147
| Support chain extensions for Substrate | Not started |
148148
| Provide CLI for node interactions | Not started |
149149

150150

151151
### V0.4
152152

153-
| Milestone | Status |
153+
| Feature | Status |
154154
|----------------------------------------------------|-------------|
155155
| Improve management over optimization passes | Not started |
156156
| Adopt single static assignment for code generation | Not started |

docs/installing.rst

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ Option 2: Download binaries
2828

2929
There are binaries available on github releases:
3030

31-
- `Linux x86-64 <https://github.com/hyperledger/solang/releases/download/v0.2.2/solang-linux-x86-64>`_
32-
- `Linux arm64 <https://github.com/hyperledger/solang/releases/download/v0.2.2/solang-linux-arm64>`_
33-
- `Windows x64 <https://github.com/hyperledger/solang/releases/download/v0.2.2/solang.exe>`_
34-
- `MacOS intel <https://github.com/hyperledger/solang/releases/download/v0.2.2/solang-mac-intel>`_
35-
- `MacOS arm <https://github.com/hyperledger/solang/releases/download/v0.2.2/solang-mac-arm>`_
31+
- `Linux x86-64 <https://github.com/hyperledger/solang/releases/download/v0.2.3/solang-linux-x86-64>`_
32+
- `Linux arm64 <https://github.com/hyperledger/solang/releases/download/v0.2.3/solang-linux-arm64>`_
33+
- `Windows x64 <https://github.com/hyperledger/solang/releases/download/v0.2.3/solang.exe>`_
34+
- `MacOS intel <https://github.com/hyperledger/solang/releases/download/v0.2.3/solang-mac-intel>`_
35+
- `MacOS arm <https://github.com/hyperledger/solang/releases/download/v0.2.3/solang-mac-arm>`_
3636

3737
Download the file and save it somewhere in your ``$PATH``, for example the bin directory in your home directory. If the
3838
path you use is not already in ``$PATH``, then you need to add it yourself.
@@ -56,7 +56,7 @@ Option 3: Use ghcr.io/hyperledger/solang containers
5656

5757
New images are automatically made available on
5858
`solang containers <https://github.com/hyperledger/solang/pkgs/container/solang>`_.
59-
There is a release `v0.2.2` tag and a `latest` tag:
59+
There is a release `v0.2.3` tag and a `latest` tag:
6060

6161
.. code-block:: bash
6262
@@ -113,7 +113,7 @@ These patches make it possible to generate code for Solana, and fixes
113113
concurrency issues in the lld linker.
114114

115115
You can either download the pre-built libraries from
116-
`github <https://github.com/hyperledger/solang/releases/tag/v0.2.2>`_
116+
`github <https://github.com/hyperledger/solang/releases/tag/v0.2.3>`_
117117
or :ref:`build your own from source <llvm-from-source>`. After that, you need to add the ``bin`` of your
118118
LLVM directory to your path, so that the build system of Solang can find the correct version of LLVM to use.
119119

solang-parser/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "solang-parser"
3-
version = "0.2.3"
3+
version = "0.2.4"
44
authors = ["Sean Young <[email protected]>", "Lucas Steuernagel <[email protected]>", "Cyrill Leutwiler <[email protected]>"]
55
homepage = "https://github.com/hyperledger/solang"
66
documentation = "https://solang.readthedocs.io/"

0 commit comments

Comments
 (0)