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

Compiler overrides #5001

Merged
merged 68 commits into from
May 16, 2023
Merged

Compiler overrides #5001

merged 68 commits into from
May 16, 2023

Conversation

partouf
Copy link
Contributor

@partouf partouf commented Apr 27, 2023

PR Includes #4318 and #4999 and #5000

Adds:

  • Enables supplying environment variables to the compiler
  • New interface for supplying known compiler parameters in a user friendly way, like --march/--target
    • Adds possible targets list and selection to GCC (-march in this case, not really targets)
    • Clang (except for those already preconfigured with a specific target)
    • Rust (for which we don't have preconfigured targets)
    • and z88dk targets
    • Adds Toolchain switching for Clang and ICX/LLVM-based-compilers
    • Adds c/c++ std version selection for various compilers
  • Rust Edition selection and default selection of Edition 2021 when a recent compiler is selected (and the user hasn't already fiddled with the settings)
  • Able to favorite settings (except env variables, those will have to be reentered every time)

Fixes #3765
Fixes #4151
Fixes #3154
Fixes #2724
Fixes #1966

Possible to address suggestions in #3100

@github-actions github-actions bot added the ui label Apr 27, 2023
@partouf
Copy link
Contributor Author

partouf commented Apr 28, 2023

Screenshot from 2023-04-28 18-11-08

@partouf
Copy link
Contributor Author

partouf commented Apr 28, 2023

decided on just adding options in the constructor, think it's ok and a lot less complicated than adding yet another properties thing

https://github.com/compiler-explorer/compiler-explorer/pull/5001/files#diff-cf6fcd2b4b0b7564799685f761987bfa6e6778e0dd6d1b375eb71db3c237b023R66

This was referenced Apr 30, 2023
@partouf
Copy link
Contributor Author

partouf commented Apr 30, 2023

Screenshot from 2023-04-30 21-34-09

@partouf
Copy link
Contributor Author

partouf commented May 13, 2023

Based on https://github.com/compiler-explorer/infra/actions/runs/4968591553/jobs/8891278478
And the "error: compiler options appear empty for ..." lines

The following argument parsers seem broken:

  • nvrtc
  • flang
  • ghc
  • go
  • zig 0.7.0 - zcc070

Copy link
Member

@mattgodbolt mattgodbolt left a comment

Choose a reason for hiding this comment

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

More WIP review notes (have to stop now as ran out of time for now; only thing I didn't look at is compiler-overrides.ts

lib/compilers/zig.ts Outdated Show resolved Hide resolved
static/compiler-shared.ts Outdated Show resolved Hide resolved
stdin: string;
};

export type CompilationRequestOptions = {
Copy link
Member

Choose a reason for hiding this comment

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

Thanks for busting these out 👍🏻

override updateState() {
const state = this.getCurrentState();
this.container.setState(state);
this.compilerShared.updateState(state);
Copy link
Member

Choose a reason for hiding this comment

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

neat

views/templates/widgets/possible-override-tpl.pug Outdated Show resolved Hide resolved
lib/base-compiler.ts Outdated Show resolved Hide resolved
lib/base-compiler.ts Outdated Show resolved Hide resolved
lib/base-compiler.ts Outdated Show resolved Hide resolved
lib/base-compiler.ts Outdated Show resolved Hide resolved
lib/base-compiler.ts Outdated Show resolved Hide resolved
@partouf partouf merged commit 079d495 into main May 16, 2023
13 checks passed
@partouf partouf deleted the compiler-overrides-new branch May 16, 2023 01:53
@partouf
Copy link
Contributor Author

partouf commented May 16, 2023

now live!

@ojeda
Copy link
Contributor

ojeda commented May 16, 2023

Thanks a ton for this @partouf -- very useful!

ojeda added a commit to Rust-for-Linux/rust-for-linux.com that referenced this pull request Aug 28, 2023
Compiler Explorer added "Compiler Overrides" [1], which for Rust
include setting by default the 2021 edition. Since `rustc` does
not allow that, the old link has stopped working.

Reported to Compiler Explorer at [2].

Link: compiler-explorer/compiler-explorer#5001 [1]
Link: compiler-explorer/compiler-explorer#5429 [2]
Reported-by: Dimitri Belopopsky <dimitri@belopopsky.com>
Closes: https://rust-for-linux.zulipchat.com/#narrow/stream/288089-General/topic/CE.20link.20on.20rust-for-linux.20site/near/387667888
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment