Skip to content
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

Merged
merged 1 commit into from
Jan 12, 2021
Merged

Conversation

cburgdorf
Copy link
Collaborator

@cburgdorf cburgdorf commented Jan 11, 2021

What was wrong?

In the recent months there were several critics brought up regarding our Readme:

  1. People had a hard time finding example and generally requested to see a piece of Fe code featured in the Readme
  2. The information was found to be overcrowded
  3. In Remove the mentions of Vyper in the README #176 it was brought up that Fe should distance itself more clearly from Vyper

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:

  1. A two-liner about the language
  2. A link to the Roadmap, our next big goal and an explanation that we will kick off monthly releases starting this month
  3. An embedded code example

To-Do

  • OPTIONAL: Update Spec if applicable

  • Add entry to the release notes (may forgo for trivial changes)

  • Clean up commit history

* 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
Copy link
Collaborator Author

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/).

Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Module imports
* Module imports and a standard library

Copy link
Collaborator Author

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?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sounds good 👍

@cburgdorf cburgdorf merged commit cf01a23 into ethereum:master Jan 12, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants