diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b2e181ca..894c30614 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,15 +4,44 @@ will be documented here. ## Unreleased +## v0.3.4 Athens + ### Added +- **Experimental**: Three address code format IR for the CFG has been implemented (disabled by default). + [fanyi-zhao](https://github.com/fanyi-zhao). - **Soroban** Work on adding support for [Stellar's Soroban](https://soroban.stellar.org/docs) contracts platforms started, by adding a skeleton that supports the Soroban runtime. [Salaheldin Soliman](https://github.com/salaheldinsoliman) - - The `string.concat()` and `bytes.concat()` builtin functions are supported. [seanyoung](https://github.com/seanyoung) +- **Polkadot**: Compatibility with ink! v5.0 metadata and substrate-contracts-node v0.39.0 +- Implement event selectors [seanyoung](https://github.com/seanyoung) +- Add a feature flag for compiling language server [xermicus](https://github.com/xermicus) +- Parsing the pragma solidity version numbers, making this information available in the downstream + compilation pipeline [seanyoung](https://github.com/seanyoung) ### Changed +- **Polkadot/BREAKING**: Event encoding and topics follow [ink! v5.0](https://use.ink/faq/migrating-from-ink-4-to-5#events-20-1) - **BREAKING** The non-standard extension of concatenating strings using the `+` operator has been removed, use `string.concat()` instead. [seanyoung](https://github.com/seanyoung) - Removed the `--no-log-api-return-codes` compile flag as this is now done by the runtime [xermicus](https://github.com/xermicus) +- **Solana/BREAKING**: Remove balance, transfer, and send builtins from Solana [LucasSte](https://github.com/LucasSte) +- No longer support numbers in octal notation [seanyoung](https://github.com/seanyoung) +- Moved to LLVM version 16 [seanyoung](https://github.com/seanyoung) +- Improve overloaded function call diagnostics: From Solidity 0.6 onwards, overloaded functions or events + resolving to multiple candidates are an error. In earlier versions, the first result is used. + [seanyoung](https://github.com/seanyoung) +- **Polkadot**: Implement the caller_is_root runtime API as a builtin [xermicus](https://github.com/xermicus) + +### Fixed +- Unreachable code, function types with parameter/return names and unknown assembly flags are warnings + instead of errors, matching with solc. [xermicus](https://github.com/xermicus) +- Fixed a bunch of typos in the documentation [divdeploy](https://github.com/divdeploy) +- Clean up the LLD linker context after linking each contract, preventing potential issues when compiling + multiple contracts at once. [xermicus](https://github.com/xermicus) +- Expression statement should be followed by a semicolon, fixing a bug where "_;" was incorrectly parsed + as a variable. [seanyoung](https://github.com/seanyoung) +- Represent type(T) correctly in the AST, fixing various related issues [seanyoung](https://github.com/seanyoung) +- Fix a bug in abi.encodeCall() argument parsing when there is only a single argument [seanyoung](https://github.com/seanyoung) +- Fixed a codegen bug when the RHS of a shift expression is a struct member [PaddyClark0](https://github.com/PaddyClark0) + ## v0.3.3 Atlantis diff --git a/Cargo.toml b/Cargo.toml index 534ab0ac5..5e97e1b7e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solang" -version = "0.3.3" +version = "0.3.4" authors = ["Sean Young ", "Lucas Steuernagel ", "Cyrill Leutwiler "] repository = "https://github.com/hyperledger/solang" documentation = "https://solang.readthedocs.io/" @@ -46,7 +46,7 @@ itertools = "0.12" num-rational = "0.4" indexmap = "2.2" once_cell = "1.19" -solang-parser = { path = "solang-parser", version = "0.3.3" } +solang-parser = { path = "solang-parser", version = "0.3.4" } codespan-reporting = "0.11" phf = { version = "0.11", features = ["macros"] } rust-lapper = { version = "1.1", optional = true } diff --git a/docs/extension.rst b/docs/extension.rst index 19bd77e16..4e410352e 100644 --- a/docs/extension.rst +++ b/docs/extension.rst @@ -75,8 +75,8 @@ Once you have node and npm installed, you can build the extension like so: npm install -g vsce vsce package -You should now have an extension file called ``solang-0.3.3.vsix`` which can be -installed using ``code --install-extension solang-0.3.3.vsix``. +You should now have an extension file called ``solang-0.3.4.vsix`` which can be +installed using ``code --install-extension solang-0.3.4.vsix``. Alternatively, the extension is run from vscode itself. diff --git a/docs/installing.rst b/docs/installing.rst index 750caba93..3268c74c8 100644 --- a/docs/installing.rst +++ b/docs/installing.rst @@ -28,11 +28,11 @@ Option 2: Download binaries There are binaries available on github releases: -- `Linux x86-64 `_ -- `Linux arm64 `_ -- `Windows x64 `_ -- `MacOS intel `_ -- `MacOS arm `_ +- `Linux x86-64 `_ +- `Linux arm64 `_ +- `Windows x64 `_ +- `MacOS intel `_ +- `MacOS 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. @@ -56,7 +56,7 @@ Option 3: Use ghcr.io/hyperledger/solang containers New images are automatically made available on `solang containers `_. -There is a release `v0.3.3` tag and a `latest` tag: +There is a release `v0.3.4` tag and a `latest` tag: .. code-block:: bash diff --git a/solang-parser/Cargo.toml b/solang-parser/Cargo.toml index 03c48d8d5..e1a14b277 100644 --- a/solang-parser/Cargo.toml +++ b/solang-parser/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solang-parser" -version = "0.3.3" +version = "0.3.4" authors = ["Sean Young ", "Lucas Steuernagel ", "Cyrill Leutwiler "] repository = "https://github.com/hyperledger/solang" documentation = "https://solang.readthedocs.io/" diff --git a/vscode/CHANGELOG.md b/vscode/CHANGELOG.md index adfc8871e..d46649974 100644 --- a/vscode/CHANGELOG.md +++ b/vscode/CHANGELOG.md @@ -2,6 +2,17 @@ All notable changes to the "solang" extension will be documented in this file. +## [0.3.4] +- Language server code completion is fully implemented. [chioni16](https://github.com/chioni16) +- Fixed a bug in the renaming functionality. [chioni16](https://github.com/chioni16) +- Fixed common panics. [seanyoung](https://github.com/seanyoung) +- Improve overloaded function call diagnostics: From Solidity 0.6 onwards, + when an overloaded function/event resolves to multiple candidates, this is an error. + In earlier versions, the first result is used. + So, use the pragma solidity version to decide whether to error or not. + [seanyoung](https://github.com/seanyoung) +- Updated dependencies. + ## [0.3.3] - The same version of solang should be used by the language server as on the command line, diff --git a/vscode/package.json b/vscode/package.json index 84aec8c79..0e972c58a 100644 --- a/vscode/package.json +++ b/vscode/package.json @@ -9,7 +9,7 @@ "Govardhan G D ", "Sean Young " ], - "version": "0.3.3", + "version": "0.3.4", "repository": "github.com/hyperledger/solang", "engines": { "vscode": "^1.43.0" @@ -125,4 +125,4 @@ "publisherId": "6c1a8c6d-5493-4493-81d2-e899244f0def", "isPreReleaseVersion": false } -} +} \ No newline at end of file