Skip to content

Introduce experimental flag/option#16229

Merged
nikola-matic merged 8 commits intodevelopfrom
introduce-experimental-flag
Mar 5, 2026
Merged

Introduce experimental flag/option#16229
nikola-matic merged 8 commits intodevelopfrom
introduce-experimental-flag

Conversation

@nikola-matic
Copy link
Contributor

@nikola-matic nikola-matic commented Oct 6, 2025

Under development, don't review yet.

  • CLI
  • Standard JSON
  • Forbid --experimental with --standard-json
  • Pragmas
  • Docs?
  • Changelog

Partially (for now) implements #16123

@nikola-matic nikola-matic force-pushed the introduce-experimental-flag branch 5 times, most recently from 1beb509 to ba48a91 Compare October 9, 2025 13:17
@nikola-matic nikola-matic force-pushed the introduce-experimental-flag branch 4 times, most recently from fd70f82 to 98cad7c Compare October 21, 2025 09:40
@github-actions github-actions bot added the stale The issue/PR was marked as stale because it has been open for too long. label Nov 4, 2025
@argotorg argotorg deleted a comment from github-actions bot Nov 4, 2025
@nikola-matic nikola-matic removed the stale The issue/PR was marked as stale because it has been open for too long. label Nov 4, 2025
@github-actions github-actions bot added the stale The issue/PR was marked as stale because it has been open for too long. label Nov 19, 2025
@nikola-matic nikola-matic removed the stale The issue/PR was marked as stale because it has been open for too long. label Nov 19, 2025
@argotorg argotorg deleted a comment from github-actions bot Nov 19, 2025
@nikola-matic nikola-matic force-pushed the introduce-experimental-flag branch 3 times, most recently from 5c5a463 to 2518378 Compare November 20, 2025 11:55
@github-actions github-actions bot added the stale The issue/PR was marked as stale because it has been open for too long. label Dec 4, 2025
@nikola-matic nikola-matic removed the stale The issue/PR was marked as stale because it has been open for too long. label Dec 4, 2025
@argotorg argotorg deleted a comment from github-actions bot Dec 4, 2025
@nikola-matic nikola-matic force-pushed the introduce-experimental-flag branch from 2518378 to 83b670d Compare December 8, 2025 09:43
@github-actions github-actions bot added the stale The issue/PR was marked as stale because it has been open for too long. label Dec 22, 2025
@nikola-matic nikola-matic removed the stale The issue/PR was marked as stale because it has been open for too long. label Dec 22, 2025
@argotorg argotorg deleted a comment from github-actions bot Dec 22, 2025
@github-actions github-actions bot added the stale The issue/PR was marked as stale because it has been open for too long. label Jan 6, 2026
@clonker clonker removed the stale The issue/PR was marked as stale because it has been open for too long. label Jan 6, 2026
@nikola-matic nikola-matic force-pushed the introduce-experimental-flag branch from 83b670d to 17c3e0e Compare January 6, 2026 12:22
@cameel
Copy link
Collaborator

cameel commented Mar 3, 2026

Aside from the few comments I left above the messages seem done.

@nikola-matic
Copy link
Contributor Author

Aside from the few comments I left above the messages seem done.

I still need to reduce the error messages where incorrect usage (no --experimental) lists all of the experimental options instead of the one that triggered the error message.

@cameel
Copy link
Collaborator

cameel commented Mar 3, 2026

Yes. I meant adjusting the wording of messages based on the doc specifically.

@nikola-matic
Copy link
Contributor Author

@cameel what do you want for the metadata changelog entry?

* Metadata: Enabling experimental mode will now always store the experimental flag in CBOR encoded metadata, regardless of whether any experimental features have been used.

@cameel
Copy link
Collaborator

cameel commented Mar 4, 2026

How about this?

* Metadata: Store the state of the experimental mode in JSON and CBOR metadata. In CBOR this broadens the meaning of the existing `experimental` field, which used to indicate only the presence of certain experimental pragmas in the source.

This would cover both the JSON flag (new) and the CBOR flag (modified) and more concretely explain how that's different from what we had.

cameel
cameel previously approved these changes Mar 4, 2026
Copy link
Collaborator

@cameel cameel left a comment

Choose a reason for hiding this comment

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

ok, you win this time. But here are a few last ones to keep you up at night :P

Comment on lines -566 to +619
if (!_forHelp) // Note: We intentionally keep this undocumented for now.
outputOptions.add_options()
(
g_strEOFVersion.c_str(),
// Declared as uint64_t, since uint8_t will be parsed as character by boost.
po::value<uint64_t>()->value_name("version")->implicit_value(1),
"Select desired EOF version. Currently the only valid value is 1. "
"If not specified, legacy non-EOF bytecode will be generated."
)
(
g_strYul.c_str(), "The typed Yul dialect is no longer supported. For regular Yul compilation use --strict-assembly instead."
)
;
outputOptions.add_options()
(
g_strEOFVersion.c_str(),
// Declared as uint64_t, since uint8_t will be parsed as character by boost.
po::value<uint64_t>()->value_name("version")->implicit_value(1),
"(experimental) Select desired EOF version. Currently the only valid value is 1. "
"If not specified, non-EOF bytecode will be generated."
)
(
g_strYul.c_str(),
"(disabled) Switch to typed Yul mode. The typed Yul dialect is no longer supported. "
"For regular Yul compilation use --strict-assembly instead."
)
Copy link
Member

Choose a reason for hiding this comment

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

This probably unintentionally folded --yul from undocumented into outputOptions

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ah, good point, I'll move it to alternative input modes in #16505

Copy link
Member

Choose a reason for hiding this comment

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

It was previously hidden from --help, I am already doing that here

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ah, we're getting rid of it. Even better.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants