Commit Graph

39585 Commits

Author SHA1 Message Date
Björn Steinbrink
31ad998bfd Properly propagate block changes while translating drop glue 2015-03-02 12:13:28 +01:00
Niko Matsakis
00fcf79448 Remove the synthetic "region bound" from closures and instead update how
type-outlives works for closure types so that it ensures that all upvars
outlive the region in question. This gives the same guarantees but
without introducing artificial regions (and gives better error messages
to boot).
2015-03-02 05:45:41 -05:00
Lai Jiangshan
cd65156514 iter: use Option::map() in struct Iterater::map()
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
2015-03-02 17:32:16 +08:00
bors
c5142056f7 Auto merge of #22797 - alexcrichton:io-stdio, r=aturon
This is an implementation of RFC 899 and adds stdio functionality to the new
`std::io` module. Details of the API can be found on the RFC, but from a high
level:

* `io::{stdin, stdout, stderr}` constructors are now available. There are also
  `*_raw` variants for unbuffered and unlocked access.
* All handles are globally shared (excluding raw variants).
* The stderr handle is no longer buffered.
* All handles can be explicitly locked (excluding the raw variants).

The `print!` and `println!` machinery has not yet been hooked up to these
streams just yet. The `std::fmt::output` module has also not yet been
implemented as part of this commit.
2015-03-02 07:10:14 +00:00
Huon Wilson
b0e7c58bf0 Add missing stability attributes on struct fields.
Unstable is the conservative choice.

cc #22950.
2015-03-02 18:04:11 +11:00
Huon Wilson
25ad3ba3cb Manual Clone for Windows/Chunks.
`#[derive(Clone)]` unnecessarily requires the element type to also be
`Clone`.
2015-03-02 17:54:18 +11:00
Eunji Jeong
a7fe94fc0c Fix broken aarch64 build 2015-03-02 14:35:58 +09:00
Alex Crichton
93613a543f std: Stabilize the process module
This commits blanket marks the API of the `std::process` module as `#[stable]`.
The module's API is very similar to the old `std::old_io::process` API and has
generally had quite a bit of time to bake both before and after the new module
landed.

The one modification made to the API is that `Stdio::capture` is now named
`stdio::piped`.

[breaking-change]
2015-03-01 20:41:37 -08:00
bors
4b3b02f8f4 Auto merge of #22940 - Manishearth:rollup, r=Manishearth 2015-03-02 00:37:24 +00:00
Manish Goregaokar
69881574f7 Rollup merge of #22944 - Manishearth:patch-1, r=sfackler
Been breaking tests lately. Somehow nondeterministic?
2015-03-02 06:04:39 +05:30
Manish Goregaokar
e955f4323b Fix unknown attribute in test 2015-03-02 05:31:34 +05:30
Manish Goregaokar
c84e3a1f19 Rollup merge of #22941 - sfackler:re-disable, r=sfackler
Seems to be blocking forever
2015-03-02 04:43:32 +05:30
Steven Fackler
1f1c5d54bf Ignore issue #16671 test on android (again)
Seems to be blocking forever
2015-03-01 15:11:09 -08:00
GuillaumeGomez
6d74279234 Replace int/uint by isize/usize 2015-03-01 23:26:23 +01:00
Manish Goregaokar
b79a788f8f Rollup merge of #22935 - dotdash:method_attr, r=eddyb
... objects

For method calls through trait objects, we currently generate the llvm
function argument attributes using the non-opaque method signature that
still has the trait object fat pointer for the self pointer. This leads
to attributes that are plain wrong, e.g. noalias. As we don't know
anything about the concrete type of the underlying object, we must
replace the self argument with an opaque i8 pointer before applying the
attributes.
2015-03-02 03:54:33 +05:30
Manish Goregaokar
7398071a8a Rollup merge of #22931 - semarie:dragonfly-ino_t, r=alexcrichton
this is the same problem as openbsd (#22792).
without the patch, liblibc don't build.

@mneumann please comment.
I have encountered this problem while building some rust libs with `target=x86_64-unknown-dragonfly` (while working on #22794)
2015-03-02 03:54:27 +05:30
Manish Goregaokar
d9b352fdc1 Rollup merge of #22923 - dotdash:trans_arg, r=eddyb
The logic for the argument translation was duplicated here.
2015-03-02 03:54:14 +05:30
Manish Goregaokar
644b931437 Rollup merge of #22922 - dotdash:closure_env_attr, r=eddyb 2015-03-02 03:54:07 +05:30
Manish Goregaokar
fb28214dcc Rollup merge of #22893 - Ms2ger:lints, r=huonw 2015-03-02 03:54:00 +05:30
Manish Goregaokar
ef8b20a564 Rollup merge of #22821 - ipetkov:lint-method-rename, r=eddyb
Traits can have associated types and not just methods. This
clarification reflects the the type of the input the method accepts.

[breaking-change]
2015-03-02 03:53:54 +05:30
Manish Goregaokar
85bdb31306 Rollup merge of #22777 - pnkfelix:issue-22443, r=nikomatsakis
Check for unbounded recursion during dropck.

Such recursion can be introduced by the erroneous use of non-regular types (aka types employing polymorphic recursion), which Rust does not support.

Fix #22443
2015-03-02 03:53:48 +05:30
Manish Goregaokar
fb19cd7fb7 Rollup merge of #22504 - GuillaumeGomez:audit-integer-libcore, r=Manishearth
Part of #22240.
2015-03-02 03:53:41 +05:30
Brian Leibig
481b21cf19 Bison grammar: parse higher ranked constraints in where clauses 2015-03-01 13:59:35 -08:00
Brian Leibig
f1fe1b5d4f Bison grammar: allow ExprQualifiedPath to have optional "as TRAIT_REF" 2015-03-01 13:59:35 -08:00
Brian Leibig
e93b2abf37 Bison grammar: support parsing default trait impls 2015-03-01 13:59:34 -08:00
Björn Steinbrink
8b6b3c159c Emit proper attributes for the self pointer in method call through trait objects
For method calls through trait objects, we currently generate the llvm
function argument attributes using the non-opaque method signature that
still has the trait object fat pointer for the self pointer. This leads
to attributes that are plain wrong, e.g. noalias. As we don't know
anything about the concrete type of the underlying object, we must
replace the self argument with an opaque i8 pointer before applying the
attributes.
2015-03-01 19:45:35 +01:00
Sébastien Marie
a71da374df unbreak dragonfly build after nacl integration
this is the same problem as openbsd (#22792).

without the patch, liblibc don't build.
2015-03-01 16:08:24 +01:00
bors
1576142495 Auto merge of #22880 - alexcrichton:deprecate-io-extensions, r=huonw
The `u64_from_be_bytes` and `u64_to_be_bytes` functions are being deprecated
with no replacement for now.

[breaking-change]
2015-03-01 14:22:58 +00:00
Leonids Maslovs
c04c9632f6 Addresses rust-lang/rust#22646
Removes deprecated `{:08d}` format from the module documentation.
`{:08}` should be used instead now.
2015-03-01 14:11:12 +02:00
Guillaume Gomez
df126589b9 Remove int/uint from libstd/lib.rs 2015-03-01 13:03:44 +01:00
Björn Steinbrink
708c3858e3 Use trans_arg_datum in trans_args_under_call_abi
The logic for the argument translation was duplicated here.
2015-03-01 12:54:30 +01:00
Björn Steinbrink
549be5f867 Emit proper function argument attributes for closure environments 2015-03-01 12:30:11 +01:00
Felix S. Klock II
180ef47af2 Add regression tests for issue 22443.
Fix #22443.
2015-03-01 11:16:11 +01:00
Felix S. Klock II
5ef6182102 Add check for unbounded due to non-regular types in dropck.
Count recursion across phantom data separately from all recursion,
and treat `Box<T>` just as if it were carrying `PhantomData<T>`.

(Regression tests are in followup commit.)

The practical effect of this is just to increment the `xref_depth`
counter, the same way that `Vec` and other types carrying
`PhantomData` do.
2015-03-01 11:15:32 +01:00
bors
0eb0ba38d0 Auto merge of #22087 - GuillaumeGomez:int-pow, r=alexcrichton
Fixes issue #22016
2015-03-01 08:59:29 +00:00
Tshepang Lekhonkhobe
55ce45e7b5 remove some compiler warnings 2015-03-01 09:35:57 +02:00
Alex Crichton
94d71f8836 std: Implement stdio for std::io
This is an implementation of RFC 899 and adds stdio functionality to the new
`std::io` module. Details of the API can be found on the RFC, but from a high
level:

* `io::{stdin, stdout, stderr}` constructors are now available. There are also
  `*_raw` variants for unbuffered and unlocked access.
* All handles are globally shared (excluding raw variants).
* The stderr handle is no longer buffered.
* All handles can be explicitly locked (excluding the raw variants).

The `print!` and `println!` machinery has not yet been hooked up to these
streams just yet. The `std::fmt::output` module has also not yet been
implemented as part of this commit.
2015-02-28 23:13:02 -08:00
bors
0905c8a5ec Auto merge of #22909 - Manishearth:rollup, r=Manishearth
r? @Manishearth
2015-03-01 06:32:54 +00:00
Manish Goregaokar
60f7732ccd Rollup merge of #22910 - dotdash:time_llvm_passes, r=cmr
The timing code break when using multiple codegen units, but that
shouldn't stop us from using it with a single codegen unit.
2015-03-01 09:50:30 +05:30
Manish Goregaokar
4e34daf2c4 Rollup merge of #22908 - mdinger:fix_link, r=Gankro
The markdown listing the link in [StrExt::width](http://doc.rust-lang.org/std/str/trait.StrExt.html#tymethod.width) isn't being parsed properly. I'm expecting it's because the `[ ]` is across 2 lines so this changes that. This is untested though.
2015-03-01 09:50:18 +05:30
Manish Goregaokar
4495bdb52c Add import of usize (fixup #22901) 2015-03-01 09:49:50 +05:30
Manish Goregaokar
d9fb9765a1 Rollup merge of #22907 - dotdash:static_assert_bool, r=eddyb
static_assert is documented as working on static with type `bool`, but
we currently accept it on any const static and crash when the const has
an non-integral type.

This is a breaking-change for anyone who used static_assert on types
likes i32, which happened to work but seems like an unintended
consequence of the missing error checking.

[breaking-change]

Fixes #22056
2015-03-01 09:49:48 +05:30
Manish Goregaokar
9dc9fcc767 Rollup merge of #22904 - dotdash:drop_old_clang, r=alexcrichton
Fixes #20467
2015-03-01 09:49:47 +05:30
Manish Goregaokar
337a0a981e Rollup merge of #22903 - semarie:openbsd-stack, r=alexcrichton
some commits in OpenBSD OS have corrected a problem of stack position.
Now, we can adjust more accurately the page guard in rust.

@dhuseby I am not sure that bitrig have already integrated these changes (the `$OpenBSD$` header in sys/kern/kern_exec.c is too old). But when they do, you may want this patch too.
2015-03-01 09:49:46 +05:30
Manish Goregaokar
87391ed52a Rollup merge of #22901 - thepowersgang:patch-1, r=eddyb
A misplaced uint->u32 instead of usize in fmt::Pointer. Added a basic test.
2015-03-01 09:49:43 +05:30
Manish Goregaokar
3c1f61ce63 Rollup merge of #22898 - edwardw:one-less-unsafe-impl, r=huonw
These implementations were temporary workaround. Now #22828 has been
fixed, they can be removed.
2015-03-01 09:49:42 +05:30
Manish Goregaokar
4ac53cc6ce Rollup merge of #22896 - Ms2ger:InlineAttr, r=huonw 2015-03-01 09:49:39 +05:30
bors
341a9ca1e3 Auto merge of #22898 - edwardw:one-less-unsafe-impl, r=huonw
These implementations were temporary workaround. Now #22828 has been
fixed, they can be removed.
2015-03-01 04:06:03 +00:00
Ryan Prichard
c1c02d9b0b Cleanup in the fmt::num module
* Make num::UpperHex private.  I was unable to determine why this struct
   is public.  The num module itself is not public, and the UpperHex struct
   is not referenced anywhere in the core::fmt module.  (Only the UpperHex
   trait is reference.)  num::LowerHex is not public.

 * Remove the suffix parameters from the macros that generate integral
   display traits.

   The code to print the Debug::fmt suffixes was removed when Show was
   renamed to Debug.  It was an intentional change.  From RFC 0565:

    * Focus on the *runtime* aspects of a type; repeating information such
      as suffixes for integer literals is not generally useful since that
      data is readily available from the type definition.

 * Because Show was renamed to Debug, rename show! to debug!.
2015-02-28 19:30:06 -08:00
GuillaumeGomez
c74d49c804 Fix errors, remove unused files 2015-03-01 02:42:17 +01:00