-
Notifications
You must be signed in to change notification settings - Fork 182
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Overhaul Readme #177
Overhaul Readme #177
Conversation
37e459d
to
9660843
Compare
* Usage of [YUL](https://docs.soliditylang.org/en/latest/yul.html) IR to target both EVM and eWASM | ||
* WASM compiler binaries for enhanced portability and in-browser compilation of | ||
Fe contracts | ||
* Implementation in a powerful, systems-oriented language (Rust) with strong safety guarantees to reduce risk of compiler bugs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@g-r-a-n-t I unified the project goals in this section. Let me know if you think I left out something important. I left out thinks that we aren't yet fully decided on such as inheritance or modifier
* Implementation in a powerful, systems-oriented language (Rust) with strong safety guarantees to reduce risk of compiler bugs | ||
|
||
Additional information about design goals and background can be found in the [official announcement](https://snakecharmers.ethereum.org/fe-a-new-language-for-the-ethereum-ecosystem/). | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A bit of backstory is conserved in the announcement post so I think its enough to link to it here
* Implement compilation routines for the full set of current Fe features | ||
* Implement a YUL compiler in Rust to eliminate the need to interact with the | ||
Solidity compiler | ||
* Formally verify the Fe compiler using the language specification |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's a lot of deleted stuff but I felt most is just clutter that will make it harder for people to get to know the language. If you think some of this should be preserved then maybe it could be moved to another document that we would link to.
@@ -45,152 +21,53 @@ though we include a summary of them here: | |||
* Binary fixed-point math | |||
* Restrictions on reentrancy | |||
* Static looping | |||
* Module imports |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Module imports | |
* Module imports and a standard library |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point! Maybe even as separate items?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sounds good 👍
9660843
to
18e015e
Compare
What was wrong?
In the recent months there were several critics brought up regarding our Readme:
The Readme hasn't had much overhaul since the project was originally born as rust-vyper. When it was written back then, a big motivation of the Readme was to compare and explain what was back then an alternative Vyper compiler. Naturally, the Readme has a lot of phrases that can be understood as "It's like the original Vyper but xyz". This doesn't reflect the current state of the project anymore which has since moved on to become Fe.
How was it fixed?
A lot of the information was just deleted because frankly it doesn't need to be in the Readme at this point. Things like recently achieved goals or our development methodology.
The length of the Readme was roughly cut in half and reorganized to have fewer headlines. Things that were added are:
To-Do
OPTIONAL: Update Spec if applicable
Add entry to the release notes (may forgo for trivial changes)
Clean up commit history