4475 Commits

Author SHA1 Message Date
bors
61416626ac auto merge of #11571 : derekchiang/rust/fix-task-docs, r=alexcrichton
There might be a reason, but I failed to see why these comments couldn't be proper rust docs.
2014-01-16 11:26:40 -08:00
Niko Matsakis
7ff6b094fb Remove typo 2014-01-16 05:56:56 -05:00
bors
6361c1dee5 auto merge of #11579 : kballard/rust/windows-path-join, r=erickt
WindowsPath::new("C:").join("a") produces r"C:". This is incorrect.
It should produce "C:a".
2014-01-16 00:51:44 -08:00
Derek Chiang
0e94ae4d8a Fix some docs in std::rt::task 2014-01-16 14:24:04 +08:00
bors
6708558c34 auto merge of #11548 : bjz/rust/bitwise, r=alexcrichton
One less trait in `std::num` and three less exported in the prelude.

cc. #10387
2014-01-15 20:36:48 -08:00
bors
a5ed0c58cb auto merge of #11565 : mozilla/rust/snapshot, r=huonw 2014-01-15 17:46:42 -08:00
Brendan Zabarauskas
1dd6906db2 Merge Bitwise and BitCount traits and remove from prelude, along with Bounded
One less trait in std::num, and three less exported in the prelude.
2014-01-16 11:51:33 +11:00
Niko Matsakis
6badef49fe Remove FIXMEs and add license 2014-01-15 19:44:38 -05:00
bors
36971217aa auto merge of #11568 : FlaPer87/rust/even, r=alexcrichton
This implementation should be a bit more optimal than calling `self.is_multiple_of(&2)`
2014-01-15 16:02:01 -08:00
Niko Matsakis
419ac4a1b8 Issue #3511 - Rationalize temporary lifetimes.
Major changes:

- Define temporary scopes in a syntax-based way that basically defaults
  to the innermost statement or conditional block, except for in
  a `let` initializer, where we default to the innermost block. Rules
  are documented in the code, but not in the manual (yet).
  See new test run-pass/cleanup-value-scopes.rs for examples.
- Refactors Datum to better define cleanup roles.
- Refactor cleanup scopes to not be tied to basic blocks, permitting
  us to have a very large number of scopes (one per AST node).
- Introduce nascent documentation in trans/doc.rs covering datums and
  cleanup in a more comprehensive way.
2014-01-15 18:34:38 -05:00
bors
149fc76698 auto merge of #11550 : alexcrichton/rust/noinline, r=thestinger
The failure functions are generic, meaning they're candidates for getting
inlined across crates. This has been happening, leading to monstrosities like
that found in #11549. I have verified that the codegen is *much* better now that
we're not inlining the failure path (the slow path).
2014-01-15 13:51:50 -08:00
Kevin Ballard
c57920b37b path: Fix joining Windows path when the receiver is "C:"
WindowsPath::new("C:").join("a") produces r"C:\a". This is incorrect.
It should produce "C:a".
2014-01-15 12:53:56 -08:00
bors
7ce3386511 auto merge of #11112 : alexcrichton/rust/issue-11087, r=brson
This should allow callers to know whether the channel was empty or disconnected
without having to block.

Closes #11087
2014-01-15 12:37:00 -08:00
Alex Crichton
adb895a34f Allow more "error" values in try_recv()
This should allow callers to know whether the channel was empty or disconnected
without having to block.

Closes #11087
2014-01-15 11:21:56 -08:00
bors
f60d937dd9 auto merge of #11543 : thestinger/rust/gc, r=cmr
This type isn't yet very useful since it only pretends cycles won't be
a problem. Anyone using it should be made aware that they're going to
leak.
2014-01-15 11:21:45 -08:00
Flavio Percoco
515978d1bd Use the least significant beat to determine if int/uint is even 2014-01-15 19:11:00 +01:00
bors
7bebdbd968 auto merge of #11561 : eddyb/rust/moar-inlines, r=pcwalton 2014-01-15 06:26:38 -08:00
Daniel Micay
29840addd4 remove the concept of managed-unique from libstd
Closes #11545
2014-01-15 08:22:59 -05:00
Daniel Micay
197fe67e11 register snapshots 2014-01-15 08:22:56 -05:00
bors
180ac0cc07 auto merge of #11556 : am0d/rust/docs, r=huonw 2014-01-15 05:01:47 -08:00
Eduard Burtescu
7ca3bea5bf libstd: Added more #[inline] annotations and replaced uses of libc::abort with the intrinsic. 2014-01-15 11:45:12 +02:00
bors
29070c3bee auto merge of #11535 : thestinger/rust/header, r=alexcrichton
Unique pointers and vectors currently contain a reference counting
header when containing a managed pointer.

This `{ ref_count, type_desc, prev, next }` header is not necessary and
not a sensible foundation for tracing. It adds needless complexity to
library code and is responsible for breakage in places where the branch
 has been left out.

The `borrow_offset` field can now be removed from `TyDesc` along with
the associated handling in the compiler.

Closes #9510
Closes #11533
2014-01-14 23:01:51 -08:00
Alex Crichton
86c60b68f9 Flag failure functions as inline(never)
The failure functions are generic, meaning they're candidates for getting
inlined across crates. This has been happening, leading to monstrosities like
that found in #11549. I have verified that the codegen is *much* better now that
we're not inlining the failure path (the slow path).
2014-01-14 22:52:03 -08:00
a_m0d
e9c30ebaaf Mark LineIterator as public so its docs get generated. 2014-01-14 22:13:54 -05:00
Daniel Micay
77758f0b5e add implementation of Repr for ~[T] 2014-01-14 22:01:44 -05:00
Daniel Micay
6809b172e0 remove borrow_offset as ~ is now free of headers 2014-01-14 22:01:44 -05:00
Daniel Micay
0e885e42b1 remove reference counting headers from ~
Unique pointers and vectors currently contain a reference counting
header when containing a managed pointer.

This `{ ref_count, type_desc, prev, next }` header is not necessary and
not a sensible foundation for tracing. It adds needless complexity to
library code and is responsible for breakage in places where the branch
has been left out.

The `borrow_offset` field can now be removed from `TyDesc` along with
the associated handling in the compiler.

Closes #9510
Closes #11533
2014-01-14 22:01:40 -05:00
Huon Wilson
e1ebdb8790 std::trie: optimise insert slightly.
This reduces the number of moves/memcpy's we do, which makes insert
faster, especially in cases of keys with long equal prefixes (the
_low_bits tests):

Before:

    bench_insert_large                ... bench:    553966 ns/iter (+/- 64050)
    bench_insert_large_low_bits       ... bench:   1048151 ns/iter (+/- 92484)
    bench_insert_small                ... bench:    168840 ns/iter (+/- 22410)
    bench_insert_small_low_bits       ... bench:    185069 ns/iter (+/- 38332)

After:

    bench_insert_large                ... bench:    422132 ns/iter (+/- 35112)
    bench_insert_large_low_bits       ... bench:    339083 ns/iter (+/- 34421)
    bench_insert_small                ... bench:    134539 ns/iter (+/- 15254)
    bench_insert_small_low_bits       ... bench:     88775 ns/iter (+/- 5746)
2014-01-15 12:03:21 +11:00
Huon Wilson
6b5e63ff2d std::trie: add benchmarks for insert. 2014-01-15 11:32:53 +11:00
Daniel Micay
f40d5b1050 add an experimental tag for Gc<T> due to cycles
This type isn't yet very useful since it only pretends cycles won't be
a problem. Anyone using it should be made aware that they're going to
leak.
2014-01-14 17:13:22 -05:00
bors
9075025c7b auto merge of #11485 : eddyb/rust/sweep-old-rust, r=nikomatsakis 2014-01-14 12:32:11 -08:00
Björn Steinbrink
5902263d0a Fix the representation of C void pointers in LLVM IR
Currently, we have c_void defined to be represented as an empty struct,
but LLVM expects C's void* to be represented as i8*. That means we
currently generate code in which LLVM doesn't recognize malloc() and
free() and can't apply certain optimization that would remove calls to
those functions.
2014-01-14 19:22:23 +01:00
Shamir Khodzha
4993c7c804 renamed empty() to is_empty() 2014-01-14 18:38:06 +04:00
Brian Anderson
062b0fd264 std: Ignore bind error tests on android. #11530 2014-01-13 19:45:37 -08:00
Brian Anderson
46905c04f5 Bump version to 0.10-pre 2014-01-12 17:45:22 -08:00
Brendan Zabarauskas
cd248e29b1 Clean up std::num::cmath and remove stale comments 2014-01-13 10:33:54 +11:00
Brendan Zabarauskas
1246f0b094 Remove RealExt
These functions are of little utility outside a small subset of use cases. If people need them for their own projects then they can use their own bindings for libm (which aren't hard to make).
2014-01-13 10:32:50 +11:00
Eduard Burtescu
509fc92a9b Removed remnants of @mut and ~mut from comments and the type system. 2014-01-12 02:26:04 +02:00
Shamir Khodzha
901dc2c15e added empty() to Peekable 2014-01-11 22:38:43 +04:00
bors
29e82c65b4 auto merge of #11472 : kud1ing/rust/iOS, r=alexcrichton
This fixes #11336

I guess the type sizes are correct for both OS X and iOS, but i am not certain.
In any case, i'd rather have any iOS build at all, so that we have something to improve upon.
2014-01-11 08:46:20 -08:00
Eduard Burtescu
7a305f9e83 Removed free_glue from tydesc (the code is still generated, but inlined in drop_glue). 2014-01-11 16:40:23 +02:00
kud1ing
6bbd2ed98e define arch for iOS/ARM 2014-01-11 10:21:24 +01:00
bors
a34727f276 auto merge of #11416 : bjz/rust/remove-print-fns, r=alexcrichton
The `print!` and `println!` macros are now the preferred method of printing, and so there is no reason to export the `stdio` functions in the prelude. The functions have also been replaced by their macro counterparts in the tutorial and other documentation so that newcomers don't get confused about what they should be using.
2014-01-10 18:21:21 -08:00
Brendan Zabarauskas
4fc0452ace Remove re-exports of std::io::stdio::{print, println} in the prelude.
The `print!` and `println!` macros are now the preferred method of printing, and so there is no reason to export the `stdio` functions in the prelude. The functions have also been replaced by their macro counterparts in the tutorial and other documentation so that newcomers don't get confused about what they should be using.
2014-01-11 10:46:00 +11:00
Carl-Anton Ingmarsson
0b3311c260 std::io: Optimize u64_from_be_bytes()
Instead of reading a byte at a time in a loop we copy the relevant bytes into
a temporary vector of size eight. We can then read the value from the temporary
vector using a single u64 read. LLVM seems to be able to optimize this
almost scarily good.
2014-01-10 20:14:05 +01:00
Carl-Anton Ingmarsson
326e63187f std::io: Add tests and benchmarks for u64_from_be_bytes() 2014-01-10 13:37:50 +01:00
bors
72a52522ca auto merge of #11437 : sfackler/rust/mem-eof, r=alexcrichton
It's easy to figure out and useful as a sanity check sometimes.
2014-01-10 01:56:18 -08:00
Steven Fackler
52e06c663c Add eof to MemReader and BufReader
It's easy to figure out and useful as a sanity check sometimes.
2014-01-09 21:03:18 -08:00
bors
f78293c274 auto merge of #11360 : huonw/rust/stack_bounds, r=alexcrichton
We just approximate with a 2MB stack for native::start.
2014-01-09 20:21:17 -08:00
bors
28ddc6537f auto merge of #10926 : thestinger/rust/rc, r=cmr 2014-01-09 19:01:30 -08:00