Commit Graph

39317 Commits

Author SHA1 Message Date
Florian Zeitz
f35f973cb7 Use consts instead of statics where appropriate
This changes the type of some public constants/statics in libunicode.
Notably some `&'static &'static [(char, char)]` have changed
to `&'static [(char, char)]`. The regexp crate seems to be the
sole user of these, yet this is technically a [breaking-change]
2015-03-02 17:11:51 +01:00
bors
1cc8b6ec66 Auto merge of #22510 - GuillaumeGomez:audit-integer-libstd-thread, r=alexcrichton
Part of #22240.
2015-03-02 11:21:26 +00: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
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
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
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
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
GuillaumeGomez
c74d49c804 Fix errors, remove unused files 2015-03-01 02:42:17 +01:00
GuillaumeGomez
9e28caef31 Remove int/uint 2015-03-01 02:42:17 +01:00
bors
2b27dfd30a Auto merge of #22896 - Ms2ger:InlineAttr, r=huonw 2015-03-01 01:39:07 +00:00
Guillaume Gomez
1c4fb909ff Make Int::pow() take exp as u32 instead usize 2015-03-01 01:58:55 +01:00
Ivan Petkov
2fc6224411 Rename LintPass::check_trait_method to check_trait_item
Traits can have associated types and not just methods. This
clarification reflects the the type of the input the method accepts.

[breaking-change]
2015-02-28 13:56:37 -08:00
Björn Steinbrink
0b5ca7850b Re-enable -Z time-llvm-passes when using a single codegen unit
The timing code break when using multiple codegen units, but that
shouldn't stop us from using it with a single codegen unit.
2015-02-28 22:40:39 +01:00
mdinger
000e976819 Fix incorrectly parsed markdown link 2015-02-28 14:05:50 -05:00
bors
8902936552 Auto merge of #21521 - defuz:interval-with-path, r=pnkfelix
Fixing #21475. Right now this code can not be parsed:

```rust
use m::{START, END};

fn main() {
    match 42u32 {
        m::START...m::END => {}, // error: expected one of `::`, `=>`, or `|`, found `...`
        _  => {},
    }
}

mod m {
  pub const START: u32 = 4;
  pub const END:   u32 = 14;
}
```

I fixed the parser and added test for this case, but now there are still problems with mixing literals and paths in interval:

```rust
    match 42u32 {
        0u32...m::END => {},       // mismatched types in range [E0031]
        m::START...59u32 => {},    // mismatched types in range [E0031]
        _  => {},
    }
}
```

I'll try fix this problem and need review.
2015-02-28 18:36:00 +00:00
Björn Steinbrink
d11b48c85c Error out when using static_assert on a non-boolean value
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-02-28 19:28:49 +01:00
Björn Steinbrink
8b263f7566 Drop support for clang < 3.2
Fixes #20467
2015-02-28 17:53:12 +01:00
Sébastien Marie
28362d542d openbsd: adjust page guard address
some commits in OpenBSD base have corrected a problem of stack position.
Now, we can adjust more accurately the page guard in rust.
2015-02-28 17:26:42 +01:00
John Hodge
c22d026326 ifmt - Add a basic test for {:p} getting truncated 2015-02-28 22:51:29 +08:00