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.3: Atlantis #1573

Merged
merged 5 commits into from
Oct 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
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
linux-x86-64:
name: Linux x86-64
runs-on: solang-ubuntu-latest
container: ghcr.io/hyperledger/solang-llvm:ci-5
container: ghcr.io/hyperledger/solang-llvm:ci-6
steps:
- name: Checkout sources
uses: actions/checkout@v3.1.0
Expand All @@ -33,7 +33,7 @@ jobs:
name: Linux arm64
runs-on: linux-arm64
if: ${{ github.repository_owner == 'hyperledger' }}
container: ghcr.io/hyperledger/solang-llvm:ci-5
container: ghcr.io/hyperledger/solang-llvm:ci-6
steps:
- name: Checkout sources
uses: actions/checkout@v3.1.0
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
linux-x86-64:
name: Linux x86-64
runs-on: solang-ubuntu-latest
container: ghcr.io/hyperledger/solang-llvm:ci-5
container: ghcr.io/hyperledger/solang-llvm:ci-6
env:
RUSTFLAGS: -C instrument-coverage -C llvm-args=--instrprof-atomic-counter-update-all --cfg=coverage --cfg=trybuild_no_target
CARGO_INCREMENTAL: 0
Expand Down Expand Up @@ -109,7 +109,7 @@ jobs:
name: Linux Arm
runs-on: linux-arm64
if: ${{ github.repository_owner == 'hyperledger' }}
container: ghcr.io/hyperledger/solang-llvm:ci-5
container: ghcr.io/hyperledger/solang-llvm:ci-6
steps:
- name: Checkout sources
uses: actions/checkout@v3
Expand Down Expand Up @@ -252,7 +252,7 @@ jobs:
anchor:
name: Anchor Integration test
runs-on: solang-ubuntu-latest
container: ghcr.io/hyperledger/solang-llvm:ci-5
container: ghcr.io/hyperledger/solang-llvm:ci-6
needs: linux-x86-64
steps:
- name: Checkout sources
Expand Down Expand Up @@ -304,7 +304,7 @@ jobs:
solana:
name: Solana Integration test
runs-on: solang-ubuntu-latest
container: ghcr.io/hyperledger/solang-llvm:ci-5
container: ghcr.io/hyperledger/solang-llvm:ci-6
needs: linux-x86-64
steps:
- name: Checkout sources
Expand Down Expand Up @@ -475,7 +475,7 @@ jobs:
coverage:
runs-on: ubuntu-latest
name: Coverage report
container: ghcr.io/hyperledger/solang-llvm:ci-5
container: ghcr.io/hyperledger/solang-llvm:ci-6
needs: [linux-x86-64, solana, anchor, polkadot, polkadot-subxt, vscode]
env:
RUSTFLAGS: -C instrument-coverage -C llvm-args=--instrprof-atomic-counter-update-all --cfg=coverage --cfg=trybuild_no_target
Expand Down
40 changes: 40 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,46 @@
All notable changes to [Solang](https://github.com/hyperledger/solang/)
will be documented here.

## v0.3.3 Atlantis

This release improves the Solana developer experience, since now required
accounts can be specified using annotations. For Polkadot, compatibility with
Ethereum Solidity has been increased further, it is now possible to write
[EIP-1967](https://eips.ethereum.org/EIPS/eip-1967) compatible proxy contracts.
There are many fixes all over the code base.

### Added
- **Solana** the required accounts for instructions can now be specified using function annotations. [LucasSte](https://github.com/LucasSte)
```
contract Foo {
@account(oneAccount)
@signer(mySigner)
@mutableAccount(otherAccount)
@mutableSigner(otherSigner)
function bar() external returns (uint64) {}
}
```
- The language server can now format Solidity source code using the `forge-fmt` crate. [chioni16](https://github.com/chioni16)
- The langauge server can now do go references, go to implementation, and go to type
definition. [chioni16](https://github.com/chioni16)
- **Polkadot** `Panic` errors can now be caught in try-catch statements [xermicus](https://github.com/xermicus)
- **Polkadot** custom errors are now supported [xermicus](https://github.com/xermicus)
- **Polkadot** now supporting the `address.code` builtin [xermicus](https://github.com/xermicus)

seanyoung marked this conversation as resolved.
Show resolved Hide resolved
### Fixed
- **Solana** the data field of AccountInfo can now be modified. [LucasSte](https://github.com/LucasSte)
- The vscode extension now uses the solang binary in the path, if available. [seanyoung](https://github.com/seanyoung)
- Fixed a bug in the ABI encoding of dynamic arrays. [xermicus](https://github.com/xermicus)
- Fixed a bug where loading from a storage struct member was not considered a storage read.
[xermicus](https://github.com/xermicus) [seanyoung](https://github.com/seanyoung)
- Fixed a compiler crash caused by chained assignments like `return a = b`. [xermicus](https://github.com/xermicus)
- Variables declared in the return parameters no longer ignore the `storage` location. [xermicus](https://github.com/xermicus)

seanyoung marked this conversation as resolved.
Show resolved Hide resolved
### Changed
- **BREAKING:** **Solana** the contract Solidity type can no longer be used. This type
used to represent a single address, but this does not make sense as there are many
accounts associated with a contract call. [LucasSte](https://github.com/LucasSte)

## v0.3.2 Brasília

The language server is much improved, and many fixes all over.
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ itertools = "0.11"
num-rational = "0.4"
indexmap = "2.0"
once_cell = "1.18"
solang-parser = { path = "solang-parser", version = "0.3.2" }
solang-parser = { path = "solang-parser", version = "0.3.3" }
codespan-reporting = "0.11"
phf = { version = "0.11", features = ["macros"] }
rust-lapper = "1.1"
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM ghcr.io/hyperledger/solang-llvm:ci-5 as builder
FROM ghcr.io/hyperledger/solang-llvm:ci-6 as builder

COPY . src
WORKDIR /src/stdlib/
Expand Down
24 changes: 12 additions & 12 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.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>`_
- `Linux x86-64 <https://github.com/hyperledger/solang/releases/download/v0.3.3/solang-linux-x86-64>`_
- `Linux arm64 <https://github.com/hyperledger/solang/releases/download/v0.3.3/solang-linux-arm64>`_
- `Windows x64 <https://github.com/hyperledger/solang/releases/download/v0.3.3/solang.exe>`_
- `MacOS intel <https://github.com/hyperledger/solang/releases/download/v0.3.3/solang-mac-intel>`_
- `MacOS arm <https://github.com/hyperledger/solang/releases/download/v0.3.3/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.2` tag and a `latest` tag:
There is a release `v0.3.3` tag and a `latest` tag:

.. code-block:: bash

Expand Down Expand Up @@ -126,8 +126,8 @@ Linux
~~~~~

A pre-built version of LLVM, specifically configured for Solang, is available at
`<https://github.com/hyperledger/solang-llvm/releases/download/llvm15-1/llvm15.0-linux-x86-64.tar.xz>`_ for x86 processors
and at `<https://github.com/hyperledger/solang-llvm/releases/download/llvm15-1/llvm15.0-linux-arm64.tar.xz>`_ for ARM.
`<https://github.com/hyperledger/solang-llvm/releases/download/llvm15-2/llvm15.0-linux-x86-64.tar.xz>`_ for x86 processors
and at `<https://github.com/hyperledger/solang-llvm/releases/download/llvm15-2/llvm15.0-linux-arm64.tar.xz>`_ for ARM.
After downloading, untar the file in a terminal and add it to your path.

.. code-block:: bash
Expand All @@ -139,7 +139,7 @@ Windows
~~~~~~~

A pre-built version of LLVM, specifically configured for Solang, is available at
`<https://github.com/hyperledger/solang-llvm/releases/download/llvm15-1/llvm15.0-win.zip>`_.
`<https://github.com/hyperledger/solang-llvm/releases/download/llvm15-2/llvm15.0-win.zip>`_.

After unzipping the file, add the bin directory to your path.

Expand All @@ -151,8 +151,8 @@ Mac
~~~

A pre-built version of LLVM for intel macs, is available at
`<https://github.com/hyperledger/solang-llvm/releases/download/llvm15-1/llvm15.0-mac-intel.tar.xz>`_ and for arm macs there is
`<https://github.com/hyperledger/solang-llvm/releases/download/llvm15-1/llvm15.0-mac-arm.tar.xz>`_. After downloading,
`<https://github.com/hyperledger/solang-llvm/releases/download/llvm15-2/llvm15.0-mac-intel.tar.xz>`_ and for arm macs there is
`<https://github.com/hyperledger/solang-llvm/releases/download/llvm15-2/llvm15.0-mac-arm.tar.xz>`_. After downloading,
untar the file in a terminal and add it to your path like so:

.. code-block:: bash
Expand All @@ -171,7 +171,7 @@ you may need to consult. `Ninja <https://ninja-build.org>`_ is necessary for bui

.. code-block:: bash

git clone --depth 1 --branch solana-rustc/15.0-2022-08-09 https://github.com/solana-labs/llvm-project
git clone --depth 1 --branch solana-rustc/15.0-2022-12-07 https://github.com/solana-labs/llvm-project
cd llvm-project

Now run cmake to create the makefiles. Replace the *installdir* argument to ``CMAKE_INSTALL_PREFIX`` with a directory where you would like to have LLVM installed, and then run the build:
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.2"
version = "0.3.3"
authors = ["Sean Young <sean@mess.org>", "Lucas Steuernagel <lucas.tnagel@gmail.com>", "Cyrill Leutwiler <bigcyrill@hotmail.com>"]
homepage = "https://github.com/hyperledger/solang"
documentation = "https://solang.readthedocs.io/"
Expand Down
8 changes: 6 additions & 2 deletions vscode/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,12 @@
"description": "Use the solang compiler for syntax highlighting, compiler warnings and errors, and hovers",
"publisher": "solang",
"icon": "hl_solang.png",
"author": "Shivam Balikondwar <shivambalikondwar@icloud.com>",
"version": "0.3.2",
"contributors": [
"Shivam Balikondwar <shivambalikondwar@icloud.com>",
"Govardhan G D <chioni1620@gmail.com>",
"Sean Young <sean@mess.org>"
],
"version": "0.3.3",
"repository": "github.com/hyperledger/solang",
"engines": {
"vscode": "^1.43.0"
Expand Down