<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_feature/src/accepted.rs, branch 1.77.2</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.77.2</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.77.2'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2024-02-03T21:37:58+00:00</updated>
<entry>
<title>Bump version placeholders</title>
<updated>2024-02-03T21:37:58+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2024-02-03T21:37:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=885a97bbeac3fb7825f0f15e6a0d75b702aca4d5'/>
<id>urn:sha1:885a97bbeac3fb7825f0f15e6a0d75b702aca4d5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Revert "Auto merge of #118133 - Urgau:stabilize_trait_upcasting, r=WaffleLapkin"</title>
<updated>2024-01-22T14:24:31+00:00</updated>
<author>
<name>Oli Scherer</name>
<email>git-spam-no-reply9815368754983@oli-obk.de</email>
</author>
<published>2024-01-22T12:23:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9a20cf169792bd9a3f7edcb5ac27d89598f32616'/>
<id>urn:sha1:9a20cf169792bd9a3f7edcb5ac27d89598f32616</id>
<content type='text'>
This reverts commit 6d2b84b3ed7848fd91b8d6151d4451b3103ed816, reversing
changes made to 73bc12199ea8c7651ed98b069c0dd6b0bb5fabcf.
</content>
</entry>
<entry>
<title>Set `c_str_literals` stabilization version back to `CURRENT_RUSTC_VERSION`</title>
<updated>2024-01-11T19:46:02+00:00</updated>
<author>
<name>Eduardo Sánchez Muñoz</name>
<email>eduardosm-dev@e64.io</email>
</author>
<published>2024-01-11T18:46:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c03808f53b1093d76e047d659bf868b421081d6f'/>
<id>urn:sha1:c03808f53b1093d76e047d659bf868b421081d6f</id>
<content type='text'>
`c_str_literals`'s stabilization has been delayed to 1.77 (https://github.com/rust-lang/rust/pull/119528).
</content>
</entry>
<entry>
<title>update version placeholders</title>
<updated>2023-12-22T10:01:42+00:00</updated>
<author>
<name>Pietro Albini</name>
<email>pietro@pietroalbini.org</email>
</author>
<published>2023-12-21T14:39:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c00486c9bbfc9fa8f989715ea6cee1e324e2ea00'/>
<id>urn:sha1:c00486c9bbfc9fa8f989715ea6cee1e324e2ea00</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove edition umbrella features.</title>
<updated>2023-12-10T21:03:28+00:00</updated>
<author>
<name>Eric Huss</name>
<email>eric@huss.org</email>
</author>
<published>2023-12-10T17:34:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f481596ee4e761182f20eaf1b67d4431cd2d5556'/>
<id>urn:sha1:f481596ee4e761182f20eaf1b67d4431cd2d5556</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #117472 - jmillikin:stable-c-str-literals, r=Nilstrieb</title>
<updated>2023-12-01T13:33:55+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2023-12-01T13:33:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=63d16b5a98abc5e6c73f832ef85bd2415588f699'/>
<id>urn:sha1:63d16b5a98abc5e6c73f832ef85bd2415588f699</id>
<content type='text'>
Stabilize C string literals

RFC: https://rust-lang.github.io/rfcs/3348-c-str-literal.html

Tracking issue: https://github.com/rust-lang/rust/issues/105723

Documentation PR (reference manual): https://github.com/rust-lang/reference/pull/1423

# Stabilization report

Stabilizes C string and raw C string literals (`c"..."` and `cr#"..."#`), which are expressions of type [`&amp;CStr`](https://doc.rust-lang.org/stable/core/ffi/struct.CStr.html). Both new literals require Rust edition 2021 or later.

```rust
const HELLO: &amp;core::ffi::CStr = c"Hello, world!";
```

C strings may contain any byte other than `NUL` (`b'\x00'`), and their in-memory representation is guaranteed to end with `NUL`.

## Implementation

Originally implemented by PR https://github.com/rust-lang/rust/pull/108801, which was reverted due to unintentional changes to lexer behavior in Rust editions &lt; 2021.

The current implementation landed in PR https://github.com/rust-lang/rust/pull/113476, which restricts C string literals to Rust edition &gt;= 2021.

## Resolutions to open questions from the RFC

* Adding C character literals (`c'.'`) of type `c_char` is not part of this feature.
  * Support for `c"..."` literals does not prevent `c'.'` literals from being added in the future.
* C string literals should not be blocked on making `&amp;CStr` a thin pointer.
  * It's possible to declare constant expressions of type `&amp;'static CStr` in stable Rust (as of v1.59), so C string literals are not adding additional coupling on the internal representation of `CStr`.
* The unstable `concat_bytes!` macro should not accept `c"..."` literals.
  * C strings have two equally valid `&amp;[u8]` representations (with or without terminal `NUL`), so allowing them to be used in `concat_bytes!` would be ambiguous.
* Adding a type to represent C strings containing valid UTF-8 is not part of this feature.
  * Support for a hypothetical `&amp;Utf8CStr` may be explored in the future, should such a type be added to Rust.
</content>
</entry>
<entry>
<title>Stabilize RFC3324 dyn upcasting coercion</title>
<updated>2023-11-22T12:56:36+00:00</updated>
<author>
<name>Urgau</name>
<email>urgau@numericable.fr</email>
</author>
<published>2023-11-21T12:58:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4c2d6de70e66f6e2c882acbc9be1c5a53d8a65e4'/>
<id>urn:sha1:4c2d6de70e66f6e2c882acbc9be1c5a53d8a65e4</id>
<content type='text'>
Aka trait_upcasting feature.

And also adjust the `deref_into_dyn_supertrait` lint.
</content>
</entry>
<entry>
<title>Substitute version placeholders</title>
<updated>2023-11-16T00:40:51+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2023-11-12T16:45:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=efe54e24aafc413f3f6251ceeace57b810e4df29'/>
<id>urn:sha1:efe54e24aafc413f3f6251ceeace57b810e4df29</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Stabilize C string literals</title>
<updated>2023-11-01T00:16:34+00:00</updated>
<author>
<name>John Millikin</name>
<email>john@john-millikin.com</email>
</author>
<published>2023-11-01T00:16:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0f41bc21b958fed66b3d055531af67638390f520'/>
<id>urn:sha1:0f41bc21b958fed66b3d055531af67638390f520</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rename `ACTIVE_FEATURES` as `UNSTABLE_FEATURES`.</title>
<updated>2023-10-15T21:17:23+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2023-10-05T08:43:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d284c8a2d7a2de918a966bee9c9069d7b5bf06bf'/>
<id>urn:sha1:d284c8a2d7a2de918a966bee9c9069d7b5bf06bf</id>
<content type='text'>
It's a better name, and lets "active features" refer to the features
that are active in a particular program, due to being declared or
enabled by the edition.

The commit also renames `Features::enabled` as `Features::active` to
match this; I changed my mind and have decided that "active" is a little
better thatn "enabled" for this, particularly because a number of
pre-existing comments use "active" in this way.

Finally, the commit renames `Status::Stable` as `Status::Accepted`, to
match `ACCEPTED_FEATURES`.
</content>
</entry>
</feed>
