- 01 8月, 2020 1 次提交
-
-
由 kadmin 提交于
-
- 30 7月, 2020 20 次提交
-
-
由 bors 提交于
Replace all uses of `log::log_enabled` with `Debug` printers cc @RalfJung this touches a bunch of logging in the miri engine. There are some visual changes, mainly that in several cases we stop prepending lines with the module path and just have a newline.
-
由 bors 提交于
Update cargo 14 commits in aa6872140ab0fa10f641ab0b981d5330d419e927..974eb438da8ced6e3becda2bbf63d9b643eacdeb 2020-07-23 13:46:27 +0000 to 2020-07-29 16:15:05 +0000 - Fix O0 build scripts by default without `[profile.release]` (rust-lang/cargo#8560) - Emphasize git dependency version locking behavior. (rust-lang/cargo#8561) - Update lock file encodings on changes (rust-lang/cargo#8554) - Fix sporadic lto test failures. (rust-lang/cargo#8559) - build-std: Fix libraries paths following upstream (rust-lang/cargo#8558) - Flag git http errors as maybe spurious (rust-lang/cargo#8553) - Display builtin aliases with `cargo --list` (rust-lang/cargo#8542) - Check manifest for requiring nonexistent features (rust-lang/cargo#7950) - Clarify test name filter usage (rust-lang/cargo#8552) - Revert Cargo Book changes for default edition (rust-lang/cargo#8551) - Prepare for not defaulting to master branch for git deps (rust-lang/cargo#8522) - Include `+` for crates.io feature requirements in the Cargo Book section on features (rust-lang/cargo#8547) - Update termcolor and fwdansi versions (rust-lang/cargo#8540) - Cargo book nitpick in Manifest section (rust-lang/cargo#8543)
-
由 bors 提交于
Rollup of 10 pull requests Successful merges: - #74742 (Remove links to rejected errata 4406 for RFC 4291) - #74819 (Point towards `format_spec`; it is in other direction) - #74852 (Explain why inlining default ToString impl) - #74869 (Make closures and generators a must use types) - #74873 (symbol mangling: use ty::print::Print for consts) - #74902 (Remove deprecated unstable `{Box,Rc,Arc}::into_raw_non_null` functions) - #74904 (Fix some typos in src/librustdoc/clean/auto_trait.rs) - #74910 (fence docs: fix example Mutex) - #74912 (Fix broken link in unstable book `plugin`) - #74927 (Change the target data layout to specify more values) Failed merges: r? @ghost
-
由 Manish Goregaokar 提交于
Change the target data layout to specify more values This does not actually alter the previously specified important parts, but apparently `rustc` cares about more layout components than `cargo-xbuild` ever did. This extends the data layout to be a fully specified layout, as given in the error from issue #74767 * Closes https://github.com/rust-lang/rust/issues/74767
-
由 Manish Goregaokar 提交于
Fix broken link in unstable book `plugin` There is broken link in https://doc.rust-lang.org/unstable-book/language-features/plugin.html#lint-plugins.
-
由 Manish Goregaokar 提交于
fence docs: fix example Mutex Fixes https://github.com/rust-lang/rust/issues/74808 Cc @pca006132
-
由 Manish Goregaokar 提交于
Fix some typos in src/librustdoc/clean/auto_trait.rs
-
由 Manish Goregaokar 提交于
Remove deprecated unstable `{Box,Rc,Arc}::into_raw_non_null` functions FCP: https://github.com/rust-lang/rust/issues/47336#issuecomment-619369613
-
由 Manish Goregaokar 提交于
symbol mangling: use ty::print::Print for consts r? @EddyB
-
由 Manish Goregaokar 提交于
Make closures and generators a must use types Warn about unused expressions with closure or generator type. This follows existing precedence of must use annotations present on `FnOnce`, `FnMut`, `Fn` traits, which already indirectly apply to closures in some cases, e.g.,: ```rust fn f() -> impl FnOnce() { || {} } fn main() { // an existing warning: unused implementer of `std::ops::FnOnce` that must be used: f(); // a new warning: unused closure that must be used: || {}; } ``` Closes #74691.
-
由 Manish Goregaokar 提交于
Explain why inlining default ToString impl Trying to remove inline attribute from default ToString impl causes regression. Perf result at <https://github.com/rust-lang/rust/pull/74852#issuecomment-664812994>.
-
由 Manish Goregaokar 提交于
Point towards `format_spec`; it is in other direction
-
由 Manish Goregaokar 提交于
Remove links to rejected errata 4406 for RFC 4291 Fixes #74198. For now I simply removed the links, the docs seems clear enough to me but I'm no expert in the domain so don't hesitate to correct me if more is needed. cc @ghanan94. @rustbot modify labels: T-doc, T-libs
-
由 Lokathor 提交于
This does not actually alter the previously specified important parts, but apparently `rustc` cares about more layout components than `cargo-xbuild` ever did. This extends the data layout to be fully specified layout, as given in the error from issue #74767
-
由 bors 提交于
Refactor librustdoc html backend This PR moves several types out of the librustdoc::html module so that they can be used by a future json backend. These changes are a re-implementation of [some work done 6 months ago](https://github.com/rust-lang/rust/compare/master...GuillaumeGomez:multiple-output-formats) by @GuillaumeGomez. I'm currently working on said json backend and will put up an RFC soon with the proposed implementation. There are a couple of changes that are more substantial than relocating structs to a different module: 1. The `Cache` is no longer part of the `html::render::Context` type and therefor it needs to be explicitly passed to any functions that access it. 2. The driving function `html::render::run` has been rewritten to use the `FormatRenderer` trait which should allow different backends to re-use the driving code. r? @GuillaumeGomez cc @tmandry @betamos
-
由 Joseph Ryan 提交于
-
由 Joseph Ryan 提交于
-
由 bors 提交于
Fixed coverage map issues; better aligned with LLVM APIs Found some problems with the coverage map encoding when testing with more than one counter per function. While debugging, I realized some better ways to structure the Rust implementation of the coverage mapping generator. I refactored somewhat, resulting in less code overall, expanded coverage of LLVM Coverage Map capabilities, and much closer alignment with LLVM data structures, APIs, and naming. This should be easier to follow and easier to maintain. r? @tmandry Rust compiler MCP rust-lang/compiler-team#278 Relevant issue: #34701 - Implement support for LLVMs code coverage instrumentation
-
由 Eric Huss 提交于
-
由 bors 提交于
Fix #70767 This PR changes the format of MIR dump filenames to include the crate name rather than `rustc` at the start. As a result, we can now place mir-opt tests in the same directory as the source files, like with UI tests. I had to make sure that `compiletest` added a bit_width suffix to the expected files when appropriate but otherwise the change is only moving the files to the correct location and ensuring that the `EMIT_MIR` lines are correct. Fixes #70767 cc @oli-obk
-
- 29 7月, 2020 19 次提交
-
-
由 bors 提交于
Stabilize const_type_id feature The tracking issue for `const_type_id` points to the ill-fated #41875. So I'm re-energizing `TypeId` shenanigans by opening this one up to see if there's anything blocking us from stabilizing the constification of type ids. Will wait for CI before pinging teams/groups. ----- This PR stabilizes the `const_type_id` feature, which allows `TypeId::of` (and the underlying unstable intrinsic) to be called in constant contexts. There are some [sanity tests](https://github.com/rust-lang/rust/blob/master/src/test/ui/consts/const-typeid-of-rpass.rs) that demonstrate its usage, but I’ve included some more below. As a simple example, you could create a constant item that contains some type ids: ```rust use std::any::TypeId; const TYPE_IDS: [TypeId; 2] = [ TypeId::of::<u32>(), TypeId::of::<i32>(), ]; assert_eq!(TypeId::of::<u32>(), TYPE_IDS[0]); ``` Type ids can also now appear in associated constants. You could create a trait that associates each type with its constant type id: ```rust trait Any where Self: 'static { const TYPE_ID: TypeId = TypeId::of::<Self>(); } impl<T: 'static> Any for T { } assert_eq!(TypeId::of::<usize>(), usize::TYPE_ID); ``` `TypeId::of` is generic, which we saw above in the way the generic `Self` argument was used. This has some implications for const evaluation. It means we can make trait impls evaluate differently depending on information that wasn't directly passed through the trait system. This violates the _parametricity_ property, which requires all instances of a generic function to behave the same way with respect to its generic parameters. That's not unique to `TypeId::of`, other generic const functions based on compiler intrinsics like `mem::align_of` can also violate parametricity. In practice Rust doesn't really have type parametricity anyway since it monomorphizes generics into concrete functions, so violating it using type ids isn’t new. As an example of how impls can behave differently, you could combine constant type ids with the `const_if_match` feature to dispatch calls based on the type id of the generic `Self`, rather than based on information about `Self` that was threaded through trait bounds. It's like a rough-and-ready form of specialization: ```rust #![feature(const_if_match)] trait Specialized where Self: 'static { // An associated constant that determines the function to call // at compile-time based on `TypeId::of::<Self>`. const CALL: fn(&Self) = { const USIZE: TypeId = TypeId::of::<usize>(); match TypeId::of::<Self>() { // Use a closure for `usize` that transmutes the generic `Self` to // a concrete `usize` and dispatches to `Self::usize`. USIZE => |x| Self::usize(unsafe { &*(x as *const Self as *const usize) }), // For other types, dispatch to the generic `Self::default`. _ => Self::default, } }; fn call(&self) { // Call the function we determined at compile-time (Self::CALL)(self) } fn default(x: &Self); fn usize(x: &usize); } // Implement our `Specialized` trait for any `Debug` type. impl<T: fmt::Debug + 'static> Specialized for T { fn default(x: &Self) { println!("default: {:?}", x); } fn usize(x: &usize) { println!("usize: {:?}", x); } } // Will print "usize: 42" Specialized::call(&42usize); // Will print "default: ()" Specialized::call(&()); ``` Type ids have some edges that this stabilization exposes to more contexts. It's possible for type ids to collide (but this is a bug). Since they can change between compiler versions, it's never valid to cast a type id to its underlying value.
-
由 Xavier Denis 提交于
-
由 Rich Kadel 提交于
Some were in librustc_codegen_llvm, but others are not tied to LLVM, so I put them in a new crate: librustc_codegen_ssa/coverageinfo/ffi.rs
-
由 Takayuki Nakata 提交于
-
由 bors 提交于
MinGW: enable dllexport/dllimport Fixes (only when using LLD) https://github.com/rust-lang/rust/issues/50176 Fixes https://github.com/rust-lang/rust/issues/72319 This makes `windows-gnu` on pair with `windows-msvc` when it comes to symbol exporting. For MinGW it means both good things like correctly working dllimport/dllexport, ability to link with LLD and bad things like https://github.com/rust-lang/rust/issues/27438. Not sure but maybe this should land behind unstable compiler option (`-Z`) or environment variable?
-
由 Ralf Jung 提交于
-
由 Mateusz Mikuła 提交于
-
由 Mateusz Mikuła 提交于
This fixes various cases where LD could not guess dllexport correctly and greatly improves compatibility with LLD which is not going to support linker scripts anytime soon
-
由 Xavier Denis 提交于
-
由 bors 提交于
Fix opening docs for std crates with ./x.py doc --open library/* The directories for core, alloc, std, proc_macro, and test crates now correspond directly to the crate name, and stripping the "lib" prefix is no longer necessary.
-
由 Tomasz Miąsko 提交于
The directories for core, alloc, std, proc_macro, and test crates now correspond directly to the crate name and stripping the "lib" prefix is no longer necessary.
-
由 Josh Triplett 提交于
-
由 Oliver Scherer 提交于
-
-
由 bors 提交于
Update `fs::remove_file` docs Mention that absence of file causes an error
-
由 Tomasz Miąsko 提交于
-
由 Lzu Tao 提交于
-
由 Imbolc 提交于
Mention that absence of file causes an error
-
由 bors 提交于
Cache non-exhaustive separately from attributes This prevents cross-crate attribute loading from metadata just for non_exhaustive checking; cross-crate attribute loading implies disk reading and is relatively slow.
-