-
Notifications
You must be signed in to change notification settings - Fork 2
draft announcement post #4
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
Draft
cburgdorf
wants to merge
1
commit into
fe-lang:master
Choose a base branch
from
cburgdorf:christoph/drop-alpha
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
|
|
||
| +++ | ||
| title = "Beyond alpha: Preparing Fe for the future" | ||
| date = "2023-03-31" | ||
| +++ | ||
|
|
||
|
|
||
|
|
||
| Today we like to reflect on our progress and share our plans for the future of Fe. December 2022 Fe hit the Ethereum mainnet for the very first time with the [deployment of our bug bounty contest](/posts/bountiful-break-things-and-get-paid). Although it was hacked shortly after, no *serious* issues were revealed. The initial hack was just a sloppy fat-finger-copy-and-paste issue on our end but we invite you to read the inside story from the bounty hunter's perspective because it's such a great read. | ||
|
|
||
| <div style="display: flex; justify-content: center;"> | ||
| <blockquote class="twitter-tweet"<p lang="en" dir="ltr">I cracked <a href="https://twitter.com/official_fe?ref_src=twsrc%5Etfw">@official_fe</a> 's bountiful code challenge 💸<br><br>I was beyond impressed by the language and had a wonderful time poring over the code<br><br>Here's how it happened - including my thoughts on Fe 🧵</p>— plotchy (@plotchy) <a href="https://twitter.com/plotchy/status/1600894668304105474?ref_src=twsrc%5Etfw">December 8, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> | ||
| </div> | ||
|
|
||
| If you've been following our [recent updates](/posts/bountiful-round-2), you will know that we quickly fixed the issue and restarted the contest and that the ongoing bug bounty contest did not reveal any critical bugs. In fact, the bounty is still up for grabs, go check it out if you're interested. | ||
|
|
||
| This certainly doesn't mean that Fe is bug-free, quite the contrary, we expect the compiler to still have bugs and we want to invite you to find and report them. | ||
|
|
||
| However, it does mean that we are confident enough to drop the `-alpha` marker from releases, starting with the upcoming `0.22.0` release. As we've [mentioned in the past](/posts/path-to-production), dropping the `-alpha` marker does not imply that the language is stable or feature-complete. It will still take a long way to go before we get anywhere close to that. As we continue to follow semantic versioning our `0.x` releases continue to be *unstable*. | ||
|
|
||
| ## A bright future | ||
|
|
||
| In fact, we are currently in the process of rewriting large parts of the Fe compiler. This is necessary because the existing code base is not well suited for the features we want to add in the future. When the current rewrite is finished it will enable more advanced features such as: | ||
|
|
||
| - Enhanced support for generics (e.g. generic structs, generic traits, multiple trait bounds, etc.) | ||
| - Improved trait support (e.g. trait inheritance, trait specialization, etc.) | ||
| - Const functions (Functions that can run at *compile time* rather than at *runtime*) | ||
| - Type inference | ||
| - Flexible abstraction on ABI encoding/decoding | ||
| - Support for Language Server Protocol (LSP) | ||
|
|
||
| Additionally, we're working to replace Fe's Solidity backend. Fe currently uses YUL as its intermediate language and rely on the Solidity compiler to convert YUL to EVM bytecode. We're developing a native LLVM-inspired backend called [Sonatina](https://github.com/fe-lang/sonatina), which will replace this dependency, allowing for more aggressive optimizations and a streamlined Rust-only compilation process. | ||
|
|
||
| In conclusion, we're thrilled with the progress Fe has made and are confident that the upcoming improvements will further enhance the language. We invite you to join us in exploring and experimenting with Fe as it continues to mature. Your feedback and contributions are invaluable as we work together to build a robust, feature-rich programming language. | ||
|
|
||
| Thank you for your support, and stay tuned for more exciting developments! | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.