Commit Graph

44237 Commits

Author SHA1 Message Date
bors
afe25a2d6a Auto merge of #26515 - quantheory:check_enum_recursion, r=nrc
Fixes #23302.

Note that there's an odd situation regarding the following, most likely due to some inadequacy in `const_eval`:

```rust
enum Y {
    A = 1usize,
    B,
}
```

In this case, `Y::B as usize` might be considered a constant expression in some cases, but not others.  (See #23513, for a related problem where there is only one variant, with no discriminant, and it doesn't behave nicely as a constant expression either.)

Most of the complexity in this PR is basically future-proofing, to ensure that when `Y::B as usize` is fully made to be a constant expression, it can't be used to set `Y::A`, and thus indirectly itself.
2015-07-09 03:41:22 +00:00
Sean Patrick Santos
b952c0e4e9 Add comments about the checks for recursive variant definition, as requested by @nrc. 2015-07-08 20:51:47 -06:00
bors
3198e1acf3 Auto merge of #26883 - retep998:download-more-ram, r=alexcrichton
Extension of https://github.com/rust-lang/rust/pull/26691

r? @alexcrichton
2015-07-09 01:49:25 +00:00
bors
16f64c3880 Auto merge of #26879 - GuillaumeGomez:patch-1, r=arielb1
Part of #24407.
r? @Manishearth
2015-07-09 00:16:56 +00:00
bors
9f26f14dc9 Auto merge of #26869 - alexcrichton:fix-msvc-sepcomp, r=nrc
This commit alters the implementation of multiple codegen units slightly to be
compatible with the MSVC linker. Currently the implementation will take the N
object files created by each codegen unit and will run `ld -r` to create a new
object file which is then passed along. The MSVC linker, however, is not able to
do this operation.

The compiler will now no longer attempt to assemble object files together but
will instead just pass through all the object files as usual. This implies that
rlibs may not contain more than one object file (if the library is compiled with
more than one codegen unit) and the output of `-C save-temps` will have changed
slightly as object files with the extension `0.o` will not be renamed to `o`
unless requested otherwise.
2015-07-08 22:45:19 +00:00
Alex Crichton
9bc8e6d147 trans: Link rlibs to dylibs with --whole-archive
This commit starts passing the `--whole-archive` flag (`-force_load` on OSX) to
the linker when linking rlibs into dylibs. The primary purpose of this commit is
to ensure that the linker doesn't strip out objects from an archive when
creating a dynamic library. Information on how this can go wrong can be found in
issues #14344 and #25185.

The unfortunate part about passing this flag to the linker is that we have to
preprocess the rlib to remove the metadata and compressed bytecode found within.
This means that creating a dylib will now take longer to link as we've got to
copy around the input rlibs to a temporary location, modify them, and then
invoke the linker. This isn't done for executables, however, so the "hello
world" compile time is not affected.

This fix was instigated because of the previous commit where rlibs may not
contain multiple object files instead of one due to codegen units being greater
than one. That change prevented the main distribution from being compiled with
more than one codegen-unit and this commit fixes that.

Closes #14344
Closes #25185
2015-07-08 15:24:23 -07:00
bors
020d201a66 Auto merge of #26849 - bluss:read-to-end-memset, r=alexcrichton
Improve zerofill in Vec::resize and Read::read_to_end

We needed a more efficient way to zerofill the vector in read_to_end.
This to reduce the memory intialization overhead to a minimum.

Use the implementation of `std::vec::from_elem` (used for the vec![]
macro) for Vec::resize as well. For simple element types like u8, this
compiles to memset, so it makes Vec::resize much more efficient.
2015-07-08 21:12:54 +00:00
bors
15952ac6cf Auto merge of #26894 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #26687, #26784, #26850, #26889, #26891, #26892, #26893
- Failed merges:
2015-07-08 19:26:30 +00:00
Ulrik Sverdrup
a5cc17adaa io: Simplify BufReader::with_capacity
Use the vec![] macro directly to create a sized, zeroed vector.

This should result in a big speedup when creating BufReader, because
vec![0; cap] compiles to a memset call, while the previous extend code
currently did not.
2015-07-08 19:40:40 +02:00
Ulrik Sverdrup
6ac0ba3c3a Improve Vec::resize so that it can be used in Read::read_to_end
We needed a more efficient way to zerofill the vector in read_to_end.
This to reduce the memory intialization overhead to a minimum.

Use the implementation of `std::vec::from_elem` (used for the vec![]
macro) for Vec::resize as well. For simple element types like u8, this
compiles to memset, so it makes Vec::resize much more efficient.
2015-07-08 19:40:40 +02:00
Guillaume Gomez
6f01aa0fc8 Add E0232 error explanation 2015-07-08 18:05:18 +02:00
Guillaume Gomez
c01c1fd715 Add E0220 error explanation 2015-07-08 18:05:14 +02:00
Steve Klabnik
546ce79570 Rollup merge of #26893 - dhuseby:fixing_freebsd_tests, r=alexcrichton 2015-07-08 10:34:27 -04:00
Dave Huseby
b77985fcfb this fixes the test failures on freebsd 2015-07-08 10:32:43 -07:00
Steve Klabnik
6bc1264329 Rollup merge of #26892 - steveklabnik:gh26482, r=alexcrichton
We weren't explicit enough about Cargo's default version behavior.

For rust-lang/rust at least,

Fixes #26482
2015-07-08 10:34:27 -04:00
Steve Klabnik
1ae7702681 TRPL: make version constraits explicit
We weren't explicit enough about Cargo's default version behavior.

For rust-lang/rust at least,

Fixes #26482
2015-07-08 13:09:22 -04:00
Steve Klabnik
bd1033d738 Rollup merge of #26891 - steveklabnik:gh26552, r=huonw
Added a proper Unsafety header, as well as mentioning that
the pointer shouldn't be null.

Fixes #26552
2015-07-08 10:34:27 -04:00
Steve Klabnik
80f269259c Fix up unsafe section of slice::from_raw_parts
Added a proper Unsafety header, as well as mentioning that
the pointer shouldn't be null.

Fixes #26552
2015-07-08 13:04:41 -04:00
Steve Klabnik
80f9d93585 Rollup merge of #26889 - sanxiyn:fixme, r=alexcrichton
Fix #4951.
2015-07-08 10:34:26 -04:00
Steve Klabnik
64ccb42bb8 Rollup merge of #26850 - steveklabnik:more_format_docs, r=alexcrichton
https://www.reddit.com/r/rust/comments/3ceaui/psa_produces_prettyprinted_debug_output/
2015-07-08 10:34:26 -04:00
Steve Klabnik
6c52903891 Make mention of alternate flags in std::fmt traits
https://www.reddit.com/r/rust/comments/3ceaui/psa_produces_prettyprinted_debug_output/
2015-07-08 12:40:54 -04:00
Steve Klabnik
d5629e9e35 Rollup merge of #26784 - birkenfeld:patch-2, r=steveklabnik
* fix probable copy-paste error in BufWriter.get_mut()
* more consistent punctuation
2015-07-08 10:34:26 -04:00
Steve Klabnik
19d8bfff15 Rollup merge of #26687 - christianweinz:patch-1, r=huonw
The ‘_‘ wildcard does exactly not handle specific cases but all not specified ones.
2015-07-08 10:34:26 -04:00
Seo Sanghyeon
8d9f1bab75 Remove a FIXME 2015-07-08 23:30:19 +09:00
Peter Atashian
da5ab9921e Report memory use in time-passes on Windows
Signed-off-by: Peter Atashian <retep998@gmail.com>
2015-07-08 08:29:41 -04:00
Guillaume Gomez
d1658679ca Add E0191 error explanation 2015-07-08 12:57:48 +02:00
bors
50df2a09b8 Auto merge of #26863 - brson:revert-stageversion, r=alexcrichton
This reverts https://github.com/rust-lang/rust/pull/26599, which puts the stage number in the output of `--version -v`, but is not supposed to put it in the 'stage2' compiler, which is what most people refer to the binary we deploy.

The picture is not so clear though because of how stage 'promotions' happen in the build and also because the windows build deploys stage3, not stage2.

cc @richo
2015-07-08 07:26:42 +00:00
bors
fd8e175c4e Auto merge of #26859 - arielb1:const-deref-again, r=eddyb
Fixes #25901 

r? @eddyb
2015-07-08 03:11:36 +00:00
Alex Crichton
d23239b48e msvc: Get codegen-units working
This commit alters the implementation of multiple codegen units slightly to be
compatible with the MSVC linker. Currently the implementation will take the N
object files created by each codegen unit and will run `ld -r` to create a new
object file which is then passed along. The MSVC linker, however, is not able to
do this operation.

The compiler will now no longer attempt to assemble object files together but
will instead just pass through all the object files as usual. This implies that
rlibs may not contain more than one object file (if the library is compiled with
more than one codegen unit) and the output of `-C save-temps` will have changed
slightly as object files with the extension `0.o` will not be renamed to `o`
unless requested otherwise.
2015-07-07 20:07:20 -07:00
bors
e6a9be10bc Auto merge of #26861 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #26742, #26852, #26853, #26854, #26855, #26857
- Failed merges: #26796
2015-07-07 21:28:54 +00:00
Brian Anderson
147da94206 Revert "rustc_driver: Print stage info in --version --verbose"
This reverts commit 555b021c6e.
2015-07-07 10:54:06 -07:00
Brian Anderson
04dfdd7403 Revert "rustc_driver: Omit stage info for stage2+"
This reverts commit e66ac43ea4.
2015-07-07 10:53:54 -07:00
bors
5d53921eff Auto merge of #26747 - huonw:stability-issue, r=alexcrichton
This takes an issue number and points people to it in the printed error
message. This commit does not make it an error to have no `issue` field.
2015-07-07 17:41:43 +00:00
Ariel Ben-Yehuda
45fd29621d mark user-defined derefs as non-constant
Fixes #25901
2015-07-07 18:48:28 +03:00
Ariel Ben-Yehuda
445824b29f use is_method_call rather than directly accessing the method_map 2015-07-07 18:48:27 +03:00
Steve Klabnik
bead66b0ef Rollup merge of #26857 - GuillaumeGomez:patch-1, r=steveklabnik 2015-07-07 09:49:56 -04:00
Guillaume Gomez
3c76163e1d Add missing "```" 2015-07-07 19:37:54 +02:00
Steve Klabnik
b6c7dff728 Rollup merge of #26855 - steveklabnik:gh26344, r=alexcrichton
Fixes #26344
2015-07-07 09:49:56 -04:00
Steve Klabnik
743a9e6cae Rollup merge of #26854 - steveklabnik:gh26345, r=alexcrichton
I am not mentioning #[unsafe_drop_flag] because it should go away
eventually, and also because it's just an attribute, it's not
really a use of the `unsafe` keyword.

Fixes #26345
2015-07-07 09:49:56 -04:00
Steve Klabnik
10c795a6ea Rollup merge of #26853 - steveklabnik:gh26346, r=Gankro
This incorrectly implied that doing things is fine in unsafe code

Fixes #26346
2015-07-07 09:49:55 -04:00
Steve Klabnik
bc28e64fb3 Re-word UB in unsafe guide
This incorrectly implied that doing things is fine in unsafe code

Fixes #26346
2015-07-07 12:52:20 -04:00
Steve Klabnik
a97687e521 Rollup merge of #26852 - steveklabnik:gh26375, r=alexcrichton
Fixes #26375
2015-07-07 09:49:55 -04:00
Steve Klabnik
c69663caf6 Rollup merge of #26742 - GuillaumeGomez:patch-2, r=arielb1
Part of #24407.
r? @Manishearth
2015-07-07 09:49:55 -04:00
Steve Klabnik
4b19be3631 Not literally all of concurrency is a library
Fixes #26344
2015-07-07 09:29:04 -04:00
Steve Klabnik
73df19a206 There are four uses of unsafe, actually
I am not mentioning #[unsafe_drop_flag] because it should go away
eventually, and also because it's just an attribute, it's not
really a use of the `unsafe` keyword.

Fixes #26345
2015-07-07 09:26:23 -04:00
Steve Klabnik
f29b565e2d Describe lifetime syntax for impl
Fixes #26375
2015-07-07 09:19:26 -04:00
bors
ed14593d98 Auto merge of #26699 - eddyb:unstable-prelude_import, r=huonw
Closes #26690.
2015-07-07 07:34:56 +00:00
bors
26f0cd5de7 Auto merge of #26844 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #26599, #26761, #26807, #26809, #26825, #26827, #26828, #26832, #26834, #26835
- Failed merges: #26796
2015-07-07 02:26:31 +00:00
bors
6d71ce5364 Auto merge of #26599 - richo:richo-stage-info, r=brson
This will add information about the stage that a rustc was built with to the verbose version info

I have symlinks into $(HOST)/stage{0,1,2} into the rust version switcher thing I use, and occasionally need to know which stage a given rustc is.
2015-07-06 22:55:07 +00:00
Steve Klabnik
04a85c538a Rollup merge of #26835 - tshepang:copy-or-not, r=steveklabnik 2015-07-06 18:06:31 -04:00