second-state / SOLL

SOLL is a new compiler for generate Ewasm from solidity and yul. See a demo here: https://asciinema.org/a/ezJqNLicn5fya02zwu4VXIo8a
https://www.secondstate.io/
377 stars 23 forks source link

What is the estimated time for SOLL to fully support solidity contracts? Is there timeline for the roadmap? #22

Open gongbell opened 4 years ago

hydai commented 4 years ago

Unfortunately, there is no timeline or roadmap for the Solidity front end. We have moved our focus from Solidity front end to Yul front end. So we freeze all of the tickets or issues which are related to the Solidity front end.

Therefore, we are going to finish the Yul front end first. After completing full support of Yul contracts, we may go back to implement the Solidity front end in the future but not for now.

To deploy solidity contracts on the ewasm target, here is a workaround: you could use solc to compile solidity contracts into yul IR, and then use SOLL to compile this yul IR into ewasm bytecode.

Also, if you are interested in the Solidity front end, we are happy to have your contribution or support :-)

hydai commented 4 years ago

Hi @gongbell I found that your research topic WANA is very interesting.

We would like to know if there is an essential feature that is required by your research topic? Because we are discussing the solidity front end roadmap and the new plan/timeline will be announced in December 2020.

gongbell commented 4 years ago

Unfortunately, there is no timeline or roadmap for the Solidity front end. We have moved our focus from Solidity front end to Yul front end. So we freeze all of the tickets or issues which are related to the Solidity front end.

Therefore, we are going to finish the Yul front end first. After completing full support of Yul contracts, we may go back to implement the Solidity front end in the future but not for now.

To deploy solidity contracts on the ewasm target, here is a workaround: you could use solc to compile solidity contracts into yul IR, and then use SOLL to compile this yul IR into ewasm bytecode.

Also, if you are interested in the Solidity front end, we are happy to have your contribution or support :-)

hi,@dyai, Thanks for your reply. We will try out the solc(solidity2yul)+SOLL(yul to ewam) path.

gongbell commented 4 years ago

Hi @gongbell I found that your research topic WANA is very interesting.

We would like to know if there is an essential feature that is required by your research topic? Because we are discussing the solidity front end roadmap and the new plan/timeline will be announced in December 2020.

Thanks a lot. We will try out the solidity front end with complex contracts and feedback essential features. btw, is there a current supported language feature list for solidity front end to compile solidity to yul?

hydai commented 4 years ago

Thanks a lot. We will try out the solidity front end with complex contracts and feedback essential features. btw, is there a current supported language feature list for solidity front end to compile solidity to yul?

Yes. We have a list about solidity front end based on v0.6.6. Check this: https://github.com/second-state/SOLL/blob/master/doc/guides/FeatureGuideForSolidity.md

gongbell commented 4 years ago

Hi @gongbell I found that your research topic WANA is very interesting.

We would like to know if there is an essential feature that is required by your research topic? Because we are discussing the solidity front end roadmap and the new plan/timeline will be announced in December 2020.

Hi, @hydai One feature useful for us is the debug hints of the unimplemented features. When we use solc --ir contract.sol to compile a contract, it will emit UnimplementedFeatureError. However, there is no indication in which line of the solidity file the error is. Is it possible to hint which line the unimplemented feature exists so we can examine detailed features manually?

hydai commented 4 years ago

Hi, @gongbell SOLL provides some debugging information about unimplemented features. We have a plan to restart our solidity front end. You can also use our solidity front end to compile and report the unimplemented features to us. And we may increase their priority.

Back to solc issues, unfortunately, the solc is a compiler made by Ethereum Foundation, you may need to report the UnimplementedFeatureError to solc directly for getting more information.

gongbell commented 4 years ago

@hydai Thanks you for your suggestions. We will try it out.

hydai commented 4 years ago

https://github.com/second-state/SOLL/blob/master/doc/guides/FeatureGuideForSolidity.md#comparison-table-with-solidity-071

We also update the language features table. It will be easier to check our unimplemented features.