Tags: Jatin020403/solang
Tags
Release v0.2.1 (hyperledger-solang#1120) # v0.2.1: Rio ## Added - The Anchor IDL data structure is now generated for every Solana contract, although the actual IDL json file is not yet saved. [LucasSte](https://github.com/LucasSte) ## Changed - The Solana target now utilizes eight byte Anchor discriminators for function dispatch instead of the four byte Ethereum selectors. [LucasSte](https://github.com/LucasSte) - The deployment of contracts on Solana now follows the same scheme as Anchor. [seanyoung](https://github.com/seanyoung) - Compares between rational literals and integers are not allowed. [seanyoung](https://github.com/seanyoung) - Overriding the function selector value is now done using the `@selector([1, 2, 3, 4])` syntax, and the old syntax `selector=hex"12345678"` has been removed. - `msg.sender` was not implemented correctly on Solana, and [has now been removed](https://solang.readthedocs.io/en/latest/targets/solana.html#msg-sender-solana). [seanyoung](https://github.com/seanyoung) - Solang now uses LLVM 14. [LucasSte](https://github.com/LucasSte) ## Fixed - Many bugs have been fixed by [seanyoung](https://github.com/seanyoung), [LucasSte](https://github.com/LucasSte) and [xermicus](https://github.com/xermicus) Signed-off-by: Lucas Steuernagel <lucas.tnagel@gmail.com>
Release v0.1.13: Genoa (hyperledger-solang#1016) v0.1.13 Genoa ### Changed - Introduce sub-commands to the CLI. Now we have dedicated sub-commands for `compile`, `doc`, `shell-completion` and the `language-server`, which makes for a cleaner CLI. [seanyoung](https://github.com/seanyoung) - On Solana, emitted events are encoded with Borsh encoding following the Anchor format. [LucasSte](https://github.com/LucasSte) - The ewasm target has been removed, since ewasm is not going to implemented on Ethereum. The target has been reused for an new EVM target, which is not complete yet. [seanyoung](https://github.com/seanyoung) - Substrate: Concrete contracts must now have at least one public function. A public function is in a contract, if it has public or external functions, if it has a receive or any fallback function or if it has public storage items (those will yield public getters). This aligns solang up with `ink!`. [xermicus](https://github.com/xermicus) ### Added - Solana v1.11 is now supported. [seanyoung](https://github.com/seanyoung) - On Solana, programs now use a custom heap implementation, just like on Substrate. As result, it is now possible to `.push()` and `.pop()` on dynamic arrays in memory. [seanyoung](https://github.com/seanyoung) - Arithmetic overflow tests are implemented for all integer widths, [salaheldinsoliman](https://github.com/salaheldinsoliman) - Add an NFT example for Solana [LucasSte](https://github.com/LucasSte) - Add a wrapper for the Solana System Program [LucasSte](https://github.com/LucasSte) - The selector for functions can be overriden with the `selector=hex"abcd0123"` syntax. [seanyoung](https://github.com/seanyoung) - Shell completion is available using the `solang shell-completion` subcommand. [xermicus](https://github.com/xermicus) - Add support for the `create_program_address()` and `try_find_program_address()` system call on Solana [seanyoung](https://github.com/seanyoung) - Substrate: The `print()` builtin is now supported and will write to the debug buffer. Additionally, error messages from the `require` statements will now be written to the debug buffer as well. The Substrate contracts pallet prints the contents of the debug buffer to the console for RPC ("dry-run") calls in case the `runtime::contracts=debug` log level is configured. [xermicus](https://github.com/xermicus) ### Fixed - DocComments `/** ... */` are now permitted anywhere. [seanyoung](https://github.com/seanyoung) - Function calls to contract functions via contract name are no longer possible, except for functions of base contracts. [xermicus](https://github.com/xermicus) Signed-off-by: Sean Young <sean@mess.org>
Submodules are now required to run tests (hyperledger-solang#866) Signed-off-by: Sean Young <sean@mess.org>
Nuremberg release ## [0.1.11] ### Added - Added support for Solidity user types - Support `using` syntax on file scope - Support binding functions with `using` - Implemented parsing and semantic analysis of yul (code generation is to follow) - The language server uses the `--import` and `--importmap` arguments - On Solana, it is possible to set the accounts during CPI using the `accounts:` call argument. ### Fixed - Fixed associativity of the power operator - A huge amount of fixes improving compatibility with solc Signed-off-by: Sean Young <sean@mess.org>
Barcelona Release Added - On Solana, the accounts that were passed into the transactions are listed in the `tx.accounts` builtin. There is also a builtin struct `AccountInfo` - A new common subexpression elimination pass was added, thanks to [LucasSte](hyperledger-solang#550) - A graphviz dot file can be generated from the ast, using `--emit ast-dot` - Many improvements to the solidity parser, and the parser has been spun out in it's own create `solang-parser`. Changed - Solang now uses LLVM 13.0, based on the [Solana LLVM tree](https://github.com/solana-labs/llvm-project/) - The ast datastructure has been simplified. - Many bugfixes across the entire tree. Signed-off-by: Sean Young <sean@mess.org>
Move to llvm 13.0 Signed-off-by: Sean Young <sean@mess.org>
Lisbon Release Added - Added support for solc import mapppings using `--importmap` - Added support for Events on Solana - `msg.data`, `msg.sig`, `msg.value`, `block.number`, and `block.slot` are implemented for Solana - Implemented balance transfers using `.send()` and `.transfer()` on Solana - Implemented retrieving account balances on Solana - Verify ed25519 signatures with `signatureVerify()` on Solana - Added support for Rational numbers - The address type and value type can changed using `--address-length` and `--value-length` command line arguments (for Substrate only) Changed - Solana now requires v1.8.1 or later - On Solana, the return data is now provided in the program log. As a result, RPCs are now are now supported. - On the solang command line, the target must be specified. - The Solana instruction now includes a 64 bit value field - Many fixes to the parser and resolver, so solidity compatibility is much improved, thanks to [sushi-shi](https://github.com/hyperledger-labs/solang/pulls?q=is%3Apr+author%3Asushi-shi+is%3Aclosed). Removed - The Sawtooth Sabre target has been removed. - The generic target has been removed. Signed-off-by: Sean Young <sean@mess.org>
Uniswap works for Solana and Substrate Added - Added a strength reduce pass to eliminate 256/128 bit multiply, division, and modulo where possible. - Visual Studio Code extension can download the Solang binary from github releases, so the user is not required to download it themselves - The Solana target now has support for arrays and mapping in contract storage - The Solana target has support for the keccak256(), ripemd160(), and sha256() builtin hash functions. - The Solana target has support for the builtins this and block.timestamp. - Implement abi.encodePacked() for the ethereum abi encoder - The Solana target now compiles all contracts to a single `bundle.so` BPF program. - Any unused variables, events, or contract variables are now detected and warnings are given, thanks to [LucasSte](hyperledger-solang#429) - The `immutable` attribute on contract storage variables is now supported. - The `override` attribute on public contract storage variables is now supported. - The `unchecked {}` code block is now parsed and supported. Math overflow still is unsupported for types larger than 64 bit. - `assembly {}` blocks are now parsed and give a friendly error message. - Any variable use before it is given a value is now detected and results in a undefined variable diagnostic, thanks to [LucasSte](hyperledger-solang#468) Changed - Solang now uses LLVM 12.0, based on the [Solana LLVM tree](https://github.com/solana-labs/llvm-project/) Fixed - Fix a number of issues with parsing the uniswap v2 contracts - ewasm: staticcall() and delegatecall() cannot take value argument - Fixed array support in the ethereum abi encoder and decoder - Fixed issues in arithmetic on non-power-of-2 types (e.g. uint112) Signed-off-by: Sean Young <sean@mess.org>
Constant folding pass and fixes all over Added - Added a constant folding optimization pass to improve codegen. When variables fold to constant values, they are visible in the hover in the extension - For Substrate and Solana, address literals can specified with their base58 notation, e.g. `address foo = address"5GBWmgdFAMqm8ZgAHGobqDqX6tjLxJhv53ygjNtaaAn3sjeZ";` - Solana account storage implemented for ``bytes``, ``string``, and structs - Implemented ``delete`` for Solana Changed - The Substrate target produces a single .contract file - The Substrate target now uses the salt argument for seal\_instantiate() Fixed - Libraries are allowed to have constant variables - Fixed ethereum abi encoding/decoding of structs and enums - Solana now returns an error if account data is not large enough - Fixed storage bytes push() and pop() - Ewasm uses precompiles for keccak hashing - Various ewasm fixes for Hyperledger Burrow Signed-off-by: Sean Young <sean@mess.org>
PreviousNext