about summary refs log tree commit diff
path: root/src/test/run-pass/auxiliary
AgeCommit message (Collapse)AuthorLines
2019-07-27tests: Move run-pass tests with naming conflicts to uiVadim Petrochenkov-30/+0
2019-07-27tests: Move run-pass tests without naming conflicts to uiVadim Petrochenkov-651/+0
2019-07-06Remove duplicated arc_wake.rsAndrew Xu-64/+0
The auxiliary file arc_wake.rs is in run-pass/auxiliary and also ui/async-await/auxiliary. Remove the former one as their contents are same. Move run-pass/futures-api.rs to ui/async-await/futures-api.rs as it needs to use arc_wake.rs.
2019-06-08Turn `#[allocator]` into a built-in attribute and rename it to ↵Vadim Petrochenkov-59/+0
`#[rustc_allocator]`
2019-04-23Stabilize futures_apiTaylor Cramer-2/+0
2019-04-08Rename Waker::new_unchecked to Waker::from_rawTaylor Cramer-1/+1
2019-04-08Add Waker::wake_by_ref and make Waker::wake consume the WakerTaylor Cramer-7/+17
2019-04-05Future-proof the Futures APITaylor Cramer-7/+7
2019-03-14Moved issue tests to subdirs and normalised names.Alexander Regueiro-0/+0
2019-02-12Merging masterMatthias Einwag-3/+3
2019-02-10tests: doc commentsAlexander Regueiro-3/+3
2019-02-06Change RawWaker constructor to const fnMatthias Einwag-8/+2
2019-02-05Move ArcWake in common test file.Matthias Einwag-0/+62
2018-12-25Remove licensesMark Rousskov-360/+0
2018-12-19FIXME(31702) remove fixme, move auxiliaries to the right place and fix ↵Niv Kaminer-56/+0
hr_lifetime_in_assoc_type warning
2018-12-11std: Depend directly on crates.io cratesAlex Crichton-3/+3
Ever since we added a Cargo-based build system for the compiler the standard library has always been a little special, it's never been able to depend on crates.io crates for runtime dependencies. This has been a result of various limitations, namely that Cargo doesn't understand that crates from crates.io depend on libcore, so Cargo tries to build crates before libcore is finished. I had an idea this afternoon, however, which lifts the strategy from #52919 to directly depend on crates.io crates from the standard library. After all is said and done this removes a whopping three submodules that we need to manage! The basic idea here is that for any crate `std` depends on it adds an *optional* dependency on an empty crate on crates.io, in this case named `rustc-std-workspace-core`. This crate is overridden via `[patch]` in this repository to point to a local crate we write, and *that* has a `path` dependency on libcore. Note that all `no_std` crates also depend on `compiler_builtins`, but if we're not using submodules we can publish `compiler_builtins` to crates.io and all crates can depend on it anyway! The basic strategy then looks like: * The standard library (or some transitive dep) decides to depend on a crate `foo`. * The standard library adds ```toml [dependencies] foo = { version = "0.1", features = ['rustc-dep-of-std'] } ``` * The crate `foo` has an optional dependency on `rustc-std-workspace-core` * The crate `foo` has an optional dependency on `compiler_builtins` * The crate `foo` has a feature `rustc-dep-of-std` which activates these crates and any other necessary infrastructure in the crate. A sample commit for `dlmalloc` [turns out to be quite simple][commit]. After that all `no_std` crates should largely build "as is" and still be publishable on crates.io! Notably they should be able to continue to use stable Rust if necessary, since the `rename-dependency` feature of Cargo is soon stabilizing. As a proof of concept, this commit removes the `dlmalloc`, `libcompiler_builtins`, and `libc` submodules from this repository. Long thorns in our side these are now gone for good and we can directly depend on crates.io! It's hoped that in the long term we can bring in other crates as necessary, but for now this is largely intended to simply make it easier to manage these crates and remove submodules. This should be a transparent non-breaking change for all users, but one possible stickler is that this almost for sure breaks out-of-tree `std`-building tools like `xargo` and `cargo-xbuild`. I think it should be relatively easy to get them working, however, as all that's needed is an entry in the `[patch]` section used to build the standard library. Hopefully we can work with these tools to solve this problem! [commit]: https://github.com/alexcrichton/dlmalloc-rs/commit/28ee12db813a3b650a7c25d1c36d2c17dcb88ae3
2018-11-30tests: use `force-host` and `no-prefer-dynamic` in all proc_macro tests.Eduard-Mihai Burtescu-0/+3
2018-11-30tests: move all proc_macro tests from -fulldeps.Eduard-Mihai Burtescu-0/+121
2018-09-06Move a bunch of auxiliary support files into `ui/run-pass/**/auxiliary`.Felix S. Klock II-4061/+0
2018-08-31Restrict most uses of `const_fn` to `min_const_fn`Oliver Schneider-2/+2
2018-08-22Remove Ty prefix from Ty{Bool|Char|Int|Uint|Float|Str}varkor-6/+6
2018-08-22Remove Ty prefix from Ty{Foreign|Param}varkor-1/+1
2018-08-22Remove Ty prefix from ↵varkor-9/+9
Ty{Adt|Array|Slice|RawPtr|Ref|FnDef|FnPtr|Dynamic|Closure|Generator|GeneratorWitness|Never|Tuple|Projection|Anon|Infer|Error}
2018-08-20Removed `raw_identifiers` feature gate.Alexander Regueiro-2/+0
2018-08-17Stabilize `use_extern_macros`Vadim Petrochenkov-1/+0
2018-08-05Fix 2018 edition testsvarkor-2/+0
2018-08-05Fix run-pass-fulldeps testsvarkor-7/+1
2018-08-05Convert unknown_features lint into an errorvarkor-4/+0
2018-07-29resolve: Modularize crate-local `#[macro_export] macro_rules`Vadim Petrochenkov-0/+18
2018-06-30Fixed bug with miri const evaluation where allocation is recursively borrowed.Alexander Regueiro-0/+11
2018-06-26add edition compiletest header + fix testsmark-2/+2
2018-05-30Prohibit duplicate `macro_export`sVadim Petrochenkov-0/+15
2018-05-20resolve: Don't add unnecessary import candidates for `prefix::{self}` importsVadim Petrochenkov-0/+16
2018-05-17Remove the `proc` keyword againVadim Petrochenkov-54/+0
2018-05-17Add testsVadim Petrochenkov-0/+130
2018-05-01Remove `macro_reexport`Vadim Petrochenkov-47/+0
It's subsumed by `feature(use_extern_macros)` and `pub use`
2018-04-28Make `trait_of_item` return None for non associated itemsShotaro Yamada-0/+16
It have returned `Some` for constants in a trait definition, and `Instance::resolve` called `tcx.associated_item` for them, causing ICE.
2018-04-19rustc: Whitelist upstream target_featuresAlex Crichton-0/+15
When compiling crates we'll be calculating and parsing `#[target_feature]` for upstream crates. We'll also be checking the stability of listed features, but we only want to check the listed stability during the actual crate that wrote the relevant code. This commit updates the `target_feature` process to ignore foreign `DefId` instances and only check the feature whitelist for local functions. Closes #50094
2018-04-11Implementation of `#[repr(packed(n))]` RFC 1399.Cameron Hart-1/+17
2018-04-05Stabilize attributes on generic parametersVadim Petrochenkov-1/+0
2018-03-07check stability of macro invocationsAustin Bonander-0/+16
2018-02-07add tests for macro trailing commasMichael Lamparski-0/+11
2018-01-26Shorten another test path for MSVCAlex Crichton-0/+0
2017-12-30Add trailing newlines to files which have no trailing newlines.kennytm-1/+1
2017-12-08Remove some svh-tests from run-pass.Michael Woerister-220/+0
These were already broken for debug builds.
2017-11-26Stabilize const-calling existing const-fns in stdSimon Sapin-3/+0
Fixes #46038
2017-11-19std: Add a new wasm32-unknown-unknown targetAlex Crichton-5/+2
This commit adds a new target to the compiler: wasm32-unknown-unknown. This target is a reimagining of what it looks like to generate WebAssembly code from Rust. Instead of using Emscripten which can bring with it a weighty runtime this instead is a target which uses only the LLVM backend for WebAssembly and a "custom linker" for now which will hopefully one day be direct calls to lld. Notable features of this target include: * There is zero runtime footprint. The target assumes nothing exists other than the wasm32 instruction set. * There is zero toolchain footprint beyond adding the target. No custom linker is needed, rustc contains everything. * Very small wasm modules can be generated directly from Rust code using this target. * Most of the standard library is stubbed out to return an error, but anything related to allocation works (aka `HashMap`, `Vec`, etc). * Naturally, any `#[no_std]` crate should be 100% compatible with this new target. This target is currently somewhat janky due to how linking works. The "linking" is currently unconditional whole program LTO (aka LLVM is being used as a linker). Naturally that means compiling programs is pretty slow! Eventually though this target should have a linker. This target is also intended to be quite experimental. I'm hoping that this can act as a catalyst for further experimentation in Rust with WebAssembly. Breaking changes are very likely to land to this target, so it's not recommended to rely on it in any critical capacity yet. We'll let you know when it's "production ready". --- Currently testing-wise this target is looking pretty good but isn't complete. I've got almost the entire `run-pass` test suite working with this target (lots of tests ignored, but many passing as well). The `core` test suite is still getting LLVM bugs fixed to get that working and will take some time. Relatively simple programs all seem to work though! --- It's worth nothing that you may not immediately see the "smallest possible wasm module" for the input you feed to rustc. For various reasons it's very difficult to get rid of the final "bloat" in vanilla rustc (again, a real linker should fix all this). For now what you'll have to do is: cargo install --git https://github.com/alexcrichton/wasm-gc wasm-gc foo.wasm bar.wasm And then `bar.wasm` should be the smallest we can get it! --- In any case for now I'd love feedback on this, particularly on the various integration points if you've got better ideas of how to approach them!
2017-10-15rustc: Fix some ThinLTO internalizationAlex Crichton-17/+0
First the `addPreservedGUID` function forgot to take care of "alias" summaries. I'm not 100% sure what this is but the current code now matches upstream. Next the `computeDeadSymbols` return value wasn't actually being used, but it needed to be used! Together these should... Closes #45195
2017-10-07rustc: Implement ThinLTOAlex Crichton-0/+17
This commit is an implementation of LLVM's ThinLTO for consumption in rustc itself. Currently today LTO works by merging all relevant LLVM modules into one and then running optimization passes. "Thin" LTO operates differently by having more sharded work and allowing parallelism opportunities between optimizing codegen units. Further down the road Thin LTO also allows *incremental* LTO which should enable even faster release builds without compromising on the performance we have today. This commit uses a `-Z thinlto` flag to gate whether ThinLTO is enabled. It then also implements two forms of ThinLTO: * In one mode we'll *only* perform ThinLTO over the codegen units produced in a single compilation. That is, we won't load upstream rlibs, but we'll instead just perform ThinLTO amongst all codegen units produced by the compiler for the local crate. This is intended to emulate a desired end point where we have codegen units turned on by default for all crates and ThinLTO allows us to do this without performance loss. * In anther mode, like full LTO today, we'll optimize all upstream dependencies in "thin" mode. Unlike today, however, this LTO step is fully parallelized so should finish much more quickly. There's a good bit of comments about what the implementation is doing and where it came from, but the tl;dr; is that currently most of the support here is copied from upstream LLVM. This code duplication is done for a number of reasons: * Controlling parallelism means we can use the existing jobserver support to avoid overloading machines. * We will likely want a slightly different form of incremental caching which integrates with our own incremental strategy, but this is yet to be determined. * This buys us some flexibility about when/where we run ThinLTO, as well as having it tailored to fit our needs for the time being. * Finally this allows us to reuse some artifacts such as our `TargetMachine` creation, where all our options we used today aren't necessarily supported by upstream LLVM yet. My hope is that we can get some experience with this copy/paste in tree and then eventually upstream some work to LLVM itself to avoid the duplication while still ensuring our needs are met. Otherwise I fear that maintaining these bindings may be quite costly over the years with LLVM updates!
2017-09-16change #![feature(const_fn)] to specific gatesAlex Burka-2/+3