<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_span/src/symbol, branch auto</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=auto</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=auto'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-06-30T10:42:27+00:00</updated>
<entry>
<title>Introduce `ByteSymbol`.</title>
<updated>2025-06-30T10:42:27+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2025-06-01T22:59:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=478f8287c0e2c35cda511fd3ac01b7ac78ee7cfe'/>
<id>urn:sha1:478f8287c0e2c35cda511fd3ac01b7ac78ee7cfe</id>
<content type='text'>
It's like `Symbol` but for byte strings. The interner is now used for
both `Symbol` and `ByteSymbol`. E.g. if you intern `"dog"` and `b"dog"`
you'll get a `Symbol` and a `ByteSymbol` with the same index and the
characters will only be stored once.

The motivation for this is to eliminate the `Arc`s in `ast::LitKind`, to
make `ast::LitKind` impl `Copy`, and to avoid the need to arena-allocate
`ast::LitKind` in HIR. The latter change reduces peak memory by a
non-trivial amount on literal-heavy benchmarks such as `deep-vector` and
`tuple-stress`.

`Encoder`, `Decoder`, `SpanEncoder`, and `SpanDecoder` all get some
changes so that they can handle normal strings and byte strings.

This change does slow down compilation of programs that use
`include_bytes!` on large files, because the contents of those files are
now interned (hashed). This makes `include_bytes!` more similar to
`include_str!`, though `include_bytes!` contents still aren't escaped,
and hashing is still much cheaper than escaping.
</content>
</entry>
<entry>
<title>Allow drivers to supply a list of extra symbols to intern</title>
<updated>2025-04-10T13:39:23+00:00</updated>
<author>
<name>Alex Macleod</name>
<email>alex@macleod.io</email>
</author>
<published>2025-03-19T02:19:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f74032621621d32cf59739b00ecc8f7f9510fc28'/>
<id>urn:sha1:f74032621621d32cf59739b00ecc8f7f9510fc28</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Reformat `use` declarations.</title>
<updated>2024-07-28T22:26:52+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2024-07-28T22:13:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=84ac80f1921afc243d71fd0caaa4f2838c294102'/>
<id>urn:sha1:84ac80f1921afc243d71fd0caaa4f2838c294102</id>
<content type='text'>
The previous commit updated `rustfmt.toml` appropriately. This commit is
the outcome of running `x fmt --all` with the new formatting options.
</content>
</entry>
<entry>
<title>Use `FxIndexSet` in the symbol interner.</title>
<updated>2023-11-02T20:19:41+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2023-11-02T06:02:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=94a36d2ce53f9991a529f4d8c3621f73e719de23'/>
<id>urn:sha1:94a36d2ce53f9991a529f4d8c3621f73e719de23</id>
<content type='text'>
It makes the code a little nicer.

As part of this, the interner's `Default` impl is removed and `prefill`
is used in a test instead.
</content>
</entry>
<entry>
<title>Move the Lock into symbol::Interner</title>
<updated>2021-09-15T16:46:45+00:00</updated>
<author>
<name>bjorn3</name>
<email>bjorn3@users.noreply.github.com</email>
</author>
<published>2021-09-15T16:33:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=05c09cb62d05df0ccb65503992a7dae3b8b12b08'/>
<id>urn:sha1:05c09cb62d05df0ccb65503992a7dae3b8b12b08</id>
<content type='text'>
This makes it easier to make the symbol interner (near) lock free in
case of concurrent accesses in the future.
</content>
</entry>
<entry>
<title>Rework SESSION_GLOBALS API to prevent overwriting it</title>
<updated>2021-07-08T14:16:28+00:00</updated>
<author>
<name>Guillaume Gomez</name>
<email>guillaume1.gomez@gmail.com</email>
</author>
<published>2021-05-05T19:31:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a2654fb64c9c9d368063b488693d8da17bc9b4e9'/>
<id>urn:sha1:a2654fb64c9c9d368063b488693d8da17bc9b4e9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>mv compiler to compiler/</title>
<updated>2020-08-30T15:45:07+00:00</updated>
<author>
<name>mark</name>
<email>markm@cs.wisc.edu</email>
</author>
<published>2020-08-28T03:58:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9e5f7d5631b8f4009ac1c693e585d4b7108d4275'/>
<id>urn:sha1:9e5f7d5631b8f4009ac1c693e585d4b7108d4275</id>
<content type='text'>
</content>
</entry>
</feed>
