bors
793f740c0a
auto merge of #11575 : pcwalton/rust/parse-substrs, r=alexcrichton
...
This was used by the quasiquoter.
r? @alexcrichton
2014-01-15 21:51:42 -08:00
Div Shekhar
065f936bf1
doc: Boxes diagram shows enum value inside box.
2014-01-15 21:46:02 -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
bf2ab22cd0
auto merge of #11574 : neeee/rust/master, r=alexcrichton
...
Reverted according to https://github.com/mozilla/rust/issues/11458#issuecomment-32269477 . Fixes #11458 .
2014-01-15 19:06:45 -08:00
a_m0d
c6268384a6
Update docs index to use lists
...
Also include a missing link to the rustdoc manual
2014-01-15 20:54:34 -05:00
Vadim Chugunov
62fbd00bed
Only build LLVM tools Rust needs.
2014-01-15 17:47:48 -08:00
bors
a5ed0c58cb
auto merge of #11565 : mozilla/rust/snapshot, r=huonw
2014-01-15 17:46:42 -08:00
Niko Matsakis
84f33fb134
Cleanup trait callees
2014-01-15 20:31:20 -05: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
Niko Matsakis
e71571a3cd
Use as_slice() method on option
2014-01-15 19:35: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
Carl-Anton Ingmarsson
f4c9ed42aa
fixup! ebml::extra: Optimize reader::vuint_at()
2014-01-15 20:58:41 +01: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
Patrick Walton
ff6c0af15b
libsyntax: Remove the obsolete ability to parse from substrings.
...
This was used by the quasiquoter.
2014-01-15 10:59:48 -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
7cb2aa2429
auto merge of #11523 : alexcrichton/rust/stage3, r=brson
...
This should go back to the old behavior while preserving the snapshot ease.
2014-01-15 09:51:46 -08:00
lucy
3b32ea8c93
Revert "show options for -W help and -W". Fixes #11458 .
...
This reverts commit 1009c21ad7
.
2014-01-15 18:38:10 +01:00
Alex Crichton
7a37294acc
Add a configure to disable libstd version injection
...
We'll use this when building snapshots so we can upgrade freely, but all
compilers will inject a version by default.
2014-01-15 08:22:16 -08:00
bors
7232dbf768
auto merge of #11564 : am0d/rust/dox, r=huonw
...
Needs a line break here for readability.
2014-01-15 07:46:37 -08: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
a_m0d
8e5f068d69
Fix formatting in rust-guide document.
2014-01-15 07:20:04 -05:00
bors
b549b08ca3
auto merge of #11557 : brson/rust/anotherandroidfix, r=thestinger
2014-01-15 03:36:43 -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
bors
e063e96ec9
auto merge of #11547 : b1nd/rust/rust-doc, r=alexcrichton
...
closes #10535
2014-01-14 20:56:39 -08:00
Brian Anderson
6232290f73
extra: Ignore time tests on android correctly
2014-01-14 19:57:59 -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
bors
e6d9214ee1
auto merge of #11546 : huonw/rust/trie-insert, r=alexcrichton
...
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)
Notably: no unsafe code.
2014-01-14 18:56:36 -08:00
b1nd
431e2bb923
Removed redundant code, improve performance
...
closes #10535
2014-01-15 12:09:50 +11: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
bors
dd8b011319
auto merge of #11521 : dguenther/rust/hide_libdir_relative, r=alexcrichton
...
Renamed `LIBDIR_RELATIVE` to `CFG_LIBDIR_RELATIVE`. It's not a configurable variable, but it looks out of place without the `CFG_` prefix.
Fixes #11420
2014-01-14 15:11:30 -08: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
Derek Guenther
a599d897fc
Renamed LIBDIR_RELATIVE to CFG_LIBDIR_RELATIVE
2014-01-14 15:52:57 -06:00
bors
faa0b5aa61
auto merge of #11538 : eddyb/rust/llvm-attributes, r=alexcrichton
2014-01-14 13:51:34 -08:00
bors
9075025c7b
auto merge of #11485 : eddyb/rust/sweep-old-rust, r=nikomatsakis
2014-01-14 12:32:11 -08:00
bors
b77a7e76a1
auto merge of #11539 : dotdash/rust/void_type_fixup, r=alexcrichton
...
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 11:16:38 -08:00