Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.3.2 Brasília #1496

Merged
merged 1 commit into from
Aug 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 33 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,43 @@
All notable changes to [Solang](https://github.com/hyperledger/solang/)
will be documented here.

## Unreleased
## v0.3.2 Brasília

The language server is much improved, and many fixes all over.

### Added
- Go to definition is now implemented in the language server. [chioni16](https://github.com/chioni16)
- The parser has been updated to be compatible with Ethereum Solidity v0.8.21. [seanyoung](https://github.com/seanyoung)
seanyoung marked this conversation as resolved.
Show resolved Hide resolved
- **Polkadot** Support for runtimes built with on `polkadot-v1.0.0`

### Fixed
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I fixed the overflowing problem in the tranfer function and avoided overwriting the signer and writer flags. Are these bug fixes worth mentioning?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changelog should really list things which are user-affecting, in a consumable way. This is a security change, so yes this can be mentioned.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added an entry for these two items

- **breaking** Resolving import paths now matches solc more closely, and only resolves relative
paths when specified as `./foo` or `../foo`. [seanyoung](https://github.com/seanyoung)
- **Solana** The `lamports` and `data` fields of `tx.accounts` can be modified again. [LucasSte](https://github.com/LucasSte)
- **Solana** The `address.transfer()` and `address.send()` functions no longer change any balances
in the error case if there was an overflow (e.g. not enough balance).
[LucasSte](https://github.com/LucasSte)
- **Solana** When collecting the required accounts, ensure that the writer and signer bits are set
correctly if the same account is used multiple times. [LucasSte](https://github.com/LucasSte)
- It is not longer necessary to save a Solidity file, in order for the language server to pick
up changes to the file. [chioni16](https://github.com/chioni16)
- The negate operator `-` now checks for overflow at runtime, and other math overflow fixes.
seanyoung marked this conversation as resolved.
Show resolved Hide resolved
[seanyoung](https://github.com/seanyoung)
- Fixed a bug where accessing the function selector of virtual functions might cause a compiler panic. [xermicus](https://github.com/xermicus)
- Fixed a bug where the strength reduce optimization pass removed overflow checks on optimized multiplications. [xermicus](https://github.com/xermicus)
- Fixed a bug where external function variables were not marked as `read` when they were called by the semantic analyzer, which could lead to the external function call being eliminated spuriously. [xermicus](https://github.com/xermicus)
seanyoung marked this conversation as resolved.
Show resolved Hide resolved
- Fixed a bug in `try-catch` where a failed transfer trapped the contract instead of handling it in a catch all block. [xermicus](https://github.com/xermicus)

### Changed
- The Substrate target has been renamed to Polkadot. [xermicus](https://github.com/xermicus)
- **Polkadot** `assert()` and `require()` is now implemented as a transction revert, rather
than a trap. The error data is returned, and encoded the same as on Ethereum. Error data is now
passed to the calling contract, all the way up the call stack. [xermicus](https://github.com/xermicus)
- **Polkadot** constructor can be non-payable. [xermicus](https://github.com/xermicus)
seanyoung marked this conversation as resolved.
Show resolved Hide resolved
- Storage variables are now always written to, regardless whether the contract does read them or not.
Prior behavior was to not write to storage variables if they are not read, which can remove wanted
side effects, because unused storage variables may be used in future versions of the contract. [xermicus](https://github.com/xermicus)
- **Solana** seeds can now be of type `address` or `bytesN`, in addition to `bytes`. [seanyoung](https://github.com/seanyoung)

## v0.3.1 Göttingen

Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "solang"
version = "0.3.1"
version = "0.3.2"
authors = ["Sean Young <[email protected]>", "Lucas Steuernagel <[email protected]>", "Cyrill Leutwiler <[email protected]>"]
homepage = "https://github.com/hyperledger/solang"
documentation = "https://solang.readthedocs.io/"
Expand Down
12 changes: 6 additions & 6 deletions docs/installing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ Option 2: Download binaries

There are binaries available on github releases:

- `Linux x86-64 <https://github.com/hyperledger/solang/releases/download/v0.3.1/solang-linux-x86-64>`_
- `Linux arm64 <https://github.com/hyperledger/solang/releases/download/v0.3.1/solang-linux-arm64>`_
- `Windows x64 <https://github.com/hyperledger/solang/releases/download/v0.3.1/solang.exe>`_
- `MacOS intel <https://github.com/hyperledger/solang/releases/download/v0.3.1/solang-mac-intel>`_
- `MacOS arm <https://github.com/hyperledger/solang/releases/download/v0.3.1/solang-mac-arm>`_
- `Linux x86-64 <https://github.com/hyperledger/solang/releases/download/v0.3.2/solang-linux-x86-64>`_
- `Linux arm64 <https://github.com/hyperledger/solang/releases/download/v0.3.2/solang-linux-arm64>`_
- `Windows x64 <https://github.com/hyperledger/solang/releases/download/v0.3.2/solang.exe>`_
- `MacOS intel <https://github.com/hyperledger/solang/releases/download/v0.3.2/solang-mac-intel>`_
- `MacOS arm <https://github.com/hyperledger/solang/releases/download/v0.3.2/solang-mac-arm>`_

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

New images are automatically made available on
`solang containers <https://github.com/hyperledger/solang/pkgs/container/solang>`_.
There is a release `v0.3.1` tag and a `latest` tag:
There is a release `v0.3.2` tag and a `latest` tag:

.. code-block:: bash

Expand Down
2 changes: 1 addition & 1 deletion solang-parser/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "solang-parser"
version = "0.3.1"
version = "0.3.2"
authors = ["Sean Young <[email protected]>", "Lucas Steuernagel <[email protected]>", "Cyrill Leutwiler <[email protected]>"]
homepage = "https://github.com/hyperledger/solang"
documentation = "https://solang.readthedocs.io/"
Expand Down
Loading