Commit graph

123780 commits

Author SHA1 Message Date
Manish Goregaokar
5751c7f1db
Rollup merge of #74033 - ehuss:std-compile-all-platforms, r=Mark-Simulacrum
Add build support for Cargo's build-std feature.

This makes some changes to the standard library to make it easier to use with Cargo's build-std feature. The primary goal is to make it so that Cargo and its users do not need to know which crates to build and which features to use for every platform.

Conditional cfgs are adjusted so that there is usually a fall-through for unsupported platforms. Additionally, there is a "restricted-std" feature to mark `std` as unstable when used with build-std on no_std platforms. There is no intent to stabilize this feature for the foreseeable future.

This borrows some of the implementation for wasm which already does what this needs. More code sharing can be done with some other platforms (there is a lot of duplication with cloudabi, hermit, and sgx), but I figure that can be done in a future PR.

There are some small changes to stable behavior in this PR:
- `std::env::consts::ARCH` on asmjs now reports "wasm32", to match its actual architecture.
- Some of the wasm error messages for unsupported features report a slightly different error message so that the code can be reused.

There should otherwise not be any changes to how std is built for distribution via bootstrap.

This does not yet support all platforms when used with build-std.

- It doesn't work with 16-bit targets (hashbrown does not support that).
- It does not work with JSON spec targets.
    - In particular, all target triple snooping will need to be replaced with appropriate target option checking.
- Switching to gimli (#73441) will make cross-building *much* easier.
- There are still a ton of issues on the Cargo side to resolve. A big one is panic strategy support.

Future PRs are intended to address some of these issues.
2020-07-16 17:08:57 -07:00
Manish Goregaokar
41d956bf63
Rollup merge of #73269 - mzohreva:mz/sgx-wait-timeout, r=jethrogb
Enable some timeouts in SGX platform

This would partially resolve https://github.com/fortanix/rust-sgx/issues/31

cc @jethrogb and @Goirad
2020-07-16 17:08:56 -07:00
Manish Goregaokar
ec93d566b3
Rollup merge of #73101 - jyn514:rustdoc-absolute-module, r=Manishearth
Resolve items for cross-crate imports relative to the original module

~~Blocked on https://github.com/rust-lang/rust/pull/73103 and https://github.com/rust-lang/rust/pull/73566~~

Closes https://github.com/rust-lang/rust/issues/65983.

I tested on the following code (as mentioned in https://github.com/rust-lang/rust/issues/65983#issuecomment-640250993):

```
pub use rand::Rng;
```
and rustdoc generated the following link: https://rust-random.github.io/rand/rand_core/trait.RngCore.html
2020-07-16 17:08:54 -07:00
Tomasz Miąsko
b26ecd261b Test codegen of compare_exchange operations 2020-07-17 00:00:00 +00:00
Lokathor
66a3d6859b fix the imports. 2020-07-16 17:37:47 -06:00
Mark Rousskov
8321b3fbe4 Add zlib1g to builder deps 2020-07-16 19:36:49 -04:00
Mark Rousskov
647d9b525f apply bootstrap cfgs 2020-07-16 19:36:49 -04:00
Mark Rousskov
6c50ae898b Bump to 1.47 2020-07-16 19:36:49 -04:00
Lokathor
72fa7f8250 Add to supported_targets list. 2020-07-16 17:24:58 -06:00
Lokathor
9c4ac73959 Docs clarifications. 2020-07-16 17:24:36 -06:00
Jakub Kądziołka
2ff13d9cf1
Use an UTF-8 locale for the linker. 2020-07-17 01:09:52 +02:00
Kristofer Rye
ab23a2a9c5
ci: Set shell: bash as a default, remove duplicates
A follow-up to #74406, this commit merely removes the `shell: bash`
lines where they are explicitly added in favor of setting defaults for
*all* "run" steps.

Signed-off-by: Kristofer Rye <kristofer.rye@gmail.com>
2020-07-16 18:06:31 -05:00
Aman Arora
50f3dbd121 Move hir::Place to librustc_middle/hir
Needed to support https://github.com/rust-lang/project-rfc-2229/issues/7

Currently rustc_typeck depends on rustc_middle for definition TypeckTables, etc.
For supporting project-rfc-2229#7, rustc_middle would've to depend on
rustc_typeck for Place -- introducing a circular dependcy.

This resembles the MIR equivalent of `Place` located in `lbrustc_middle/mir`.

Co-authored-by: Aman Arora <me@aman-arora.com>
Co-authored-by: Jennifer Wills <wills.jenniferg@gmail.com>
Co-authored-by: Logan Mosier <logmosier@gmail.com>
2020-07-16 18:57:03 -04:00
Lokathor
e190bdf710 fill in all those options. 2020-07-16 16:40:50 -06:00
Nicholas Nethercote
a4ba18164a Remove some Symbol:as_str() calls. 2020-07-17 08:29:58 +10:00
Nicholas Nethercote
f03c7f83eb Add UnsafetyViolationDetails.
This replaces the need for the `description` and `details` symbols in
`UnsafetyViolation`, which are static. As a result some
`Symbol::as_str()` calls are no longer necessary, which is nice.
2020-07-17 08:28:22 +10:00
Nicholas Nethercote
002af4d0c7 Avoid storing SymbolStr in a struct.
It's intended only for very temporary use.
2020-07-17 08:28:22 +10:00
Nicholas Nethercote
9f0080801d Remove ExtCtxt::ident_of.
It's equivalent to `Ident::from_str_and_span`. The commit also
introduces some more static symbols so that `Ident::new` can be used in
various places instead of `Ident::from_str_and_span`.

The commit also changes `Path::path` from a `&str` to a `Symbol`, which
then allows the lifetime annotation to be removed from `Ty`. Also, the
use of `Symbol` in `Bounds` removes the need for its lifetime
annotation.
2020-07-17 08:28:19 +10:00
Joshua Nelson
c46e0386c5 Fix invalid lint
intra_doc_resolution_failure is not a lint.
2020-07-16 18:26:58 -04:00
Joshua Nelson
8387e3825f Add (broken and ignored) test for #73829 2020-07-16 18:26:58 -04:00
Joshua Nelson
0ad1dcd6a0 Add more debugging 2020-07-16 18:26:58 -04:00
Joshua Nelson
82b3b0705b Support intra-doc links on trait and module re-exports
Trait implementations are treated the same as modules for the purposes
of intra-doc links.
2020-07-16 18:26:58 -04:00
Joshua Nelson
e63e5cdab0 Support intra-doc links on macro re-exports
This includes both `macro_rules!` and proc-macros.
2020-07-16 18:26:58 -04:00
Joshua Nelson
5f49f55eb4 rand -> my_rand
This fixes a failure in stage2 rustdoc tests.
2020-07-16 18:26:58 -04:00
Joshua Nelson
769acbaca0 #![deny(intra_doc_resolution_failure)] 2020-07-16 18:26:58 -04:00
Joshua Nelson
432b0431ab Move import to top of function 2020-07-16 18:26:58 -04:00
Joshua Nelson
71fe8f7cd8 Add test for submodules in inner crate 2020-07-16 18:26:58 -04:00
Joshua Nelson
9eb63945eb Add test for documenting the re-export 2020-07-16 18:26:58 -04:00
Joshua Nelson
e78d499637 Add test for re-exports
I had a hard time getting this to work without the `extern crate`,
suggestions are welcome.
2020-07-16 18:26:57 -04:00
Joshua Nelson
99f34d814e Remove warnings 2020-07-16 18:26:57 -04:00
Joshua Nelson
9542e23a7d Add tests for basic intra-doc links 2020-07-16 18:26:57 -04:00
Joshua Nelson
24c3d85e66 Make sure that module_id is actually a module 2020-07-16 18:26:57 -04:00
Joshua Nelson
20106d5a2f unwrap() -> expect() 2020-07-16 18:26:57 -04:00
Joshua Nelson
c3d9a730b7 Don't panic on fake IDs 2020-07-16 18:26:57 -04:00
Joshua Nelson
69bd13f233 Use DefId for modules 2020-07-16 18:26:57 -04:00
Joshua Nelson
848a766e24 Use the scope of the imported variable for resolution, not the current scope
- Accept DefId in resolve_str_path_error

This will probably break lots of internal invariants.
2020-07-16 18:26:57 -04:00
Joshua Nelson
5271e98f4e Use get_module instead of module_map for resolve_str_path_error 2020-07-16 18:26:57 -04:00
Alexis Bourget
8a2f147b5b Fix small nits, clarfying some confusing vocabulary and using more consistent wording 2020-07-17 00:03:14 +02:00
Nicholas Nethercote
bccff14a20 Simplify LifetimeBounds.
The `lifetimes` field is always empty. This commit removes it, and
renames the type as `Bounds`.
2020-07-17 07:32:15 +10:00
Nicholas Nethercote
8e92f4fb91 Remove unused cx parameter from pathvec_std and path_std. 2020-07-17 07:32:15 +10:00
Ashley Mannix
1f1cda65d9 appease tidy 2020-07-17 07:25:32 +10:00
Ashley Mannix
d1017940d7 remove inlined lazy::Waiter in favor of sync::Once 2020-07-17 07:25:32 +10:00
Ashley Mannix
d1263f5e66 use set() in SyncOnceCell::from 2020-07-17 07:25:32 +10:00
Ashley Mannix
237a97760a integrate Lazy into std layout
This commit refactors the initial implementation to fit into std and
makes some other changes:

- use MaybeUninit internally in SyncOnceCell
- correctly impl Drop for lazy::Once
- port Lazy::take from once_cell from: https://github.com/matklad/once_cell/pull/100

Co-Authored-By: Paul Dicker <pitdicker@users.noreply.github.com>
2020-07-17 07:25:32 +10:00
Aleksey Kladov
cac1768b03 First cut of std::lazy module 2020-07-17 07:23:49 +10:00
Jonas Schievink
209991f8b2 Don't assign () to ! MIR locals 2020-07-16 23:09:51 +02:00
Guillaume Gomez
5f6c07937a Set "invalid_codeblock_attributes" lint to warning level by default 2020-07-16 22:42:18 +02:00
bors
5c9e5df3a0 Auto merge of #74408 - Manishearth:rollup-9gxn4od, r=Manishearth
Rollup of 21 pull requests

Successful merges:

 - #73566 (Don't run `everybody_loops` for rustdoc; instead ignore resolution errors)
 - #73771 (Don't pollute docs/suggestions with libstd deps)
 - #73794 (Small cleanup for E0705 explanation)
 - #73807 (rustdoc: glue tokens before highlighting)
 - #73835 (Clean up E0710 explanation)
 - #73926 (Ignoring test case: [codegen] repr-transparent-aggregates-1.rs for aarch64)
 - #73981 (Remove some `ignore-stage1` annotations.)
 - #73998 (add regression test for #61216)
 - #74140 (Make hir ProjectionKind more precise)
 - #74148 (Move #[doc(alias)] check in rustc)
 - #74159 (forbid generic params in the type of const params)
 - #74171 (Fix 44056 test with debug on macos.)
 - #74221 (Don't panic if the lhs of a div by zero is not statically known)
 - #74325 (Focus on the current file in the source file sidebar)
 - #74359 (rustdoc: Rename internal API fns to `into_string`)
 - #74370 (Reintroduce spotlight / "important traits" feature)
 - #74390 (Fix typo in std::mem::transmute documentation)
 - #74391 (BtreeMap: superficially refactor root access)
 - #74392 (const generics triage)
 - #74397 (Fix typo in the latest release note)
 - #74406 (Set shell for github actions CI)

Failed merges:

r? @ghost
2020-07-16 19:01:48 +00:00
Manish Goregaokar
ff685f51f4
Rollup merge of #74406 - Mark-Simulacrum:fix-windows-maybe, r=Mark-Simulacrum
Set shell for github actions CI

r? @pietroalbini but because this seems at worst harmless and CI is broken self approving
2020-07-16 11:19:04 -07:00
Manish Goregaokar
043914ff68
Rollup merge of #74397 - rhysd:patch-1, r=jonas-schievink
Fix typo in the latest release note
2020-07-16 11:19:02 -07:00