Tags: janus/solang
Tags
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>
Visual Studio Code extension and string formatting
- New Visual Studio Code extension developed under Hyperledger Mentorship
programme
- Added language server for use in vscode extension
- Implemented primitive types and operations for Solana
- Functions can be declared outside of contracts
- Constants can be declared outside of contracts
- String formatting using python style "..{}..".format(n)
Signed-off-by: Sean Young <sean@mess.org>
Substrate 2.0 and Solidity Function Types - Function types are implemented - An experimental [Solana](https://solana.com/) target has been added - Binaries are generated for Mac - The Substrate target requires Substrate 2.0 - Various bug fixes (see git log) Signed-off-by: Sean Young <sean@mess.org>
All major Solidity language features implemented Added - `event` can be declared and emitted with `emit` - Function modifiers have been implemented - Tags in doc comments are parsed and resolved - All major Solidity language features implemented, see our language status page: https://solang.readthedocs.io/en/latest/status.html Signed-off-by: Sean Young <sean@mess.org>
Imports, base contracts, abstract, interface, and libraries Added - `import` directives are supported - New `--importpath` command line argument to specify directories to search for imports - Contracts can have base contracts - Contracts can be abstract - Interfaces are supported - Libraries are supported - The `using` library `for` type syntax is supported Changed - Solang now uses llvm 10.0 rather than llvm 8.0 - In line with Solidity 0.7.0, constructors no longer need a visibility argument Signed-off-by: Sean Young <sean@mess.org>