提交 439f7521 编写于 作者: B bors

Auto merge of #45386 - kennytm:rollup, r=kennytm

Rollup of 8 pull requests

- Successful merges: #45343, #45349, #45352, #45374, #45375, #45376, #45377, #45382
- Failed merges:
...@@ -129,14 +129,14 @@ configure your directory to use this build, like so: ...@@ -129,14 +129,14 @@ configure your directory to use this build, like so:
# configure to use local rust instead of downloading a beta. # configure to use local rust instead of downloading a beta.
# `--local-rust-root` is optional here. If elided, we will # `--local-rust-root` is optional here. If elided, we will
# use whatever rustc we find on your PATH. # use whatever rustc we find on your PATH.
> configure --enable-rustbuild --local-rust-root=~/.cargo/ --enable-local-rebuild > ./configure --local-rust-root=~/.cargo/ --enable-local-rebuild
``` ```
After that, you can use the `--incremental` flag to actually do After that, you can use the `--incremental` flag to actually do
incremental builds: incremental builds:
``` ```
> ../x.py build --incremental > ./x.py build --incremental
``` ```
The `--incremental` flag will store incremental compilation artifacts The `--incremental` flag will store incremental compilation artifacts
......
...@@ -532,7 +532,7 @@ class RustBuild(object): ...@@ -532,7 +532,7 @@ class RustBuild(object):
""" """
config = self.get_toml(program) config = self.get_toml(program)
if config: if config:
return config return os.path.expanduser(config)
return os.path.join(self.bin_root(), "bin", "{}{}".format( return os.path.join(self.bin_root(), "bin", "{}{}".format(
program, self.exe_suffix())) program, self.exe_suffix()))
......
...@@ -630,7 +630,7 @@ fn run(self, builder: &Builder) -> PathBuf { ...@@ -630,7 +630,7 @@ fn run(self, builder: &Builder) -> PathBuf {
let image = tmpdir(build).join(format!("{}-{}-image", name, target)); let image = tmpdir(build).join(format!("{}-{}-image", name, target));
let src = build.stage_out(compiler, Mode::Libstd) let src = build.stage_out(compiler, Mode::Libstd)
.join(target).join("release").join("deps"); .join(target).join(build.cargo_dir()).join("deps");
let image_src = src.join("save-analysis"); let image_src = src.join("save-analysis");
let dst = image.join("lib/rustlib").join(target).join("analysis"); let dst = image.join("lib/rustlib").join(target).join("analysis");
......
...@@ -16,6 +16,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ ...@@ -16,6 +16,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
COPY scripts/emscripten.sh /scripts/ COPY scripts/emscripten.sh /scripts/
RUN bash /scripts/emscripten.sh RUN bash /scripts/emscripten.sh
COPY scripts/sccache.sh /scripts/
RUN sh /scripts/sccache.sh
ENV PATH=$PATH:/emsdk-portable ENV PATH=$PATH:/emsdk-portable
ENV PATH=$PATH:/emsdk-portable/clang/e1.37.13_64bit/ ENV PATH=$PATH:/emsdk-portable/clang/e1.37.13_64bit/
ENV PATH=$PATH:/emsdk-portable/emscripten/1.37.13/ ENV PATH=$PATH:/emsdk-portable/emscripten/1.37.13/
...@@ -28,7 +31,4 @@ ENV TARGETS=asmjs-unknown-emscripten ...@@ -28,7 +31,4 @@ ENV TARGETS=asmjs-unknown-emscripten
ENV RUST_CONFIGURE_ARGS --target=$TARGETS ENV RUST_CONFIGURE_ARGS --target=$TARGETS
ENV SCRIPT python2.7 ../x.py test --target $TARGETS ENV SCRIPT python2.7 ../x.py test --target $TARGETS src/test/run-pass
COPY scripts/sccache.sh /scripts/
RUN sh /scripts/sccache.sh
...@@ -38,37 +38,38 @@ cd solaris ...@@ -38,37 +38,38 @@ cd solaris
dpkg --add-architecture $APT_ARCH dpkg --add-architecture $APT_ARCH
apt-get update apt-get update
apt-get download \ apt-get download $(apt-cache depends --recurse --no-replaces \
libc:$APT_ARCH \
libc-dev:$APT_ARCH \ libc-dev:$APT_ARCH \
libm:$APT_ARCH \
libm-dev:$APT_ARCH \ libm-dev:$APT_ARCH \
libpthread:$APT_ARCH \
libpthread-dev:$APT_ARCH \ libpthread-dev:$APT_ARCH \
libresolv:$APT_ARCH \
libresolv-dev:$APT_ARCH \ libresolv-dev:$APT_ARCH \
librt:$APT_ARCH \
librt-dev:$APT_ARCH \ librt-dev:$APT_ARCH \
libsocket:$APT_ARCH \
libsocket-dev:$APT_ARCH \ libsocket-dev:$APT_ARCH \
system-crt:$APT_ARCH \ system-crt:$APT_ARCH \
system-header:$APT_ARCH system-header:$APT_ARCH \
| grep "^\w")
for deb in *$APT_ARCH.deb; do for deb in *$APT_ARCH.deb; do
dpkg -x $deb . dpkg -x $deb .
done done
# Strip Solaris 11 functions that are optionally used by libbacktrace. # Remove Solaris 11 functions that are optionally used by libbacktrace.
# This is for Solaris 10 compatibility. # This is for Solaris 10 compatibility.
$ARCH-sun-solaris2.10-strip -N dl_iterate_phdr -N strnlen lib/$LIB_ARCH/libc.so rm usr/include/link.h
patch -p0 << 'EOF'
--- usr/include/string.h
+++ usr/include/string10.h
@@ -93 +92,0 @@
-extern size_t strnlen(const char *, size_t);
EOF
mkdir /usr/local/$ARCH-sun-solaris2.10/usr mkdir /usr/local/$ARCH-sun-solaris2.10/usr
mv usr/include /usr/local/$ARCH-sun-solaris2.10/usr/include mv usr/include /usr/local/$ARCH-sun-solaris2.10/usr/include
mv usr/lib/$LIB_ARCH/* /usr/local/$ARCH-sun-solaris2.10/lib mv usr/lib/$LIB_ARCH/* /usr/local/$ARCH-sun-solaris2.10/lib
mv lib/$LIB_ARCH/* /usr/local/$ARCH-sun-solaris2.10/lib mv lib/$LIB_ARCH/* /usr/local/$ARCH-sun-solaris2.10/lib
ln -s /usr/local/$ARCH-sun-solaris2.10/usr/include /usr/local/$ARCH-sun-solaris2.10/sys-include ln -s usr/include /usr/local/$ARCH-sun-solaris2.10/sys-include
ln -s /usr/local/$ARCH-sun-solaris2.10/usr/include /usr/local/$ARCH-sun-solaris2.10/include ln -s usr/include /usr/local/$ARCH-sun-solaris2.10/include
cd .. cd ..
rm -rf solaris rm -rf solaris
...@@ -97,8 +98,7 @@ hide_output ../gcc-$GCC/configure \ ...@@ -97,8 +98,7 @@ hide_output ../gcc-$GCC/configure \
--disable-libada \ --disable-libada \
--disable-libsanitizer \ --disable-libsanitizer \
--disable-libquadmath-support \ --disable-libquadmath-support \
--disable-lto \ --disable-lto
--with-sysroot=/usr/local/$ARCH-sun-solaris2.10
hide_output make -j10 hide_output make -j10
hide_output make install hide_output make install
......
...@@ -959,13 +959,15 @@ pub fn ends_with<'a, P: Pattern<'a>>(&'a self, pat: P) -> bool ...@@ -959,13 +959,15 @@ pub fn ends_with<'a, P: Pattern<'a>>(&'a self, pat: P) -> bool
/// assert_eq!(s.find("Léopard"), Some(13)); /// assert_eq!(s.find("Léopard"), Some(13));
/// ``` /// ```
/// ///
/// More complex patterns with closures: /// More complex patterns using point-free style and closures:
/// ///
/// ``` /// ```
/// let s = "Löwe 老虎 Léopard"; /// let s = "Löwe 老虎 Léopard";
/// ///
/// assert_eq!(s.find(char::is_whitespace), Some(5)); /// assert_eq!(s.find(char::is_whitespace), Some(5));
/// assert_eq!(s.find(char::is_lowercase), Some(1)); /// assert_eq!(s.find(char::is_lowercase), Some(1));
/// assert_eq!(s.find(|c: char| c.is_whitespace() || c.is_lowercase()), Some(1));
/// assert_eq!(s.find(|c: char| (c < 'o') && (c > 'a')), Some(4));
/// ``` /// ```
/// ///
/// Not finding the pattern: /// Not finding the pattern:
......
...@@ -98,7 +98,7 @@ entire program, and each did a particular check of transformation. ...@@ -98,7 +98,7 @@ entire program, and each did a particular check of transformation.
We are gradually replacing this pass-based code with an alternative We are gradually replacing this pass-based code with an alternative
setup based on on-demand **queries**. In the query-model, we work setup based on on-demand **queries**. In the query-model, we work
backwards, executing a *query* that expresses our ultimate goal (e.g., backwards, executing a *query* that expresses our ultimate goal (e.g.,
"compiler this crate"). This query in turn may make other queries "compile this crate"). This query in turn may make other queries
(e.g., "get me a list of all modules in the crate"). Those queries (e.g., "get me a list of all modules in the crate"). Those queries
make other queries that ultimately bottom out in the base operations, make other queries that ultimately bottom out in the base operations,
like parsing the input, running the type-checker, and so forth. This like parsing the input, running the type-checker, and so forth. This
...@@ -162,7 +162,7 @@ The compiler uses a number of...idiosyncratic abbreviations and ...@@ -162,7 +162,7 @@ The compiler uses a number of...idiosyncratic abbreviations and
things. This glossary attempts to list them and give you a few things. This glossary attempts to list them and give you a few
pointers for understanding them better. pointers for understanding them better.
- AST -- the **abstract syntax tree** produced the `syntax` crate; reflects user syntax - AST -- the **abstract syntax tree** produced by the `syntax` crate; reflects user syntax
very closely. very closely.
- codegen unit -- when we produce LLVM IR, we group the Rust code into a number of codegen - codegen unit -- when we produce LLVM IR, we group the Rust code into a number of codegen
units. Each of these units is processed by LLVM independently from one another, units. Each of these units is processed by LLVM independently from one another,
......
...@@ -42,7 +42,7 @@ wasteful. ...@@ -42,7 +42,7 @@ wasteful.
Often, we wish to write code that explicitly asserts that it is not Often, we wish to write code that explicitly asserts that it is not
taking place during inference. In that case, there is no "local" taking place during inference. In that case, there is no "local"
arena, and all the types that you can access are allocated in the arena, and all the types that you can access are allocated in the
global arena. To express this, the idea is to us the same lifetime global arena. To express this, the idea is to use the same lifetime
for the `'gcx` and `'tcx` parameters of `TyCtxt`. Just to be a touch for the `'gcx` and `'tcx` parameters of `TyCtxt`. Just to be a touch
confusing, we tend to use the name `'tcx` in such contexts. Here is an confusing, we tend to use the name `'tcx` in such contexts. Here is an
example: example:
...@@ -100,10 +100,10 @@ fn test_type<'tcx>(ty: Ty<'tcx>) { ...@@ -100,10 +100,10 @@ fn test_type<'tcx>(ty: Ty<'tcx>) {
The `sty` field (the origin of this name is unclear to me; perhaps The `sty` field (the origin of this name is unclear to me; perhaps
structural type?) is of type `TypeVariants<'tcx>`, which is an enum structural type?) is of type `TypeVariants<'tcx>`, which is an enum
definined all of the different kinds of types in the compiler. defining all of the different kinds of types in the compiler.
> NB: inspecting the `sty` field on types during type inference can be > NB: inspecting the `sty` field on types during type inference can be
> risky, as there are may be inference variables and other things to > risky, as there may be inference variables and other things to
> consider, or sometimes types are not yet known that will become > consider, or sometimes types are not yet known that will become
> known later.). > known later.).
...@@ -132,7 +132,7 @@ a safe approximation, so that is what you get back. ...@@ -132,7 +132,7 @@ a safe approximation, so that is what you get back.
> you are going to be testing for type equality, you probably need to > you are going to be testing for type equality, you probably need to
> start looking into the inference code to do it right. > start looking into the inference code to do it right.
You can also find various common types in the tcx itself by accessing You can also find various common types in the `tcx` itself by accessing
`tcx.types.bool`, `tcx.types.char`, etc (see `CommonTypes` for more). `tcx.types.bool`, `tcx.types.char`, etc (see `CommonTypes` for more).
### Beyond types: Other kinds of arena-allocated data structures ### Beyond types: Other kinds of arena-allocated data structures
...@@ -143,7 +143,7 @@ module. Here are a few examples: ...@@ -143,7 +143,7 @@ module. Here are a few examples:
- `Substs`, allocated with `mk_substs` -- this will intern a slice of types, often used to - `Substs`, allocated with `mk_substs` -- this will intern a slice of types, often used to
specify the values to be substituted for generics (e.g., `HashMap<i32, u32>` specify the values to be substituted for generics (e.g., `HashMap<i32, u32>`
would be represented as a slice `&'tcx [tcx.types.i32, tcx.types.u32]`. would be represented as a slice `&'tcx [tcx.types.i32, tcx.types.u32]`).
- `TraitRef`, typically passed by value -- a **trait reference** - `TraitRef`, typically passed by value -- a **trait reference**
consists of a reference to a trait along with its various type consists of a reference to a trait along with its various type
parameters (including `Self`), like `i32: Display` (here, the def-id parameters (including `Self`), like `i32: Display` (here, the def-id
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no asm! support
#![feature(asm, rustc_attrs)] #![feature(asm, rustc_attrs)]
#![allow(unused)] #![allow(unused)]
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
// except according to those terms. // except according to those terms.
// pretty-expanded FIXME #23616 // pretty-expanded FIXME #23616
// ignore-emscripten // ignore-emscripten no asm
#![feature(asm)] #![feature(asm)]
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
// except according to those terms. // except according to those terms.
// ignore-windows - this is a unix-specific test // ignore-windows - this is a unix-specific test
// ignore-emscripten // ignore-emscripten no processes
#![feature(process_exec, libc)] #![feature(process_exec, libc)]
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
// ignore-windows - this is a unix-specific test // ignore-windows - this is a unix-specific test
// ignore-pretty issue #37199 // ignore-pretty issue #37199
// ignore-emscripten // ignore-emscripten no processes
#![feature(process_exec)] #![feature(process_exec)]
use std::env; use std::env;
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
// except according to those terms. // except according to those terms.
// compile-flags:--test // compile-flags:--test
// ignore-emscripten // ignore-emscripten no processes
// NB: These tests kill child processes. Valgrind sees these children as leaking // NB: These tests kill child processes. Valgrind sees these children as leaking
// memory, which makes for some *confusing* logs. That's why these are here // memory, which makes for some *confusing* logs. That's why these are here
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no processes
use std::env::args; use std::env::args;
use std::process::Command; use std::process::Command;
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
// ignore-android // ignore-android
// ignore-windows // ignore-windows
// ignore-emscripten // ignore-emscripten no execve
// no-prefer-dynamic // no-prefer-dynamic
#![feature(libc)] #![feature(libc)]
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten env vars don't work?
#![feature(path)] #![feature(path)]
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
// pretty-expanded FIXME #23616 // pretty-expanded FIXME #23616
// ignore-msvc // ignore-msvc
// ignore-emscripten // ignore-emscripten emcc asserts on an empty struct as an argument
#[repr(C)] #[repr(C)]
struct TwoU8s { struct TwoU8s {
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
// ignore-windows // ignore-windows
// ignore-android // ignore-android
// ignore-emscripten // ignore-emscripten no processes
// ignore-haiku // ignore-haiku
#![feature(libc)] #![feature(libc)]
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten missing rust_begin_unwind // ignore-emscripten no no_std executables
#![feature(lang_items, start, alloc)] #![feature(lang_items, start, alloc)]
#![no_std] #![no_std]
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no threads support
// compile-flags: --test // compile-flags: --test
#![feature(generators, generator_trait)] #![feature(generators, generator_trait)]
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten i128 doesn't work
#![feature(i128_type, test)] #![feature(i128_type, test)]
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no processes
// Make sure that if a process doesn't have its stdio/stderr descriptors set up // Make sure that if a process doesn't have its stdio/stderr descriptors set up
// that we don't die in a large ball of fire // that we don't die in a large ball of fire
......
...@@ -8,7 +8,8 @@ ...@@ -8,7 +8,8 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no processes
#![feature(io, process_capture)] #![feature(io, process_capture)]
use std::env; use std::env;
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no processes
#![feature(io, process_capture)] #![feature(io, process_capture)]
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no processes
use std::env; use std::env;
use std::process::Command; use std::process::Command;
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no processes
use std::process::Command; use std::process::Command;
use std::env; use std::env;
......
...@@ -8,7 +8,8 @@ ...@@ -8,7 +8,8 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no processes
#![feature(std_misc, os)] #![feature(std_misc, os)]
#[cfg(unix)] #[cfg(unix)]
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
// except according to those terms. // except according to those terms.
// pretty-expanded FIXME #23616 // pretty-expanded FIXME #23616
// ignore-emscripten // ignore-emscripten no threads
use std::thread::Builder; use std::thread::Builder;
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no threads
use std::thread; use std::thread;
use std::env; use std::env;
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no threads
// compile-flags: -O // compile-flags: -O
// Tests that the `vec!` macro does not overflow the stack when it is // Tests that the `vec!` macro does not overflow the stack when it is
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
// except according to those terms. // except according to those terms.
// aux-build:issue-29485.rs // aux-build:issue-29485.rs
// ignore-emscripten // ignore-emscripten no threads
#[feature(recover)] #[feature(recover)]
......
...@@ -10,8 +10,6 @@ ...@@ -10,8 +10,6 @@
// write_volatile causes an LLVM assert with composite types // write_volatile causes an LLVM assert with composite types
// ignore-emscripten See #41299: probably a bad optimization
#![feature(volatile)] #![feature(volatile)]
use std::ptr::{read_volatile, write_volatile}; use std::ptr::{read_volatile, write_volatile};
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no processes
// Previously libstd would set stdio descriptors of a child process // Previously libstd would set stdio descriptors of a child process
// by `dup`ing the requested descriptors to inherit directly into the // by `dup`ing the requested descriptors to inherit directly into the
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no processes
use std::process::{Command, Stdio}; use std::process::{Command, Stdio};
use std::env; use std::env;
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
// ignore-windows // ignore-windows
// ignore-macos // ignore-macos
// ignore-emscripten // ignore-emscripten doesn't support this linkage
// aux-build:linkage1.rs // aux-build:linkage1.rs
#![feature(linkage)] #![feature(linkage)]
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no processes
fn check_for_no_backtrace(test: std::process::Output) { fn check_for_no_backtrace(test: std::process::Output) {
assert!(!test.status.success()); assert!(!test.status.success());
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no processes
// ignore-android // ignore-android
#![feature(libc)] #![feature(libc)]
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
// ignore-android: FIXME (#20004) // ignore-android: FIXME (#20004)
// ignore-musl // ignore-musl
// ignore-emscripten // ignore-emscripten no processes
#![feature(asm)] #![feature(asm)]
#![feature(libc)] #![feature(libc)]
......
...@@ -7,8 +7,6 @@ ...@@ -7,8 +7,6 @@
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten Not sure what's happening here.
use std::mem; use std::mem;
......
...@@ -7,8 +7,6 @@ ...@@ -7,8 +7,6 @@
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten
use std::mem; use std::mem;
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
// compile-flags:-C panic=abort // compile-flags:-C panic=abort
// aux-build:exit-success-if-unwind.rs // aux-build:exit-success-if-unwind.rs
// no-prefer-dynamic // no-prefer-dynamic
// ignore-emscripten Function not implemented // ignore-emscripten no processes
extern crate exit_success_if_unwind; extern crate exit_success_if_unwind;
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
// compile-flags:-C panic=abort // compile-flags:-C panic=abort
// no-prefer-dynamic // no-prefer-dynamic
// ignore-emscripten Function not implemented. // ignore-emscripten no processes
use std::process::Command; use std::process::Command;
use std::env; use std::env;
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
// compile-flags:-C lto -C panic=abort // compile-flags:-C lto -C panic=abort
// no-prefer-dynamic // no-prefer-dynamic
// ignore-emscripten Function not implemented. // ignore-emscripten no processes
use std::process::Command; use std::process::Command;
use std::env; use std::env;
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
// compile-flags:-C lto -C panic=unwind // compile-flags:-C lto -C panic=unwind
// no-prefer-dynamic // no-prefer-dynamic
// ignore-emscripten Function not implemented. // ignore-emscripten no processes
use std::process::Command; use std::process::Command;
use std::env; use std::env;
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no processes
use std::process::Command; use std::process::Command;
use std::env; use std::env;
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no processes
use std::env; use std::env;
use std::process::{self, Command, Stdio}; use std::process::{self, Command, Stdio};
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no processes
use std::process::Command; use std::process::Command;
use std::env; use std::env;
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
// non-ASCII characters. The child process ensures all the strings are // non-ASCII characters. The child process ensures all the strings are
// intact. // intact.
// ignore-emscripten // ignore-emscripten no processes
use std::io::prelude::*; use std::io::prelude::*;
use std::io; use std::io;
......
...@@ -7,7 +7,8 @@ ...@@ -7,7 +7,8 @@
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten Function not implemented.
// ignore-emscripten no processes
use std::env; use std::env;
use std::io; use std::io;
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten spawning processes is not supported
#![feature(start)] #![feature(start)]
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
// except according to those terms. // except according to those terms.
// ignore-windows // ignore-windows
// ignore-emscripten // ignore-emscripten no processes
use std::env; use std::env;
use std::process::Command; use std::process::Command;
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
// Be sure that when a SIGPIPE would have been received that the entire process // Be sure that when a SIGPIPE would have been received that the entire process
// doesn't die in a ball of fire, but rather it's gracefully handled. // doesn't die in a ball of fire, but rather it's gracefully handled.
// ignore-emscripten // ignore-emscripten no processes
use std::env; use std::env;
use std::io::prelude::*; use std::io::prelude::*;
......
...@@ -7,7 +7,8 @@ ...@@ -7,7 +7,8 @@
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten linking with emcc failed
// ignore-emscripten FIXME(#45351) hits an LLVM assert
#![feature(repr_simd, platform_intrinsics, concat_idents, test)] #![feature(repr_simd, platform_intrinsics, concat_idents, test)]
#![allow(non_camel_case_types)] #![allow(non_camel_case_types)]
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
// ignore-arm // ignore-arm
// ignore-aarch64 // ignore-aarch64
// ignore-wasm // ignore-wasm
// ignore-emscripten // ignore-emscripten no processes
// ignore-musl FIXME #31506 // ignore-musl FIXME #31506
// ignore-pretty // ignore-pretty
// no-system-llvm // no-system-llvm
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
// ignore-arm // ignore-arm
// ignore-aarch64 // ignore-aarch64
// ignore-wasm // ignore-wasm
// ignore-emscripten // ignore-emscripten no processes
// ignore-musl FIXME #31506 // ignore-musl FIXME #31506
// no-system-llvm // no-system-llvm
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no processes
use std::env; use std::env;
use std::io::prelude::*; use std::io::prelude::*;
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
// compile-flags: -Z thinlto -C codegen-units=8 -O // compile-flags: -Z thinlto -C codegen-units=8 -O
// min-llvm-version 4.0 // min-llvm-version 4.0
// ignore-emscripten // ignore-emscripten can't inspect instructions on emscripten
// We want to assert here that ThinLTO will inline across codegen units. There's // We want to assert here that ThinLTO will inline across codegen units. There's
// not really a great way to do that in general so we sort of hack around it by // not really a great way to do that in general so we sort of hack around it by
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
// aux-build:thin-lto-inlines-aux.rs // aux-build:thin-lto-inlines-aux.rs
// min-llvm-version 4.0 // min-llvm-version 4.0
// no-prefer-dynamic // no-prefer-dynamic
// ignore-emscripten // ignore-emscripten can't inspect instructions on emscripten
// We want to assert here that ThinLTO will inline across codegen units. There's // We want to assert here that ThinLTO will inline across codegen units. There's
// not really a great way to do that in general so we sort of hack around it by // not really a great way to do that in general so we sort of hack around it by
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no processes
#![feature(process_try_wait)] #![feature(process_try_wait)]
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten u128 not supported
#![feature(i128_type, test)] #![feature(i128_type, test)]
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten missing rust_begin_unwind // ignore-emscripten no no_std executables
#![feature(lang_items, start, libc, alloc)] #![feature(lang_items, start, libc, alloc)]
#![no_std] #![no_std]
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
// ignore-emscripten // ignore-emscripten no processes
#![feature(libc)] #![feature(libc)]
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册