<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_interface/src/interface.rs, branch 1.72.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.72.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.72.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2023-06-28T09:40:07+00:00</updated>
<entry>
<title>Auto merge of #112708 - flip1995:clippy-freezing-pc-with-ice, r=oli-obk</title>
<updated>2023-06-28T09:40:07+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2023-06-28T09:40:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8882507bc7dbad0cc0548204eb8777e51ac92332'/>
<id>urn:sha1:8882507bc7dbad0cc0548204eb8777e51ac92332</id>
<content type='text'>
Avoid calling queries during query stack printing

This has the side effect, that when Clippy should ICE (during an EarlyPass?) it will fill up the RAM with 2 GB/s and then freezes my Laptop. This is blocking the Clippy sync and might give some people really bad experiences, so this should be merged ASAP.

r? `@cjgillot`
cc `@Zoxc`

I only commented this on [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/.60try_print_query_stack.60.20has.20.60ImplicitCtx.60.20during.20.60EarlyPass.60/near/363926180). I should've left a comment on the PR as well. My bad.
</content>
</entry>
<entry>
<title>Provide more context for `rustc +nightly -Zunstable-options` on stable</title>
<updated>2023-06-27T15:23:33+00:00</updated>
<author>
<name>许杰友 Jieyou Xu (Joe)</name>
<email>jieyouxu@outlook.com</email>
</author>
<published>2023-06-22T21:56:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=cef812bd958d5037224aebe3721f3ffc9c80965e'/>
<id>urn:sha1:cef812bd958d5037224aebe3721f3ffc9c80965e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Avoid calling queries during query stack printing</title>
<updated>2023-06-27T14:12:07+00:00</updated>
<author>
<name>Oli Scherer</name>
<email>git-spam-no-reply9815368754983@oli-obk.de</email>
</author>
<published>2023-06-27T09:07:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b0142f603dd171dccf822a868284c93b8f6f6f91'/>
<id>urn:sha1:b0142f603dd171dccf822a868284c93b8f6f6f91</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Avoid `Lrc&lt;Box&lt;dyn CodegenBackend&gt;&gt;`.</title>
<updated>2023-06-21T23:18:09+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2023-06-21T23:18:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5dd7550a0887eb3a4edcad3f29de909b02e2e735'/>
<id>urn:sha1:5dd7550a0887eb3a4edcad3f29de909b02e2e735</id>
<content type='text'>
Because `Lrc&lt;Box&lt;T&gt;&gt;` is silly. (Clippy warns about `Rc&lt;Box&lt;T&gt;&gt;` and
`Arc&lt;Box&lt;T&gt;&gt;`, and it would warn here if (a) we used Clippy with rustc,
and (b) Clippy knew about `Lrc`.)
</content>
</entry>
<entry>
<title>Collect VTable stats &amp; add `-Zprint-vtable-sizes`</title>
<updated>2023-06-12T15:58:35+00:00</updated>
<author>
<name>Maybe Waffle</name>
<email>waffle.lapkin@gmail.com</email>
</author>
<published>2023-05-17T12:28:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f2545fb22554eb1b04528d490c681e583fdc31d0'/>
<id>urn:sha1:f2545fb22554eb1b04528d490c681e583fdc31d0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Write to stdout if `-` is given as output file</title>
<updated>2023-06-06T21:53:29+00:00</updated>
<author>
<name>Jing Peng</name>
<email>pj.hades@gmail.com</email>
</author>
<published>2023-02-26T20:27:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9b1a1e1d95d1e40bdf57ef9d37ccbac91fc9c280'/>
<id>urn:sha1:9b1a1e1d95d1e40bdf57ef9d37ccbac91fc9c280</id>
<content type='text'>
If `-o -` or `--emit KIND=-` is provided, output will be written
to stdout instead. Binary output (`obj`, `llvm-bc`, `link` and
`metadata`) being written this way will result in an error unless
stdout is not a tty. Multiple output types going to stdout will
trigger an error too, as they will all be mixded together.
</content>
</entry>
<entry>
<title>Don't leak the function that is called on drop</title>
<updated>2023-05-23T14:53:36+00:00</updated>
<author>
<name>Maybe Waffle</name>
<email>waffle.lapkin@gmail.com</email>
</author>
<published>2023-05-23T14:53:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e2b953063d1c6302dd61a2284f8da8b770ddc11d'/>
<id>urn:sha1:e2b953063d1c6302dd61a2284f8da8b770ddc11d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Avoid `&amp;format("...")` calls in error message code.</title>
<updated>2023-05-16T07:59:56+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2023-05-16T06:04:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=01e33a3600789b0e96511c4ac95fc114b507c79e'/>
<id>urn:sha1:01e33a3600789b0e96511c4ac95fc114b507c79e</id>
<content type='text'>
Error message all end up passing into a function as an `impl
Into&lt;{D,Subd}iagnosticMessage&gt;`. If an error message is creatd as
`&amp;format("...")` that means we allocate a string (in the `format!`
call), then take a reference, and then clone (allocating again) the
reference to produce the `{D,Subd}iagnosticMessage`, which is silly.

This commit removes the leading `&amp;` from a lot of these cases. This
means the original `String` is moved into the
`{D,Subd}iagnosticMessage`, avoiding the double allocations. This
requires changing some function argument types from `&amp;str` to `String`
(when all arguments are `String`) or `impl
Into&lt;{D,Subd}iagnosticMessage&gt;` (when some arguments are `String` and
some are `&amp;str`).
</content>
</entry>
<entry>
<title>Move expansion of query macros in rustc_middle to rustc_middle::query</title>
<updated>2023-05-15T06:49:13+00:00</updated>
<author>
<name>John Kåre Alsaker</name>
<email>john.kare.alsaker@gmail.com</email>
</author>
<published>2023-05-15T04:24:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=fff20a703db364d8b91c14cef4779f5e632df191'/>
<id>urn:sha1:fff20a703db364d8b91c14cef4779f5e632df191</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #108638 - Zoxc:erase-query-values-map, r=cjgillot</title>
<updated>2023-05-14T13:47:01+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2023-05-14T13:47:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8e8116cfe5b1affcfcc22ffb6bb0152573488114'/>
<id>urn:sha1:8e8116cfe5b1affcfcc22ffb6bb0152573488114</id>
<content type='text'>
Use dynamic dispatch for queries

This replaces most concrete query values `V` with `MaybeUninit&lt;[u8; { size_of::&lt;V&gt;() }]&gt;` reducing the code instantiated by queries. The compile time of `rustc_query_impl` is reduced by 27%. It is an alternative to https://github.com/rust-lang/rust/pull/107937 which uses unstable const generics while this uses a `EraseType` trait which maps query values to their erased variant.

This is achieved by introducing an `Erased` type which does sanity check with `cfg(debug_assertions)`. The query caches gets instantiated with these erased types leaving the code in `rustc_query_system` unaware of them. `rustc_query_system` is changed to use instances of `QueryConfig` so that `rustc_query_impl` can pass in `DynamicConfig` which holds a pointer to a virtual table.

&lt;table&gt;&lt;tr&gt;&lt;td rowspan="2"&gt;Benchmark&lt;/td&gt;&lt;td colspan="1"&gt;&lt;b&gt;Before&lt;/b&gt;&lt;/th&gt;&lt;td colspan="2"&gt;&lt;b&gt;After&lt;/b&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="right"&gt;Time&lt;/td&gt;&lt;td align="right"&gt;Time&lt;/td&gt;&lt;td align="right"&gt;%&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;🟣 &lt;b&gt;clap&lt;/b&gt;:check&lt;/td&gt;&lt;td align="right"&gt;1.7055s&lt;/td&gt;&lt;td align="right"&gt;1.6949s&lt;/td&gt;&lt;td align="right"&gt; -0.62%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;🟣 &lt;b&gt;hyper&lt;/b&gt;:check&lt;/td&gt;&lt;td align="right"&gt;0.2547s&lt;/td&gt;&lt;td align="right"&gt;0.2528s&lt;/td&gt;&lt;td align="right"&gt; -0.73%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;🟣 &lt;b&gt;regex&lt;/b&gt;:check&lt;/td&gt;&lt;td align="right"&gt;0.9590s&lt;/td&gt;&lt;td align="right"&gt;0.9553s&lt;/td&gt;&lt;td align="right"&gt; -0.39%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;🟣 &lt;b&gt;syn&lt;/b&gt;:check&lt;/td&gt;&lt;td align="right"&gt;1.5457s&lt;/td&gt;&lt;td align="right"&gt;1.5440s&lt;/td&gt;&lt;td align="right"&gt; -0.11%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;🟣 &lt;b&gt;syntex_syntax&lt;/b&gt;:check&lt;/td&gt;&lt;td align="right"&gt;5.9092s&lt;/td&gt;&lt;td align="right"&gt;5.9009s&lt;/td&gt;&lt;td align="right"&gt; -0.14%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Total&lt;/td&gt;&lt;td align="right"&gt;10.3741s&lt;/td&gt;&lt;td align="right"&gt;10.3479s&lt;/td&gt;&lt;td align="right"&gt; -0.25%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Summary&lt;/td&gt;&lt;td align="right"&gt;1.0000s&lt;/td&gt;&lt;td align="right"&gt;0.9960s&lt;/td&gt;&lt;td align="right"&gt; -0.40%&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table&gt;&lt;tr&gt;&lt;td rowspan="2"&gt;Benchmark&lt;/td&gt;&lt;td colspan="1"&gt;&lt;b&gt;Before&lt;/b&gt;&lt;/th&gt;&lt;td colspan="2"&gt;&lt;b&gt;After&lt;/b&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="right"&gt;Time&lt;/td&gt;&lt;td align="right"&gt;Time&lt;/td&gt;&lt;td align="right"&gt;%&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;🟣 &lt;b&gt;clap&lt;/b&gt;:check:initial&lt;/td&gt;&lt;td align="right"&gt;2.0605s&lt;/td&gt;&lt;td align="right"&gt;2.0575s&lt;/td&gt;&lt;td align="right"&gt; -0.15%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;🟣 &lt;b&gt;hyper&lt;/b&gt;:check:initial&lt;/td&gt;&lt;td align="right"&gt;0.3218s&lt;/td&gt;&lt;td align="right"&gt;0.3216s&lt;/td&gt;&lt;td align="right"&gt; -0.07%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;🟣 &lt;b&gt;regex&lt;/b&gt;:check:initial&lt;/td&gt;&lt;td align="right"&gt;1.1848s&lt;/td&gt;&lt;td align="right"&gt;1.1839s&lt;/td&gt;&lt;td align="right"&gt; -0.07%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;🟣 &lt;b&gt;syn&lt;/b&gt;:check:initial&lt;/td&gt;&lt;td align="right"&gt;1.9409s&lt;/td&gt;&lt;td align="right"&gt;1.9376s&lt;/td&gt;&lt;td align="right"&gt; -0.17%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;🟣 &lt;b&gt;syntex_syntax&lt;/b&gt;:check:initial&lt;/td&gt;&lt;td align="right"&gt;7.3105s&lt;/td&gt;&lt;td align="right"&gt;7.2928s&lt;/td&gt;&lt;td align="right"&gt; -0.24%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Total&lt;/td&gt;&lt;td align="right"&gt;12.8185s&lt;/td&gt;&lt;td align="right"&gt;12.7935s&lt;/td&gt;&lt;td align="right"&gt; -0.20%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Summary&lt;/td&gt;&lt;td align="right"&gt;1.0000s&lt;/td&gt;&lt;td align="right"&gt;0.9986s&lt;/td&gt;&lt;td align="right"&gt; -0.14%&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table&gt;&lt;tr&gt;&lt;td rowspan="2"&gt;Benchmark&lt;/td&gt;&lt;td colspan="1"&gt;&lt;b&gt;Before&lt;/b&gt;&lt;/th&gt;&lt;td colspan="2"&gt;&lt;b&gt;After&lt;/b&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="right"&gt;Time&lt;/td&gt;&lt;td align="right"&gt;Time&lt;/td&gt;&lt;td align="right"&gt;%&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;🟣 &lt;b&gt;clap&lt;/b&gt;:check:unchanged&lt;/td&gt;&lt;td align="right"&gt;0.4606s&lt;/td&gt;&lt;td align="right"&gt;0.4617s&lt;/td&gt;&lt;td align="right"&gt; 0.24%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;🟣 &lt;b&gt;hyper&lt;/b&gt;:check:unchanged&lt;/td&gt;&lt;td align="right"&gt;0.1335s&lt;/td&gt;&lt;td align="right"&gt;0.1336s&lt;/td&gt;&lt;td align="right"&gt; 0.08%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;🟣 &lt;b&gt;regex&lt;/b&gt;:check:unchanged&lt;/td&gt;&lt;td align="right"&gt;0.3324s&lt;/td&gt;&lt;td align="right"&gt;0.3346s&lt;/td&gt;&lt;td align="right"&gt; 0.65%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;🟣 &lt;b&gt;syn&lt;/b&gt;:check:unchanged&lt;/td&gt;&lt;td align="right"&gt;0.6268s&lt;/td&gt;&lt;td align="right"&gt;0.6307s&lt;/td&gt;&lt;td align="right"&gt; 0.64%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;🟣 &lt;b&gt;syntex_syntax&lt;/b&gt;:check:unchanged&lt;/td&gt;&lt;td align="right"&gt;1.8248s&lt;/td&gt;&lt;td align="right"&gt;1.8508s&lt;/td&gt;&lt;td align="right"&gt;💔  1.43%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Total&lt;/td&gt;&lt;td align="right"&gt;3.3779s&lt;/td&gt;&lt;td align="right"&gt;3.4113s&lt;/td&gt;&lt;td align="right"&gt; 0.99%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Summary&lt;/td&gt;&lt;td align="right"&gt;1.0000s&lt;/td&gt;&lt;td align="right"&gt;1.0061s&lt;/td&gt;&lt;td align="right"&gt; 0.61%&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

It's based on https://github.com/rust-lang/rust/pull/108167.

r? `@cjgillot`
</content>
</entry>
</feed>
