argotorg / argotorg/solidity

New process for experimental features

Open
#16,123 2 comments 0 reactions 0 assignees View on GitHub
experimental medium effort medium impact must have
Dominant language
C++
Stars
25.7k
Forks
6.2k
Avg merge
2d 19h
Merged PRs (30d)
29

Description

Implement changes needed to introduce the [New process for experimental features in Solidity](https://notes.argot.org/s/@solidity-experimental-features-new-process) that we have decided to adopt.

- [x] Introduce `--experimental`/`settings.experimental` in the compiler
- ~Make `--help` output dependent on the flag~
- [x] Include experimental features in `--help` and Standard JSON input docs and clearly mark those that are already there as experimental.
- [x] Gate all the experimental features behind the flag:
- AST import
- EVM Assembly Import
- IR AST output
- Experimental EVM versions
- Ethdebug
- SSA CFG
- (optional) Generic Solidity prototype
- (optional) LSP
- [ ] Add the list of experimental features to metadata.
- [x] Introduce `experimental` EVM version for testing purposes. https://github.com/argotorg/solidity/pull/16443
- [x] Fix #15835
- [x] Create a documentation page about experimental features:
- Our process around them, including lack of any stability guarantees.
- How to enable experimental features.
- List of all features that are currently considered experimental.
- [x] Add a pre-release section to the release checklist.
- [x] Make sure our scripts can handle the `v-pre.` scheme for pre-release versions:
- `get_version.sh`
- scripts in solc-bin
- scripts in solc-js

Contributor guide

Open the contributing guide

Research direction

Use the unchecked checklist item—adding the list of experimental features to metadata—as the remaining scope. First locate where compiler metadata is defined and generated, then compare the existing experimental-feature list with the metadata output; done means the list is present and accurately reflects the features described in this issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.