Add arg splat experiment initial tuple impl#153697
Add arg splat experiment initial tuple impl#153697teor2345 wants to merge 5 commits intorust-lang:mainfrom
Conversation
|
r? @JohnTitor rustbot has assigned @JohnTitor. Use Why was this reviewer chosen?The reviewer was selected based on:
|
This comment has been minimized.
This comment has been minimized.
|
It should be better for someone on https://rust-lang.zulipchat.com/#narrow/channel/213817-t-lang/topic/On.20overloading/with/573924937 to review this, @oli-obk could you take over? |
|
Let's wait for the ongoing discussion on Zulip to figure out whether we need to have a proc macro, an AST manipulating attribute (like |
89102bf to
c784a57
Compare
c784a57 to
2d9e563
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
2d85a32 to
930eb7a
Compare
|
Some changes occurred in coverage tests. cc @Zalathar |
930eb7a to
7e8fef2
Compare
|
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Add arg splat experiment initial tuple impl
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (a8930df): comparison URL. Overall result: ❌ regressions - please read:Benchmarking means the PR may be perf-sensitive. It's automatically marked not fit for rolling up. Overriding is possible but disadvised: it risks changing compiler perf. Next, please: If you can, justify the regressions found in this try perf run in writing along with @bors rollup=never Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary -0.7%, secondary -2.3%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary -4.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary 0.1%, secondary 0.2%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 490.512s -> 491.535s (0.21%) |
This comment was marked as resolved.
This comment was marked as resolved.
7e8fef2 to
d83e6d9
Compare
This comment has been minimized.
This comment has been minimized.
d83e6d9 to
d4229d6
Compare
This comment has been minimized.
This comment has been minimized.
d4229d6 to
482f842
Compare
|
The perf issues above are resolved by a minor refactor, but I'd like to merge them as separate PRs/commits, just in case we need to go back to the original code for testing (or further refactors). See the perf analysis here, overall this PR plus the refactor in #155852 results in an 0.24% primary benchmark improvement, with no primary regressions: |
| # Created by `x rust-analyzer[-clippy]` tests | ||
| /library/core/src/iter/traits/target | ||
| /library/core/src/slice/target |
There was a problem hiding this comment.
I haven't been able to figure out what this comment is referring to, because:
x rust-analyzerandx rust-analyzer-clippyare not valid commandsx test rust-analyzerdoesn't seem to produce those directories for mex test rust-analyzer-clippyisn't a valid command
There was a problem hiding this comment.
Yeah, I think you might be right, I'm just checking locally if they're from my VS Code config or from ./x test (or some other command).
I've overridden the setting which has those directory names in my rust workspace, but they're still popping up, so maybe it's a VS Code bug/quirk.
There was a problem hiding this comment.
If it turns out that you need to ignore some paths that only appear as a result of local config, remember that you can also add those paths to your local .git/info/exclude instead.
View all comments
This PR is part of the argument splatting lang experiment, and FFI overloading / C++ interop project goals:
Example code using existing unstable features:
Discussion of implementation strategy:
The PR is the initial implementation of the feature:
splatincomplete feature gate#[splat]attribute on function arguments#[splat]function parameter check at THIR levelOnce this PR merges, we can add further functionality, then test it out in interop tools.
Unrelated Changes
Further Work
$cratein macro matcher #155784:Out of Scope for this PR