solang
solang copied to clipboard
Solidity Compiler for Solana and Polkadot
This feature is incomplete and does not have any users yet. For example, there is a debugging endpoint for Solana in the works, but this is not finished yet. Also,...
Our support for multidimensional arrays is broken and the semantics Solidity uses for them is confusing. Here are some facts to discuss: 1. I understand `int[4][2] vec` as a matrix...
This came up in #927, I'll open an issue so I won't forget this. The idea is to have a `--release` flag for compilation, similar to what cargo does. This...
The CFG does not have an effective way to represent pointers, consequently, some constructs are not correctly implemented. One example is the `Type::BufferPointer` that originates after we advance a pointer...
I tried cloning the project and then doing a `$ cargo build` which resulted in `thread 'main' panicked at 'could not execute llvm-config: Os { code: 2, kind: NotFound, message:...
This contract causes an access violation in Solana's mock VM, because `fun` is a null pointer. ```solidity contract C { function test(uint256 newAddress, bytes4 newSelector) public view returns (bytes4, address)...
I try to use solang-parser to parse some contract and found `"unrecognised token '.'` error. This sample contract code can trigger this issue: ```solidity pragma solidity 0.6.12; contract A {...
@xermicus had a good idea to improve the `update_map` function in strength reduce, as discussed [here](https://github.com/hyperledger-labs/solang/pull/921#discussion_r924998507). We should try that when there is time to do so. https://github.com/hyperledger-labs/solang/blob/2b7fc1c0416720ba26c5eabcd97901988866aef3/src/codegen/strength_reduce/reaching_values.rs#L98
```solidity contract Testing { struct PaddedStruct { uint128 a; uint8 b; bytes32 c; } PaddedStruct[2][3][] stor_arr; function addData() public { PaddedStruct memory a = PaddedStruct(56, 1, "oi"); PaddedStruct memory b...
Solang's intermediate representation does not use a static single assignment (SSA) form. This has introduced some ugliness in our code base. For instance, we have two three different implementations of...