kennytm
2318274a2d
Rollup merge of #58855 - alexcrichton:wasm-multithreaded-alloc, r=fitzgen
...
std: Spin for a global malloc lock on wasm32
There's lots of comments in the code, but the main gist of this commit
is that the acquisition of the global malloc lock on the
`wasm32-unknown-unknown` target when threads are enabled will not spin
on contention rather than block.
2019-03-16 14:56:13 +08:00
kennytm
bc3bef8327
Rollup merge of #58854 - alexcrichton:update-windows, r=Mark-Simulacrum
...
appveyor: Use VS2017 for all our images
Originally added in #55935 to test build times, this was reverted
in #56201 due to a belief that it caused the exit code 259 spurious
errors. We've since learned, however, that the 259 exit code is likely
not related to this image update as we're getting it in a number of
locations now.
VS2017 looks like it may be required to compile LLVm in the near future,
notably discovered by #58408 where we attempted to update LLVM.
2019-03-16 14:56:11 +08:00
bors
52e885628e
Auto merge of #58556 - oli-obk:imperative_recursion, r=pnkfelix
...
Optimize copying large ranges of undefmask blocks
Hopefully fixes #58523
2019-03-15 19:24:15 +00:00
bors
ad8a3eb039
Auto merge of #58140 - eddyb:advent-of-print, r=nikomatsakis
...
Refactor ppaux out of existence.
A long-time coming, this PR reorganizes and rewrites the pretty-printing architecture of rustc, specifically the parts that involve the typesystem (which used to be in `rustc::util::ppaux`).
*Note: these commits used to be in #57967 before being split off.*
The new API (i.e. the `Printer` and `PrettyPrint` traits) is in `rustc::ty::print`.
Design points, roughly:
* using associated types in `Printer` to allow building e.g. an AST, not just printing as a side-effect
* several overloading points for implementers of `PrettyPrinter`, e.g. how `<...>` is printed
* for `fmt::Display` impls, the value to print is lifted to the `ty::tls` `tcx`, and everything after that stays within the `ty::print` API, which requires `'tcx` to match between values and the printer's `tcx`, without going through `fmt::Display` again
Most of the behavior is unchanged, except for a few details, which should be clear from the test changes.
r? @nikomatsakis
Fixes https://github.com/rust-lang/rust/issues/55464
2019-03-15 13:58:03 +00:00
Eduard-Mihai Burtescu
dbf19c3975
rustbuild: remove obsolete fulldeps behavior from src/test/pretty tests, and enable them by default.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
0ee059d5a0
Fix rebase fallout and address some review comments.
2019-03-15 13:25:10 +02:00
Ralf Jung
4653ae1e3e
we can now print on entering/leaving the topmost frame, and make sure it stays that way
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
22d6c55cdf
rustc: print ExistentialProjection with spaces around =
, e.g. dyn Foo<A = X>
.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
a54a41ce47
rustc: provide DisambiguatedDefPathData in ty::print.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
8619edede1
rustc: slice substs in ty::print instead of passing the full ones.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
9df7c3f48f
rustc: let ty::print::pretty's p! macro call arbitrary methods.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
52b4f2daa0
rustc: remove PrintCx from ty::Print and rely on printers carrying TyCtxt.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
2a656828ac
rustc: remove the ability for pretty-printers to override nesting.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
c0c485c3ad
rustc: don't thread existential projections through path_generic_args.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
ffa00d4628
rustc: make pretty_path_generic_args
' task as simple as possible.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
4deaa69b42
rustc: print elided regions as '_ instead of nothing, and use a separate check when optional.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
72690d24f0
rustc: always hide defaulted generic args, even in verbose mode.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
381fa7aa18
rustc: move ty::print::PrintConfig's fields to FmtPrinter.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
1a0f3a2856
rustc: streamline the Print/fmt::Display impls in ppaux and move them to ty::print::pretty.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
030cdc9729
rustc: remove obsolete hacks from ppaux, relating to normalization under HRTB.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
fb53bb9e2b
rustc: move Debug impls from ppaux to ty::structural_impls.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
9c424850e8
rustc: disconnect all the Debug functionality from ty::print.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
d0a1bf5c88
rustc: make util::ppaux private.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
800ddb367e
rustc: remove fields from ty::print::PrintConfig available from tcx.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
55871aad9a
rustc: split out the pretty-printing parts of ty::print into a separate module.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
26f180705a
rustc: move ty/print.rs to ty/print/mod.rs.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
6d67d6846c
rustc_codegen_utils: print all nominal types as paths, in symbol names.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
5211e37b1d
rustc: don't pass Namespace explicitly, but rather track it in FmtPrinter.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
ab26b26d34
rustc: introduce a ty::print::PrettyPrinter helper for printing "<...>".
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
35e5123f51
rustc: support overriding type printing in ty::print::Printer.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
88d96b269c
rustc: support overriding region printing in ty::print::Printer.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
fc914aa88a
rustc: centralize region printing in ty::RegionKind's Print impl.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
cafd83d1d5
rustc: don't keep RegionHighlightMode in a thread-local.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
7c4eecef0b
rustc: pass ty::print::PrintCx by value.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
ab5d6fb302
rustc: remove the closure from ppaux's p! macro (by making ? implicit).
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
37e918526a
rustc: split off most of ty::print::PrintCx's fields into a separate struct.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
5616ca857d
rustc: uniformize ty::print's error handling by requiring Result.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
972af5e808
rustc: rename ppaux' print macro to just p and make its cx input implicit.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
387ea61ec1
rustc: make ppaux' print macro use only one closure.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
27ddf2cec8
rustc: replace node_path_str with uses of def_path_str.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
36f64f15fc
rustc: remove ty::print::FORCE_ABSOLUTE
altogether.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
66cc029dd7
rustc: assert ty::print::FORCE_ABSOLUTE
isn't needed anymore.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
df6650f38c
rustc: move ...::<impl ...>
printing into pretty_path_qualified
.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
39fd54a418
rustc: move the FORCE_IMPL_FILENAME_LINE
hack into print_def_path
.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
aec5a48481
rustc: move <...>-less impl path special-case to pretty_path_qualified.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
a15bfc6f48
rustc: merge PrintCx::parameterized and def_path printing.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
b0fbca953f
rustc: integrate LocalPathPrinter's behavior into FmtPrinter.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
9f8aaa04e0
rustc: move the contents of ty::item_path to ty::print.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
e0c75ff40d
rustc: rename item_path to def_path (except the module in ty).
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
f1af5a77a0
rustc: remove TyCtxt::parent_def_id in favor of TyCtxt::parent.
2019-03-15 13:25:10 +02:00