Commit Graph

50114 Commits

Author SHA1 Message Date
Jeffrey Seyfried
964b72b3e0 Refactor resolve_import_for_module 2016-02-03 23:39:16 +00:00
Jeffrey Seyfried
0c40621759 Refactor away resolve_module_in_lexical_scope 2016-02-03 23:39:14 +00:00
Jeffrey Seyfried
23bdbb13f4 Refactor block_needs_anonymous_module 2016-02-03 23:39:13 +00:00
Jeffrey Seyfried
2ed210d5fe Refactor more functionality into record_import_use 2016-02-03 23:39:12 +00:00
Jeffrey Seyfried
8e61ca4acc Refactor resolve_item_in_lexical_scope 2016-02-03 23:39:10 +00:00
Jeffrey Seyfried
298346dd5b Improve detection of unused imports 2016-02-03 23:39:08 +00:00
Björn Steinbrink
8c0f4f5d3a Avoid quadratic growth of functions due to cleanups
If a new cleanup is added to a cleanup scope, the cached exits for that
scope are cleared, so all previous cleanups have to be translated
again. In the worst case this means that we get N distinct landing pads
where the last one has N cleanups, then N-1 and so on.

As new cleanups are to be executed before older ones, we can instead
cache the number of already translated cleanups in addition to the
block that contains them, and then only translate new ones, if any and
then jump to the cached ones, getting away with linear growth instead.

For the crate in #31381 this reduces the compile time for an optimized
build from >20 minutes (I cancelled the build at that point) to about 11
seconds. Testing a few crates that come with rustc show compile time
improvements somewhere between 1 and 8%. The "big" winner being
rustc_platform_intrinsics which features code similar to that in #31381.

Fixes #31381
2016-02-04 00:34:53 +01:00
bors
e3bcddb44b Auto merge of #31078 - nbaksalyar:illumos, r=alexcrichton
This pull request adds support for [Illumos](http://illumos.org/)-based operating systems: SmartOS, OpenIndiana, and others. For now it's x86-64 only, as I'm not sure if 32-bit installations are widespread. This PR is based on #28589 by @potatosalad, and also closes #21000, #25845, and #25846.

Required changes in libc are already merged: https://github.com/rust-lang-nursery/libc/pull/138

Here's a snapshot required to build a stage0 compiler:
https://s3-eu-west-1.amazonaws.com/nbaksalyar/rustc-sunos-snapshot.tar.gz
It passes all checks from `make check`.

There are some changes I'm not quite sure about, e.g. macro usage in `src/libstd/num/f64.rs` and `DirEntry` structure in `src/libstd/sys/unix/fs.rs`, so any comments on how to rewrite it better would be greatly appreciated.

Also, LLVM configure script might need to be patched to build it successfully, or a pre-built libLLVM should be used. Some details can be found here: https://llvm.org/bugs/show_bug.cgi?id=25409

Thanks!

r? @brson
2016-02-03 22:40:32 +00:00
Matt Brubeck
7b3ea40500 Remove redundant semicolon from "block_expr" in grammar reference
"stmt" already includes the terminating semicolon.
2016-02-03 13:43:52 -08:00
Tobias Bucher
b27b8f63bc Add tests for Cow::from for strings, vectors and slices 2016-02-03 20:45:30 +01:00
Tobias Bucher
f30f569f3b Add Cow::from for Vec and slices
Fixes #31354.
2016-02-03 20:45:18 +01:00
bors
18c1781a4c Auto merge of #30834 - reem:rwlock-read-guard-map, r=alexcrichton
This is very useful when the RwLock is synchronizing access to a data
structure and you would like to return or store guards which contain
references to data inside the data structure instead of the data structure
itself.
2016-02-03 19:26:05 +00:00
Paul Dicker
0bd55e5484 Reformat comments 2016-02-03 18:50:57 +01:00
Paul Dicker
7f6f458194 Adress comments 2016-02-03 18:23:33 +01:00
bors
8fc73c703a Auto merge of #31056 - kamalmarhubi:std-process-nul-chars, r=alexcrichton
This reports an error at the point of calling `Command::spawn()` or one of
its equivalents.

Fixes #30858
Fixes #30862
2016-02-03 17:19:10 +00:00
mitaa
1fcdedb8fb Fix rendering of single-char-span
A span spanning only a single character would render like `^~`
instead of just `^`.
2016-02-03 16:54:37 +01:00
Kamal Marhubi
7c64bf1b9b std: Properly handle interior NULs in std::process
This reports an error at the point of calling `Command::spawn()` or one of
its equivalents.

Fixes https://github.com/rust-lang/rust/issues/30858
Fixes https://github.com/rust-lang/rust/issues/30862
2016-02-03 10:54:29 -05:00
Guillaume Bonnet
e9dfc94d26 compiler-rt: Handle -Werror=* arguments in CFLAGS 2016-02-03 16:17:32 +01:00
bors
b14af1e4ef Auto merge of #31371 - apasel422:docs, r=alexcrichton
r? @steveklabnik
2016-02-03 15:13:39 +00:00
Nikita Baksalyar
fae883c113
Fix broken auto-mac-ios-opt build 2016-02-03 16:45:34 +03:00
bors
2d4e94a501 Auto merge of #31385 - oli-obk:doc/mir, r=nagisa
I didn't change any content, just added another slash so we can see those comments in the docs

r? @steveklabnik
2016-02-03 13:05:18 +00:00
Oliver Schneider
4e44ef1e29 upgrade comments on MIR structures and functions to doc comments 2016-02-03 13:25:07 +01:00
bors
db6f888e78 Auto merge of #31375 - nagisa:path-docs, r=alexcrichton 2016-02-03 10:59:47 +00:00
Simonas Kazlauskas
c5c756bf14 Improve wording of --target help 2016-02-03 12:04:17 +02:00
bors
8c77ffb484 Auto merge of #31338 - dirk:dirk/add-name-bindings-for-bad-imports, r=nrc
WIP implementation of #31209.

The goal is to insert fake/dummy definitions for names that we failed to import so that later resolver stages won't complain about them.
2016-02-03 08:51:31 +00:00
Daniel Campbell
b361b7f1a5 Changed macro spans in CSVs to point to the macro name, bugfixed nested spans 2016-02-03 20:44:53 +13:00
bors
54664f1884 Auto merge of #31263 - dhuseby:fixing_bsd_builds, r=alexcrichton
Something went haywire with github last night and the old PR https://github.com/rust-lang/rust/pull/31230 got closed somehow.  This new PR is to replace the old one.  This incorporates all of the feedback from the other PR.

@alexcrichton I incorporated the suggestion from @semarie and the result is cleaner and clearer.  I think this is ready to go.
2016-02-03 06:38:01 +00:00
Dave Huseby
ca6f920346 trying again at fixing stackp initialization 2016-02-02 21:42:11 -08:00
Dave Huseby
68bfd43eef simplifying get_stack 2016-02-02 21:42:11 -08:00
Dave Huseby
7803c8d688 refactoring get_stack to be cleaner 2016-02-02 21:42:11 -08:00
Dave Huseby
c83128eb60 unifying name_bytes now that the two blocks are the same 2016-02-02 21:42:11 -08:00
Dave Huseby
0153e64d97 Fixes #31229 2016-02-02 21:42:11 -08:00
Dirk Gadsden
026bcbf91e Spelling fix in middle::def::Def 2016-02-02 20:48:56 -08:00
Dirk Gadsden
5ed8e98ea2 Add fake import resolutions & targets for names in bad imports 2016-02-02 20:47:34 -08:00
bors
50df6b9dc5 Auto merge of #31319 - alexcrichton:msvc-backtraces, r=michaelwoerister
This mirrors the behavior of `clang-cl.exe` by adding a `CodeView` global
variable when emitting debug information. This should in turn help stack traces
that are generated when code is compiled with debuginfo enabled.

Closes #28133
2016-02-03 03:06:52 +00:00
bors
a9922419cf Auto merge of #31370 - Manishearth:rollup, r=Manishearth
- Successful merges: #27499, #31220, #31329, #31332, #31347, #31351, #31352, #31366
- Failed merges:
2016-02-03 00:58:37 +00:00
Jonathan Reem
fc875b087c Add issue number to guard map methods. 2016-02-02 16:34:49 -08:00
Simonas Kazlauskas
1a886bc3c9 Improve docs for Path::methods 2016-02-03 01:16:58 +02:00
bors
dea183aa84 Auto merge of #31361 - alexcrichton:revert-mk-changes, r=brson
This reverts commit d03712977d.
2016-02-02 21:57:57 +00:00
Andrew Paseltiner
27319b48eb Correct linked_list::IntoIter doc comment 2016-02-02 16:45:35 -05:00
Manish Goregaokar
1a21dabf27 Rollup merge of #31366 - paulsmith:patch-1, r=steveklabnik
The context of the link is `Result` but it points to the docs on `Option`'s `expect`.
2016-02-03 02:54:25 +05:30
Manish Goregaokar
86650211a9 Rollup merge of #31352 - steveklabnik:gh31154, r=nikomatsakis
Fixes #31154
2016-02-03 02:54:25 +05:30
Manish Goregaokar
5540605cd6 Rollup merge of #31351 - steveklabnik:gh31318, r=alexcrichton
This is a behavior that some find confusing, so it deserves its own example.

Fixes #31318

I think this wording might be a bit strange, but I couldn't come up with anything better. Feedback very welcome.
2016-02-03 02:54:25 +05:30
Manish Goregaokar
688f607352 Rollup merge of #31347 - GuillaumeGomez:fix_E0118, r=Manishearth
r? @eddyb
2016-02-03 02:54:25 +05:30
Manish Goregaokar
f55995bad2 Rollup merge of #31332 - durka:errorck-fileline, r=brson
Small modification to #31288. Shows full path and line number for unused error codes.
2016-02-03 02:54:24 +05:30
Manish Goregaokar
93042f2bfb Rollup merge of #31329 - quodlibetor:no-const-doc-in-stable, r=alexcrichton
Fixes #31098

AFAICT this is the only place where rustdoc explicitly checks if we are on stable before emitting content, so I can't tell if this is the sane way to handle this, or if anything else should be done to make sure that nobody forgets to remove this check when `const` is stabilized.
2016-02-03 02:54:24 +05:30
Manish Goregaokar
ae96e51ac7 Rollup merge of #31220 - steveklabnik:gh30632, r=nikomatsakis
Fixes #30632

I'm not sure if this explanation is good enough. If it is, I will add it to filter as well.
2016-02-03 02:54:24 +05:30
Manish Goregaokar
76e0025078 Rollup merge of #27499 - barosl:macro-doc-raw-str-hashes, r=nikomatsakis
Any documentation comments that contain raw-string-looking sequences may pretty-print invalid code when expanding them, as the current logic always uses the `r"literal"` form, without appending any `#`s.

This commit calculates the minimum number of `#`s required to wrap a comment correctly and appends `#`s appropriately.

Fixes #27489.
2016-02-03 02:54:24 +05:30
Sean Leffler
fb00e60ab1 Added assertion ensuring zero-sized type. 2016-02-02 11:41:19 -08:00
bors
2dc132e4d2 Auto merge of #31312 - alexcrichton:no-le-in-powerpc64le, r=alexcrichton
Currently the `mipsel-unknown-linux-gnu` target doesn't actually set the
`target_arch` value to `mipsel` but it rather uses `mips`. Alternatively the
`powerpc64le` target does indeed set the `target_arch` as `powerpc64le`,
causing a bit of inconsistency between theset two.

As these are just the same instance of one instruction set, let's use
`target_endian` to switch between them and only set the `target_arch` as one
value. This should cut down on the number of `#[cfg]` annotations necessary and
all around be a little more ergonomic.
2016-02-02 17:11:48 +00:00