profile
viewpoint

F001/You-Dont-Know-JS 1

A book series on JavaScript. @YDKJS on twitter.

F001/8cc 0

A Small C Compiler

F001/deno 0

A secure TypeScript runtime on V8

F001/flatbuffers 0

FlatBuffers: Memory Efficient Serialization Library

F001/librustc_platform_intrinsics 0

Generate intrinsics by build scripts

F001/rayon 0

Rayon: A data parallelism library for Rust

F001/rfcs 0

RFCs for changes to Rust

push eventF001/rust

Erik Desjardins

commit sha 144b1592e8186ab7c24212058bb2c897260897e3

document test changes

view details

Ximin Luo

commit sha 0cf17e750d7790e0f2fc1fb184b6f917f55462ca

rustbuild: fix bad usage of UNIX exec() in rustc wrapper exec never returns, it replaces the current process. so anything after it is unreachable. that's not how exec_cmd() is used in the surrounding code

view details

bors

commit sha fa36f960687c41caf5b260ab7610ebd83a7860dd

Auto merge of #72121 - Aaron1011:final-hygiene-rebase, r=petrochenkov Serialize span hygiene data Fixes #68686 Fixes #70963 This PR serializies global hygiene data into both the incremental compilation cache and the crate metadata. This allows hygiene information to be preserved across compilation sessions (both incremental and cross-crate). When serializing a `SyntaxContext`, we simply write out the raw id from the current compilation session. Whenever we deserialize a `SyntaxContext`, we 'remap' the id to a fresh id in our current compilation session, and load the associated `SyntaxContextData`. As a result, some 'upstream' `SyntaxContextData` will end up getting duplicated in 'downstream' crates. This only happens when we actually need to use an 'upstream' `SyntaxContext`, which occurs when we deserialize a `Span` that requires it. We serialize an `ExpnData` into the metadata of the crate which generated it. An `ExpnId` is serialized as a reference into the crate which 'owns' the corresponding `ExpnData`, which avoids duplication in downstream crates. I've included a macros 2.0 test which requires hygiene serialization to compile successfully. TODO: - [x] <strike>Determine how many additional `DefId`s we end up creating for `ExpnId`s - this may be significant for `libcore`, which uses macros heavily. Alternatively, we could try to compute a `DefPathHash` without making a corresponding `DefId` - however, this might significantly complicate the implementation.</strike> (We no longer create `DefId`s) - [x] Investigate the overhead of duplicating `SyntaxContextData` in crate metadata. - [x] Investigate how `resolve_crate_root` behaves with deserialized hygiene data - the current logic may be wrong. - [x] Add additional tests. The effects of this PR are usually only noticeable when working with headache-inducing macro expansions (e.g. macros expanding to macros), so there are lots of corner cases to test. - [x] Determine what to do about this: https://github.com/rust-lang/rust/blob/4774f9b523c942cb5c0236542b5bcac76f6b6b9a/src/librustc_resolve/build_reduced_graph.rs#L892 - [x] Determine if we need to do anything here - I think the fact that `src/test/ui/hygiene/cross_crate_hygiene.rs` passes means that this is working. https://github.com/rust-lang/rust/blob/3d5d0f898c2f3998e50c2180c6202f193c3acdbc/src/librustc_resolve/imports.rs#L1389-L1392

view details

Ximin Luo

commit sha b99668bd221ea2fe99141e7de6db6a4b86efb7b6

rustbuild: rename exec_cmd -> status_code for clarity

view details

Ryan1729

commit sha 5a644964fc05752a1283dab238b81de7583f7d03

run cargo dev new_lint specifically: cargo dev new_lint --name derive_ord_xor_partial_ord --category correctness --pass late

view details

Ryan1729

commit sha fc20ee63a105c0df78113126e8749f5958d7dc47

move derive_ord_xor_partial_ord into derive mod so we can reuse derive_hash_xor_partial_eq code later

view details

Ryan1729

commit sha 0722991b62fd6e4d7d7a51425274f3288bcc96bc

add test for derive_ord_xor_partial_ord based on test for derive_hash_xor_partial_eq

view details

bors

commit sha f721fb5933f130b7a5b72152dbacd298e9ee7f02

Auto merge of #74784 - anp:track-vtables, r=eddyb Fix #[track_caller] shims for trait objects. We were missing an Instance::resolve_for_fn_ptr in resolve_for_vtable. Closes #74764.

view details

Ryan1729

commit sha 068acbd27b19a4a7be3a9d00954ecfad8a0e6553

initial implementation based on code for `derive_hash_xor_partial_eq` which is showing one error when there should be four

view details

Ryan1729

commit sha a8d6eda93049f0077c1515bec35fe0359ea43f96

use get_trait_def_id to check for Ord trait

view details

Ryan1729

commit sha 6c3e4591b87e6c690b31166867484675dcb1e48c

update reference since we see the expected four errors

view details

Ryan1729

commit sha 7dc974815ec8736f026dc10a070137e0d4601d52

remove is_local check since getting the def_id directly makes it unnecessary

view details

Ryan1729

commit sha 431924ccf69bc4d4f0597f12749e8b1bcb285710

add description for derive_ord_xor_partial_ord

view details

Ryan1729

commit sha 668b7474b47791c8c9af10130356b681b3bf3a84

run cargo dev fmt and fix overly long line

view details

bors

commit sha 1841fb97e17f5e41c609cd11ab114c7ac1f3de2a

Auto merge of #74653 - petrochenkov:pmenv, r=dtolnay proc_macro: Add API for tracked access to environment variables Continuation of https://github.com/rust-lang/rust/pull/71858. `proc_macro::tracked_env::var` is similar to regular `env::var` called from a proc macro, except that it also adds the accessed variable to depinfo.

view details

Ryan1729

commit sha ca03f2b650a022d06df6c02c8947a74944815381

s/pord/partial_ord/ to fix dogfood failure

view details

Ryan1729

commit sha 12a6eee045f30785a1eb7572a4cfea3c5cec8a4c

fill in lint description for DERIVE_ORD_XOR_PARTIAL_ORD

view details

Ryan1729

commit sha 94b10a6e5ab003a03b6c7b60ffe5a3b366e0529a

run cargo dev update_lints

view details

bors

commit sha 9af6b3d4e74cf31c21821430de755219bf239d96

Auto merge of #74737 - smmalis37:astconv-factor, r=davidtwco Pull out some duplicated code into a new function I debated pulling the actual struct_span_err calls into the new method, but I felt like having to pass in multiple arguments for it and wiring up string formatting outweighed the benefits. Viewing the diff with whitespace ignored is recommended.

view details

Yuki Okushi

commit sha 1361b02c9fc9a96ab4baf82994a0f1b29beff41a

Rollup merge of #74088 - tmiasko:write-all-vectored-empty, r=KodrAus Avoid writes without any data in `Write::write_all_vectored` Previously, when non-empty sequence of empty IoSlices have been provided to `Write::write_all_vectored`, the buffers would be written as is with `Write::write_vectored` and subsequently the return value `Ok(0)` would be misinterpreted as an error. Avoid writes without any data by advancing the buffers first. This matches the documented behaviour of `Write::write_all_vectored` and is analogous to what happens in `Write::write_all`.

view details

push time in 3 days

more