Commit Graph

588 Commits

Author SHA1 Message Date
Alex Crichton b47c9690d2 bootstrap: Merge the libtest build step with libstd
Since its inception rustbuild has always worked in three stages: one for
libstd, one for libtest, and one for rustc. These three stages were
architected around crates.io dependencies, where rustc wants to depend
on crates.io crates but said crates don't explicitly depend on libstd,
requiring a sysroot assembly step in the middle. This same logic was
applied for libtest where libtest wants to depend on crates.io crates
(`getopts`) but `getopts` didn't say that it depended on std, so it
needed `std` built ahead of time.

Lots of time has passed since the inception of rustbuild, however,
and we've since gotten to the point where even `std` itself is depending
on crates.io crates (albeit with some wonky configuration). This
commit applies the same logic to the two dependencies that the `test`
crate pulls in from crates.io, `getopts` and `unicode-width`. Over the
many years since rustbuild's inception `unicode-width` was the only
dependency picked up by the `test` crate, so the extra configuration
necessary to get crates building in this crate graph is unlikely to be
too much of a burden on developers.

After this patch it means that there are now only two build phasese of
rustbuild, one for libstd and one for rustc. The libtest/libproc_macro
build phase is all lumped into one now with `std`.

This was originally motivated by rust-lang/cargo#7216 where Cargo was
having to deal with synthesizing dependency edges but this commit makes
them explicit in this repository.
2019-08-23 16:46:11 -07:00
newpavlov 2ff1f45ead revert num_cpus change 2019-08-21 20:16:52 +03:00
Artyom Pavlov 82cb207607 fix num_cpus 2019-08-21 00:18:05 +00:00
Artyom Pavlov 40cb69da59 fix libtest 2019-08-21 00:15:11 +00:00
Vadim Petrochenkov 62ec2cb7ac Remove some more cfg(test)s 2019-08-02 02:40:01 +03:00
Vadim Petrochenkov 751af27320 libtest: Unconfigure tests during normal build 2019-08-02 01:59:01 +03:00
Vadim Petrochenkov 73dae4eaf9 Remove derives Encodable/Decodable and unstabilize attribute #[bench] 2019-07-31 21:27:59 +03:00
Vadim Petrochenkov 434152157f Remove lint annotations in specific crates that are already enforced by rustbuild
Remove some random unnecessary lint `allow`s
2019-07-28 18:46:24 +03:00
Baoshan Pang 4c0c0f6158 Add supporting for vxWorks
r? @alexcrichton
2019-07-16 00:13:07 -07:00
chansuke c2a57c88ea Separate libtest module 2019-06-16 14:17:01 +03:00
varkor c3febc0884 Make "panic did not include expected string" message consistent
Note messages are typically lowercase.
2019-05-30 21:58:33 +01:00
Simon Sapin a8fc09be39 Use FnOnce instead of FnBox in libtest 2019-05-24 07:51:48 +02:00
Mazdak Farrokhzad 815d3ba883 Rollup merge of #60895 - chandde:master, r=alexcrichton
Enable thumbv7a-pc-windows-msvc target build end to end in rust/master

With this PR, plus another commit https://github.com/rust-lang-nursery/compiler-builtins/commit/cf98161da7ed5217b6031796f0f60b4dd07148a4, I'm able to build the target thumbv7a-pc-windows-msvc successfully, and I'm able to use the stage2 artifacts to build arm32 projects. The commit in compiler_builtins is in release 0.1.14, the current cargo.lock in rust master still uses 0.1.12, so I bumped the compiler_builtins version in cargo.lock to 0.1.15

The command I used to build rust
```
c:\python27\python.exe x.py build --host x86_64-pc-windows-msvc --build x86_64-pc-windows-msvc --target thumbv7a-pc-windows-msvc --verbose
```

**Changes**
1. update cargolock to use compiler_builtins 0.1.15
2. handle libunwind in libtest for thumv7a the same as what we have for aarch64
3. in llvm codegen add a field in CodegenContext to carry the arch, so later in create_msvc_imps function, the arch can be used to check against "x86", instead of 32 pointer width. Apparently Thumv7a is handled differently than x86.

**Background**
I'm from Microsoft working on enabling Azure IoTEdge on ARM32 Windows IoTCore, Azure IoTEdge has a component called IoTEdged written in rust as a NT service running on Windows, so we need to enable rust on thumbv7a in order to have full IoTEdge. My colleague had made some heavy lifting and we've been using our private toolchain to build IoTEdged in our devops pipeline, because at that time we cannot build thumbv7a target end to end successfully. This change is a followup to enable the end to end build for thumbv7a-pc-windows-msvc target.

**Next step**
I'll submit more changes to have this target built nightly in rust/master, to achieve the same availability for aarch64-pc-windows-msvc, indexed here https://rust-lang.github.io/rustup-components-history/aarch64-pc-windows-msvc.html and can be manually installed. **Please do share what takes to make this happen, is there a formal process I need to follow\?**
2019-05-20 01:01:39 +02:00
chandde 759921e2a0 fix line length 2019-05-18 00:49:54 -07:00
chandde 70f78b3f8c optimize the arm64 OR arm32 check 2019-05-17 20:45:25 -07:00
chandde b5febe72bb Update lib.rs 2019-05-14 17:00:48 -07:00
Marcel Hellwig cc314b066a Remove bitrig support from rust 2019-05-13 11:09:06 +02:00
varkor ecd046817b Update getopts to 0.2.19 2019-05-05 10:45:10 +01:00
varkor e72f7e1e56 Update getopts to 0.2.18
This is a proof-of-concept that the dependency unification fix works.
2019-05-02 21:47:14 +01:00
Jacob Greenfield 28ea249ab5 Revert "Auto merge of #57842 - gnzlbg:extract_libtest, r=gnzlbg"
This reverts commit 3eb4890dfe, reversing
changes made to 7a4df3b53d.
2019-04-07 03:16:31 -04:00
gnzlbg f5d6b3af69 Moves test::black_box to core::hint
This changes removes a cyclic dependency between the "test" and "libtest"
crates, where "libtest" depends on "test" for "black_box", but "test" depends on
"libtest" for everything else.

I've chosen the "hint" module because there seems to be enough consensus in the
discussion of RFC2360 that this module is where such an intrinsic would belong,
but this PR does not implement that RFC! (note: if that RFC ever gets merged,
the API, docs, etc. of this API will need to change).

For backwards compatibility reasons I've chosen to also keep the "test" feature
gate for these instead of adding a new feature gate. If we change the feature
gate, we'll potentially all benchmarks, and while that's something that we could
do, it seems unnecessary to do that now - if RFC2360 gets merged, we'll need to
do that anyways.
2019-03-25 11:44:06 +01:00
gnzlbg 46a8beb4b2 Move some bench tests back from libtest 2019-03-20 01:22:19 +01:00
gnzlbg 144bdc6830 Directly reference the roadmap upstream 2019-03-19 13:58:48 +01:00
gnzlbg cf5c360064 Export stats::Summary from libtest 2019-03-19 13:58:48 +01:00
gnzlbg a5e7f0c75b Add missing explicit imports 2019-03-19 13:58:48 +01:00
gnzlbg 25c8f61a9f Move black_box back to rust-lang/libtest and use explicit imports 2019-03-19 13:58:48 +01:00
gnzlbg 008ce99028 Add a README to libtest with a roadmap 2019-03-19 13:58:48 +01:00
gnzlbg 4c38f1928e Allow the staged_api 2019-03-19 13:58:47 +01:00
gnzlbg f2915a6f62 Use feature(test) 2019-03-19 13:58:47 +01:00
gnzlbg 3a9e30f6c9 Use libtest from crates.io 2019-03-19 13:58:47 +01:00
gnzlbg 2957c4c42e Re-export libtest 2019-03-19 13:58:47 +01:00
gnzlbg 95f79380ca Move libtest out of rust-lang/rust 2019-03-19 13:58:47 +01:00
memoryruins 43e7434120 Simplify exclude_should_panic flag. 2019-02-24 11:58:08 -05:00
memoryruins 5d1f100988 Add unstable option to ignore should_panic tests. 2019-02-23 21:07:04 -05:00
Mazdak Farrokhzad aa896f30bb Rollup merge of #57856 - lzutao:fix-old-first-edition, r=steveklabnik
Convert old first edition links to current edition one

r? @steveklabnik
2019-02-14 02:41:16 +01:00
Lzu Tao e7f8e63ed4 Convert old doc links to current edition
Use footnote style to bypass the tidy check
2019-02-13 14:39:25 +00:00
Alexander Regueiro 99ed06eb88 libs: doc comments 2019-02-10 23:57:25 +00:00
Guillaume Gomez 8b886e07f5 Remove images' url to make it work even without internet connection 2019-02-07 11:06:19 +01:00
Hirokazu Hata 3c6787306d Excute rustfmt for fixing tidy check 2019-02-04 08:22:30 +09:00
Hirokazu Hata 4ae8abab93 Transition libtest to 2018 edition 2019-02-04 08:15:42 +09:00
bors 8611577360 Auto merge of #57765 - Mark-Simulacrum:bootstrap-bump, r=alexcrichton
Bump bootstrap compiler to 1.33 beta

r? @alexcrichton or @pietroalbini

cc @rust-lang/release
2019-01-27 18:18:17 +00:00
Mark Rousskov b7f030e114 Bump bootstrap compiler to 1.33 beta 2019-01-26 08:02:08 -07:00
Igor Matuszewski c14508fd25 Add missing #![feature(rustc_private)] annotation 2019-01-20 00:04:28 +01:00
Jethro Beekman 972bba7071 Stabilize cfg_target_vendor, #29718 2019-01-14 14:33:04 +05:30
Yu Ding d04f5208ba Bound sgx target_env with fortanix as target_vendor
Signed-off-by: Yu Ding <dingelish@gmail.com>
2018-12-31 16:32:56 -08:00
Mark Rousskov 2a663555dd Remove licenses 2018-12-25 21:08:33 -07:00
bors 3499575282 Auto merge of #56243 - RalfJung:test-deterministic, r=alexcrichton
libtest: Use deterministic HashMap, avoid spawning thread if there is no concurrency

It seems desirable to make a test and bench runner deterministic, which this achieves by using a deterministic hasher. Also, we we only have 1 thread, we don't bother spawning one and just use the main thread.

The motivation for this is to be able to run the test harness in miri, where we can neither access the OS RNG, nor spawn threads.
2018-12-11 14:04:15 +00:00
Ralf Jung c28c28779c use an enum instead of bool 2018-12-11 11:02:23 +01:00
Alexander Regueiro ee89c088b0 Various minor/cosmetic improvements to code 2018-12-07 23:53:34 +00:00
Jethro Beekman 4a3505682e Add x86_64-fortanix-unknown-sgx target to libstd and dependencies
The files src/libstd/sys/sgx/*.rs are mostly copied/adapted from
the wasm target.

This also updates the dlmalloc submodule to the very latest version.
2018-12-07 11:26:50 +05:30