Mark Rousskov
4f9b394c8a
Swap out CURRENT_RUSTC_VERSION to 1.71.0
2023-05-30 07:54:29 -04:00
Yuki Okushi
923a5a2ca7
Rollup merge of #109677 - dpaoliello:rawdylib, r=michaelwoerister,wesleywiser
...
Stabilize raw-dylib, link_ordinal, import_name_type and -Cdlltool
This stabilizes the `raw-dylib` feature (#58713 ) for all architectures (i.e., `x86` as it is already stable for all other architectures).
Changes:
* Permit the use of the `raw-dylib` link kind for x86, the `link_ordinal` attribute and the `import_name_type` key for the `link` attribute.
* Mark the `raw_dylib` feature as stable.
* Stabilized the `-Zdlltool` argument as `-Cdlltool`.
* Note the path to `dlltool` if invoking it failed (we don't need to do this if `dlltool` returns an error since it prints its path in the error message).
* Adds tests for `-Cdlltool`.
* Adds tests for being unable to find the dlltool executable, and dlltool failing.
* Fixes a bug where we were checking the exit code of dlltool to see if it failed, but dlltool always returns 0 (indicating success), so instead we need to check if anything was written to `stderr`.
NOTE: As previously noted (https://github.com/rust-lang/rust/pull/104218#issuecomment-1315895618 ) using dlltool within rustc is temporary, but this is not the first time that Rust has added a temporary tool use and argument: https://github.com/rust-lang/rust/pull/104218#issuecomment-1318720482
Big thanks to ``````@tbu-`````` for the first version of this PR (#104218 )
2023-05-06 09:09:30 +09:00
Dylan DPC
f379a58bf2
Rollup merge of #108668 - gibbyfree:stabilizedebuggervisualizer, r=wesleywiser
...
Stabilize debugger_visualizer
This stabilizes the `debugger_visualizer` attribute (#95939 ).
* Marks the `debugger_visualizer` feature as `accepted`.
* Marks the `debugger_visualizer` attribute as `ungated`.
* Deletes feature gate test, removes feature gate from other tests.
Closes #95939
2023-05-02 11:44:51 +05:30
Pietro Albini
4e04da6183
replace version placeholders
2023-04-28 08:47:55 -07:00
Daniel Paoliello
1ece1ea48c
Stablize raw-dylib, link_ordinal and -Cdlltool
2023-04-18 11:01:07 -07:00
Mark Rousskov
01d7af11e1
Bump version placeholders
2023-03-15 08:55:22 -04:00
Caleb Zulawski
d3cbedd49e
Stabilize movbe target feature
2023-03-02 17:14:47 -05:00
Léo Lanteri Thauvin
bfe5189904
Revert "Stabilize #![feature(target_feature_11)]"
...
This reverts commit b379d216ee .
2023-03-02 13:41:17 +01:00
Gibby Free
05c1e6b1db
stabilize debugger visualizer attribute
2023-03-01 18:56:29 -08:00
bors
fd1f1fa0d1
Auto merge of #106774 - Nugine:master, r=Amanieu
...
Stabilize cmpxchg16b_target_feature
Tracking issue for target features
+ #44839
stdarch issue
+ https://github.com/rust-lang/stdarch/issues/827
stdarch PR
+ https://github.com/rust-lang/stdarch/pull/1358
reference PR
+ https://github.com/rust-lang/reference/pull/1331
It's my first time contributing to rust-lang/rust. Please tell me if I missed something.
2023-02-28 04:12:34 +00:00
Léo Lanteri Thauvin
b379d216ee
Stabilize #![feature(target_feature_11)]
2023-02-01 08:53:02 +01:00
Nugine
a4f2d14875
Stabilize cmpxchg16b_target_feature
2023-02-01 10:54:43 +08:00
Mark Rousskov
3653254f91
Set version placeholders to 1.68
2023-01-25 09:44:29 -05:00
Yuki Okushi
fa8f77a1de
Rollup merge of #105795 - nicholasbishop:bishop-stabilize-efiapi, r=joshtriplett
...
Stabilize `abi_efiapi` feature
Tracking issue: https://github.com/rust-lang/rust/issues/65815
Closes #65815
2023-01-13 05:47:21 +09:00
Nicholas Bishop
46f9e878f6
Stabilize abi_efiapi feature
...
Tracking issue: https://github.com/rust-lang/rust/issues/65815
2023-01-11 20:42:13 -05:00
Kathryn Long
a29425c6d4
Stabilize f16c_target_feature
2022-12-30 23:56:18 -05:00
Pietro Albini
f6762c2035
update stabilization version numbers
2022-12-28 09:18:42 -05:00
bors
bbb9cfbbc5
Auto merge of #102318 - Amanieu:default_alloc_error_handler, r=oli-obk
...
Stabilize default_alloc_error_handler
Tracking issue: #66741
This turns `feature(default_alloc_error_handler)` on by default, which causes the compiler to automatically generate a default OOM handler which panics if `#[alloc_error_handler]` is not provided.
The FCP completed over 2 years ago but the stabilization was blocked due to an issue with unwinding. This was fixed by #88098 so stabilization can be unblocked.
Closes #66741
2022-12-16 21:08:45 +00:00
Vadim Petrochenkov
5b0e80ecf3
Stabilize native library modifier verbatim
2022-11-27 22:36:32 +03:00
Mark Rousskov
455a7bc685
Bump version placeholders to release
2022-11-06 17:11:02 -05:00
bors
1286ee23e4
Auto merge of #102458 - JohnTitor:stabilize-instruction-set, r=oli-obk
...
Stabilize the `instruction_set` feature
Closes https://github.com/rust-lang/rust/issues/74727
FCP is complete on https://github.com/rust-lang/rust/issues/74727#issuecomment-1242773253
r? `@pnkfelix` and/or `@nikomatsakis`
cc `@xd009642`
Signed-off-by: Yuki Okushi <jtitor@2k36.org >
2022-11-05 20:39:06 +00:00
Amanieu d'Antras
f5e0b760d0
Stabilize default_alloc_error_handler
...
Closes #66741
2022-11-03 07:12:58 +00:00
Deadbeef
988e75bb65
Stabilize arbitrary_enum_discriminant, take 2
2022-10-22 13:54:39 +08:00
Amanieu d'Antras
430bd6200d
Stabilize asm_sym
2022-10-17 22:38:37 +01:00
Urgau
5ae73634dc
Stabilize half_open_range_patterns
2022-10-08 11:00:13 +02:00
Yuki Okushi
7874976762
Stabilize the instruction_set feature
...
Signed-off-by: Yuki Okushi <jtitor@2k36.org >
2022-09-29 17:27:03 +09:00
Pietro Albini
d0305b3d00
replace stabilization placeholders
2022-09-26 10:13:44 +02:00
est31
bca3cf7e86
Stabilize the let_else feature
2022-09-15 21:06:45 +02:00
Jack Huey
3cf0e98dc9
Stabilize GATs
2022-08-30 23:06:24 -04:00
Nilstrieb
d1ef8180f9
Revert let_chains stabilization
...
This reverts commit 3266460749 .
This is the revert against master, the beta revert was already done in #100538 .
2022-08-29 19:34:11 +02:00
est31
4caedbae86
Adjust label break value stabilization version to CURRENT_RUSTC_VERSION
2022-08-27 17:36:13 +02:00
Joshua Nelson
31e39446ec
Stabilize #![feature(label_break_value)]
...
# Stabilization proposal
The feature was implemented in https://github.com/rust-lang/rust/pull/50045 by est31 and has been in nightly since 2018-05-16 (over 4 years now).
There are [no open issues][issue-label] other than the tracking issue. There is a strong consensus that `break` is the right keyword and we should not use `return`.
There have been several concerns raised about this feature on the tracking issue (other than the one about tests, which has been fixed, and an interaction with try blocks, which has been fixed).
1. nrc's original comment about cost-benefit analysis: https://github.com/rust-lang/rust/issues/48594#issuecomment-422235234
2. joshtriplett's comments about seeing use cases: https://github.com/rust-lang/rust/issues/48594#issuecomment-422281176
3. withoutboats's comments that Rust does not need more control flow constructs: https://github.com/rust-lang/rust/issues/48594#issuecomment-450050630
Many different examples of code that's simpler using this feature have been provided:
- A lexer by rpjohnst which must repeat code without label-break-value: https://github.com/rust-lang/rust/issues/48594#issuecomment-422502014
- A snippet by SergioBenitez which avoids using a new function and adding several new return points to a function: https://github.com/rust-lang/rust/issues/48594#issuecomment-427628251 . This particular case would also work if `try` blocks were stabilized (at the cost of making the code harder to optimize).
- Several examples by JohnBSmith: https://github.com/rust-lang/rust/issues/48594#issuecomment-434651395
- Several examples by Centril: https://github.com/rust-lang/rust/issues/48594#issuecomment-440154733
- An example by petrochenkov where this is used in the compiler itself to avoid duplicating error checking code: https://github.com/rust-lang/rust/issues/48594#issuecomment-443557569
- Amanieu recently provided another example related to complex conditions, where try blocks would not have helped: https://github.com/rust-lang/rust/issues/48594#issuecomment-1184213006
Additionally, petrochenkov notes that this is strictly more powerful than labelled loops due to macros which accidentally exit a loop instead of being consumed by the macro matchers: https://github.com/rust-lang/rust/issues/48594#issuecomment-450246249
nrc later resolved their concern, mostly because of the aforementioned macro problems.
joshtriplett suggested that macros could be able to generate IR directly
(https://github.com/rust-lang/rust/issues/48594#issuecomment-451685983 ) but there are no open RFCs,
and the design space seems rather speculative.
joshtriplett later resolved his concerns, due to a symmetry between this feature and existing labelled break: https://github.com/rust-lang/rust/issues/48594#issuecomment-632960804
withoutboats has regrettably left the language team.
joshtriplett later posted that the lang team would consider starting an FCP given a stabilization report: https://github.com/rust-lang/rust/issues/48594#issuecomment-1111269353
[issue-label]: https://github.com/rust-lang/rust/issues?q=is%3Aissue+is%3Aopen+label%3AF-label_break_value+
## Report
+ Feature gate:
- d695a497bb/src/test/ui/feature-gates/feature-gate-label_break_value.rs
+ Diagnostics:
- 6b2d3d5f3c/compiler/rustc_parse/src/parser/diagnostics.rs (L2629)
- f65bf0b2bb/compiler/rustc_resolve/src/diagnostics.rs (L749)
- f65bf0b2bb/compiler/rustc_resolve/src/diagnostics.rs (L1001)
- 111df9e6ed/compiler/rustc_passes/src/loops.rs (L254)
- d695a497bb/compiler/rustc_parse/src/parser/expr.rs (L2079)
- d695a497bb/compiler/rustc_parse/src/parser/expr.rs (L1569)
+ Tests:
- https://github.com/rust-lang/rust/blob/master/src/test/ui/label/label_break_value_continue.rs
- https://github.com/rust-lang/rust/blob/master/src/test/ui/label/label_break_value_unlabeled_break.rs
- https://github.com/rust-lang/rust/blob/master/src/test/ui/label/label_break_value_illegal_uses.rs
- https://github.com/rust-lang/rust/blob/master/src/test/ui/lint/unused_labels.rs
- https://github.com/rust-lang/rust/blob/master/src/test/ui/run-pass/for-loop-while/label_break_value.rs
## Interactions with other features
Labels follow the hygiene of local variables.
label-break-value is permitted within `try` blocks:
```rust
let _: Result<(), ()> = try {
'foo: {
Err(())?;
break 'foo;
}
};
```
label-break-value is disallowed within closures, generators, and async blocks:
```rust
'a: {
|| break 'a
//~^ ERROR use of unreachable label `'a`
//~| ERROR `break` inside of a closure
}
```
label-break-value is disallowed on [_BlockExpression_]; it can only occur as a [_LoopExpression_]:
```rust
fn labeled_match() {
match false 'b: { //~ ERROR block label not supported here
_ => {}
}
}
macro_rules! m {
($b:block) => {
'lab: $b; //~ ERROR cannot use a `block` macro fragment here
unsafe $b; //~ ERROR cannot use a `block` macro fragment here
|x: u8| -> () $b; //~ ERROR cannot use a `block` macro fragment here
}
}
fn foo() {
m!({});
}
```
[_BlockExpression_]: https://doc.rust-lang.org/nightly/reference/expressions/block-expr.html
[_LoopExpression_]: https://doc.rust-lang.org/nightly/reference/expressions/loop-expr.html
2022-08-23 21:14:12 -05:00
Caio
3266460749
Stabilize let_chains
2022-07-16 20:17:58 -03:00
Dylan DPC
f1f44b9e4d
Rollup merge of #96868 - nrc:turbo-stable, r=jhpratt,nbdd0121,nagisa
...
Stabilize explicit_generic_args_with_impl_trait
This is a stabilisation PR for `explicit_generic_args_with_impl_trait`.
* [tracking issue](https://github.com/rust-lang/rust/issues/83701 )
- [Stabilisation report](https://github.com/rust-lang/rust/issues/83701#issuecomment-1109949897 )
- [FCP entered](https://github.com/rust-lang/rust/issues/83701#issuecomment-1120285703 )
* [implementation PR](https://github.com/rust-lang/rust/pull/86176 )
* [Reference PR](https://github.com/rust-lang/reference/pull/1212 )
* There is no mention of using the turbofish operator in the book (other than an entry in the operator list in the appendix), so there is no documentation to change/add there, unless we felt like we should add a section on using turbofish, but that seems orthogonal to `explicit_generic_args_with_impl_trait`
2022-06-11 07:42:12 +02:00
Vadim Petrochenkov
a8ee1f3a4f
Stabilize the bundle native library modifier
2022-06-09 23:12:58 +04:00
Nick Cameron
640a461388
Deactivate feature gate explicit_generic_args_with_impl_trait
...
Signed-off-by: Nick Cameron <nrc@ncameron.org >
2022-06-06 12:21:49 +01:00
Jack Huey
410dcc9674
Fully stabilize NLL
2022-06-03 17:16:41 -04:00
Jacob Pratt
abf2b4c04d
Stabilize derive_default_enum
2022-04-07 20:03:19 -04:00
Vadim Petrochenkov
1004783ef9
Stabilize native library modifier syntax and the whole-archive modifier specifically
2022-03-30 23:53:21 +03:00
Tony Arcieri
78567df575
Stabilize ADX target feature
...
This is a continuation of #60109 , which noted that while the ADX
intrinsics were stabilized, the corresponding target feature never was.
This PR follows the same general structure and stabilizes the ADX target
feature.
2022-03-14 18:56:39 -06:00
Adam Gemmell
5a5621791f
Stabilise aarch64_target_feature
2022-03-14 11:02:50 +00:00
Eric Holk
1afbf3e4b1
Bump stabilization version to 1.61.0
2022-03-07 08:47:18 -08:00
Eric Holk
8700b45b67
Stabilize const_impl_trait as well
2022-03-07 08:47:18 -08:00
Eric Holk
7723506d13
Stabilize const_fn_fn_ptr_basics and const_fn_trait_bound
2022-03-07 08:47:15 -08:00
Matthias Krüger
f19adc7acc
Rollup merge of #93658 - cchiw:issue-77443-fix, r=joshtriplett
...
Stabilize `#[cfg(panic = "...")]`
[Stabilization PR](https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#stabilization-pr ) for #77443
2022-02-19 06:45:29 +01:00
Mark Rousskov
fc01d2b854
Destabilize cfg(target_has_atomic_load_store = ...)
...
This was not intended to be stabilized yet.
2022-02-16 10:28:12 -05:00
Charisee
4404a4e365
updating the feature-gate listing and do not require the feature-gate to use the feature
2022-02-10 21:52:08 +00:00
Amanieu d'Antras
49d4823112
Stabilize cfg_target_has_atomic
...
Closes #32976
2022-02-09 18:45:44 +00:00
Jacob Pratt
d95f749f14
Stabilize destructuring_assignment
2021-12-14 22:38:51 -05:00
Ellen
59bf1f732f
update accepted feature gate
2021-12-11 00:12:57 +00:00