Commit Graph

46056 Commits

Author SHA1 Message Date
William Throwe
0112e7bd15 Move main removal to its own pass in --test mode
This handles the case where the #[main] function is buried deeper in
the ast than we search for #[test] functions.  I'm not sure why one
would want to do that, but since it works in standard compilation it
should also work for tests.
2015-08-24 20:28:24 -04:00
William Throwe
15d6837a16 Mark main-like functions allow(dead_code) in tests
Fixes #12327.
2015-08-24 20:28:24 -04:00
William Throwe
45de9de1e9 Move entry point identification logic to libsyntax
Identifying entry points will be useful in --test mode, which is
handled in libsyntax.
2015-08-24 20:27:42 -04:00
Simonas Kazlauskas
067ad9928f Fix E0139 code
Fixes #27946
2015-08-25 01:44:18 +03:00
bors
bc3573470f Auto merge of #27943 - arielb1:fast-region, r=nikomatsakis
This increases regionck performance greatly - type-checking on
librustc decreased from 9.1s to 8.1s. Because of Amdahl's law,
total performance is improved only by about 1.5% (LLVM wizards,
this is your opportunity to shine!).

before:
576.91user 4.26system 7:42.36elapsed 125%CPU (0avgtext+0avgdata 1142192maxresident)k
after:
566.50user 4.84system 7:36.84elapsed 125%CPU (0avgtext+0avgdata 1124304maxresident)k

I am somewhat worried really need to find out why we have this Red Queen's
Race going on here. Originally I suspected it may be a problem from RFC1214's
warnings, but it seems to be an effect from other changes.

However, the increase seems to be mostly in LLVM's time, so I guess
it's the LLVM wizards' problem.

r? @nikomatsakis
2015-08-24 22:13:45 +00:00
Cesar Eduardo Barros
ff81920f03 Implement read_exact for the Read trait
This implements the proposed "read_exact" RFC
(https://github.com/rust-lang/rfcs/pull/980).
2015-08-24 19:10:08 -03:00
Chris Morgan
81c1d142d3 Simplify String’s Extend<&str> implementation
Reserving lower_bound bytes was just silly. It’d be perfectly reasonable
to have empty strings in the iterator, which could cause superfluous
reallocation of the string, or to have more than one byte per string,
which could cause additional reallocation (in practice it’ll balance
out). The added complexity of this logic is simply pointless, adding
a little bloat with no demonstrable advantage and slight disadvantage.
2015-08-25 07:47:42 +10:00
Björn Steinbrink
5d9c250fe4 Use StructGEP instead of GEPi where appropriate
StructGEP seems clearer and probably does an even better job of the
micro-optimization that we have in GEPi.
2015-08-24 23:39:56 +02:00
Björn Steinbrink
110a34cd84 Use get_dataptr() and get_meta() where appropriate 2015-08-24 23:39:56 +02:00
Björn Steinbrink
d80ff126bf Rename get_len() to get_meta()
The functions is useful for all kinds of fat pointers, but get_len()
just feels so wrong for trait object fat pointers. Let's use get_meta()
because that's rather neutral.
2015-08-24 23:39:43 +02:00
Corey Farwell
1629dce494 Use correct indefinite article in reference.md 2015-08-24 17:26:26 -04:00
Guillaume Gomez
528d99c014 Add test for LookupHost iterator Send/Sync traits 2015-08-24 23:14:56 +02:00
Ariel Ben-Yehuda
06563fe0b7 fix other test 2015-08-24 23:41:02 +03:00
bors
4c996499a1 Auto merge of #27239 - apasel422:issue-19102, r=huonw
closes #19102
2015-08-24 18:43:41 +00:00
Ariel Ben-Yehuda
1e507d4450 address nits 2015-08-24 21:30:39 +03:00
Eljay
efc98fab26 Update hoedown to latest version (3.0.4). 2015-08-24 19:21:08 +01:00
Matěj Grabovský
82bed0a760 Clarify a sentence in the Book 2015-08-24 20:14:39 +02:00
Tobias Bucher
6de7f609dd Atomically open files with O_CLOEXEC where possible
On Linux the flag is just ignored if it is not supported:
https://lwn.net/Articles/588444/

Touches #24237.
2015-08-24 20:02:09 +02:00
Ariel Ben-Yehuda
581e5ee45e fix test 2015-08-24 20:46:53 +03:00
Ariel Ben-Yehuda
65e9bc0c93 store the CodeExtent directly in FreeRegion
this makes the code cleaner
2015-08-24 20:46:52 +03:00
Ariel Ben-Yehuda
fc304384e6 Use a Vec instead of an HashMap for the scope hierarchy
This increases regionck performance greatly - type-checking on
librustc decreased from 9.1s to 8.1s. Because of Amdahl's law,
total performance is improved only by about 1.5% (LLVM wizards,
this is your opportunity to shine!).

before:
576.91user 4.26system 7:42.36elapsed 125%CPU (0avgtext+0avgdata 1142192maxresident)k
after:
566.50user 4.84system 7:36.84elapsed 125%CPU (0avgtext+0avgdata 1124304maxresident)k

I am somewhat worried really need to find out why we have this Red Queen's
Race going on here. Originally I suspected it may be a problem from RFC1214's
warnings, but it seems to be an effect from other changes.

However, the increase seems to be mostly in LLVM's time, so I guess
it's the LLVM wizards' problem.
2015-08-24 20:24:38 +03:00
Ariel Ben-Yehuda
2bcc6d8ec7 Use a u32 instead of a usize in CodeExtent
This reduces the size of CodeExtent to 12 bytes (was 24). We should have
a warning for this kind of problem.
2015-08-24 20:10:25 +03:00
Ariel Ben-Yehuda
316510f5e2 split ReInfer into ReVar and ReSkolemized
this should reduce the size of ty::Region to 24 bytes (from 32),
and they are treated differently in most cases anyway.
2015-08-24 20:10:25 +03:00
bors
b74ec4c847 Auto merge of #27976 - sfackler:addrparseerror-error, r=alexcrichton
Closes #27973
2015-08-24 16:00:42 +00:00
Steven Fackler
f266f12f30 Add stability markers for new impls 2015-08-24 08:59:45 -07:00
Andrea Canciani
152c76ef0d Minimize the implementation of Rem in libcore
The implementation of the remainder operation belongs to
librustc_trans, but it is also stubbed out in libcore in order to
expose it as a trait on primitive types. Instead of exposing some
implementation details (like the upcast to `f64` in MSVC), use a
minimal implementation just like that of the `Div` trait.
2015-08-24 17:47:01 +02:00
bors
797d0ba59c Auto merge of #27857 - Manishearth:improve-fnkind, r=pnkfelix
Since enums are namespaced now, should we also remove the `Fk` prefixes from `FnKind` and remove the reexport? (The reexport must be removed because otherwise it clashes with glob imports containing `ItemFn`). IMO writing `FnKind::Method` is much clearer than `FkMethod`.
2015-08-24 12:47:57 +00:00
bors
db67cbe43d Auto merge of #27856 - nikomatsakis:move-def-id-to-rustc, r=eddyb
It doesn't really make sense for DefId to be in libsyntax -- it is concerned with a single crate only. It is the compiler that understands the idea of many crates. (At some point, there might be a useful intermediate point here.) This is a refactoring in support of incr. compilation, which will be adjusting the notion of a DefId to make it more durable across compilations.

This will probably be a [breaking-change] for every plugin ever. You need to adjust things as follows:

    use rustc::middle::def_id::{DefId, LOCAL_CRATE}; // two most common definitions
    ast_util::is_local(def_id) => def_id.is_local()
    ast_util::local_def(node_id) => DefId::local(node_id)
2015-08-24 10:03:48 +00:00
Niko Matsakis
19948751bd purge DEF_ID_DEBUG TLS variable, and just always print a path, since I
think it can no longer panic
2015-08-24 05:35:34 -04:00
Niko Matsakis
c0de23de81 convert to use is_local instead of == LOCAL_CRATE 2015-08-24 05:35:34 -04:00
Niko Matsakis
e91bef2e05 fallout from moving def-id 2015-08-24 05:35:34 -04:00
Niko Matsakis
afba69461a move def-id to rustc crate 2015-08-24 05:34:58 -04:00
Steven Fackler
b61fddebb0 Implement Error for AddrParseError
Closes #27973
2015-08-23 23:00:18 -07:00
Diggory Blake
19dc4d0a30 Fix compile-fail tests on windows 2015-08-24 04:53:56 +01:00
Overmind JIANG
6887d8cdab i686-linux-android: Removing useless cfgs.
That line is in a `#[cfg(target_os = "macos")]` block..
2015-08-24 08:20:32 +08:00
bors
63ba780fd7 Auto merge of #27962 - dotdash:overflow, r=alexcrichton
We're currently possibly introducing an unneeded temporary, make use of
InsertValue which is said to kick us off of FastISel and we generate
loads/stores of first class aggregates, which is bad as well. Let's not
do all these things.
2015-08-23 21:45:29 +00:00
Adam Crume
30fc4b765c book: Talk about ignore attribute in testing guide 2015-08-23 13:53:52 -07:00
Guillaume Gomez
8529d75b81 Add Send/Sync traits on LookupHost struct 2015-08-23 22:27:33 +02:00
bors
0e71bda242 Auto merge of #27586 - GuillaumeGomez:patch-2, r=Manishearth
Part of #24407.

This PR doesn't have code example since I didn't find how to raise it. If someone finds a code which does, please say it !

cc @pnkfelix
cc @eddyb
r? @Manishearth
2015-08-23 20:02:35 +00:00
bors
9f227ca2c2 Auto merge of #27960 - dotdash:zerosize_lifetime, r=alexcrichton
These aren't super common, but happen for e.g. closures that have an
empty environment, and for for-loops that return ().
2015-08-23 17:23:23 +00:00
bors
c69c29bb53 Auto merge of #27948 - wthrowe:f64-sqrt, r=alexcrichton
This fixes a reappearance of bug #9987 introduced in
1ddee8070d, which caused
f64::tests::test_sqrt_domain to fail (at least on some systems).
2015-08-23 15:41:34 +00:00
Overmind JIANG
6a7ed8f97a i686-linux-android: set -mcpu to pentium4.
To allow SSE2 to be used.
2015-08-23 22:49:25 +08:00
bors
568b13e26c Auto merge of #27961 - Manishearth:fix-rustcdatastructures-docs, r=eddyb
None
2015-08-23 13:58:54 +00:00
Björn Steinbrink
274dae9a4c Improve codegen for the various "with overflow" intrinsics
We're currently possibly introducing an unneeded temporary, make use of
InsertValue which is said to kick us off of FastISel and we generate
loads/stores of first class aggregates, which is bad as well. Let's not
do all these things.
2015-08-23 15:35:45 +02:00
Manish Goregaokar
fd2663648f Fix panic in docs for librustc_data_structures 2015-08-23 18:17:27 +05:30
Björn Steinbrink
64fcf3b1a6 Omit lifetime intrinsics for zero-sized types
These aren't super common, but happen for e.g. closures that have an
empty environment, and for for-loops that return ().
2015-08-23 14:38:42 +02:00
bors
c97acc30c4 Auto merge of #27944 - dotdash:zst_memcpy, r=eddyb
r? @eddyb
2015-08-23 12:16:24 +00:00
bors
2375743037 Auto merge of #27931 - tbu-:pr_liblibc_void, r=alexcrichton 2015-08-23 09:32:47 +00:00
bors
54b2eced63 Auto merge of #27927 - DiamondLovesYou:no-asm, r=alexcrichton 2015-08-23 07:50:06 +00:00
Tim JIANG
a1b2deb33b New cross target: i686-linux-android
- All the libstd tests are now passing in the optimized build against
  a Zenfone2 and the x86 Android simulator.
2015-08-23 15:38:11 +08:00