<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/librustc_data_structures/obligation_forest, branch 1.44.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.44.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.44.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2020-02-24T13:56:29+00:00</updated>
<entry>
<title>remove redundant clones in librustc_mir_build and librustc_data_structures</title>
<updated>2020-02-24T13:56:29+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>matthias.krueger@famsik.de</email>
</author>
<published>2020-02-24T13:42:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5ae4500eff740b5935fc24b23e3c4be9789caf37'/>
<id>urn:sha1:5ae4500eff740b5935fc24b23e3c4be9789caf37</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #68475 - Aaron1011:fix/forest-caching, r=nikomatsakis</title>
<updated>2020-02-14T22:17:45+00:00</updated>
<author>
<name>Yuki Okushi</name>
<email>huyuumi.dev@gmail.com</email>
</author>
<published>2020-02-14T22:17:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2c5bdee9e4a750355c99a1fbed57b20ba953766b'/>
<id>urn:sha1:2c5bdee9e4a750355c99a1fbed57b20ba953766b</id>
<content type='text'>
Use a `ParamEnvAnd&lt;Predicate&gt;` for caching in `ObligationForest`

Previously, we used a plain `Predicate` to cache results (e.g. successes
and failures) in ObligationForest. However, fulfillment depends on the
precise `ParamEnv` used, so this is unsound in general.

This commit changes the impl of `ForestObligation` for
`PendingPredicateObligation` to use `ParamEnvAnd&lt;Predicate&gt;` instead of
`Predicate` for the associated type. The associated type and method are
renamed from 'predicate' to 'cache_key' to reflect the fact that type is
no longer just a predicate.
</content>
</entry>
<entry>
<title>Remove `RefCell` usage from `ObligationForest`.</title>
<updated>2020-02-06T01:00:50+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>nnethercote@mozilla.com</email>
</author>
<published>2020-01-31T02:39:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6ad725e9f09f8ac1e577460ce31bc2928fe3531f'/>
<id>urn:sha1:6ad725e9f09f8ac1e577460ce31bc2928fe3531f</id>
<content type='text'>
It's not needed.
</content>
</entry>
<entry>
<title>Use BufWriter</title>
<updated>2020-02-01T10:26:45+00:00</updated>
<author>
<name>Shotaro Yamada</name>
<email>sinkuu@sinkuu.xyz</email>
</author>
<published>2020-01-22T15:22:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=482c761704b9f7d08d00b6cf4c567db427da7ec7'/>
<id>urn:sha1:482c761704b9f7d08d00b6cf4c567db427da7ec7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use a `ParamEnvAnd&lt;Predicate&gt;` for caching in `ObligationForest`</title>
<updated>2020-01-23T03:20:18+00:00</updated>
<author>
<name>Aaron Hill</name>
<email>aa1ronham@gmail.com</email>
</author>
<published>2020-01-23T00:23:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=90afc0765e5e536af6307b63e1655a38df06e235'/>
<id>urn:sha1:90afc0765e5e536af6307b63e1655a38df06e235</id>
<content type='text'>
Previously, we used a plain `Predicate` to cache results (e.g. successes
and failures) in ObligationForest. However, fulfillment depends on the
precise `ParamEnv` used, so this is unsound in general.

This commit changes the impl of `ForestObligation` for
`PendingPredicateObligation` to use `ParamEnvAnd&lt;Predicate&gt;` instead of
`Predicate` for the associated type. The associated type and method are
renamed from 'predicate' to 'cache_key' to reflect the fact that type is
no longer just a predicate.
</content>
</entry>
<entry>
<title>Revert parts of #66405.</title>
<updated>2019-12-31T22:58:29+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>nnethercote@mozilla.com</email>
</author>
<published>2019-12-20T23:53:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=18a366990335748d6020e306327048de9e4340c3'/>
<id>urn:sha1:18a366990335748d6020e306327048de9e4340c3</id>
<content type='text'>
Because it caused major performance regressions in some cases.

That PR had five commits, two of which affected performance, and three
of which were refactorings. This change undoes the performance-affecting
changes, while keeping the refactorings in place.

Fixes #67454.
</content>
</entry>
<entry>
<title>Format the world</title>
<updated>2019-12-22T22:42:47+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2019-12-22T22:42:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a06baa56b95674fc626b3c3fd680d6a65357fe60'/>
<id>urn:sha1:a06baa56b95674fc626b3c3fd680d6a65357fe60</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Avoid re-processing nodes in `find_cycles_from_node`.</title>
<updated>2019-12-12T21:36:25+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>nnethercote@mozilla.com</email>
</author>
<published>2019-12-09T03:51:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=cb212938d424a94695e35bb92e20613a2af72a0f'/>
<id>urn:sha1:cb212938d424a94695e35bb92e20613a2af72a0f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove an unnecessary local variable.</title>
<updated>2019-12-12T21:36:25+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>nnethercote@mozilla.com</email>
</author>
<published>2019-12-06T02:41:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=76916d7a4b948119de05135e8d797cf0d40bfd58'/>
<id>urn:sha1:76916d7a4b948119de05135e8d797cf0d40bfd58</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove some `debug!` statements.</title>
<updated>2019-12-12T21:36:25+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>nnethercote@mozilla.com</email>
</author>
<published>2019-12-06T02:37:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4ec87d5cd2024492faaa11bd121d39b943710357'/>
<id>urn:sha1:4ec87d5cd2024492faaa11bd121d39b943710357</id>
<content type='text'>
Because I am tired of looking at them.
</content>
</entry>
</feed>
