Commit Graph

49626 Commits

Author SHA1 Message Date
Ulrik Sverdrup
aeb3aba951 collections: Use slices parts in PartialEq for VecDeque
This improves == for VecDeque by using the slice representation.

This will also improve further if codegen for slice comparison improves.

Benchmark run of 1000 u64 elements, comparing for equality (all equal).
Cpu time to compare the vecdeques is reduced to less than 50% of what it
was before.

```
test test_eq_u64       ... bench:  1,885 ns/iter (+/- 163) = 4244 MB/s
test test_eq_new_u64   ... bench:    802 ns/iter (+/- 100) = 9975 MB/s
```
2016-01-27 00:35:03 +01:00
Ulrik Sverdrup
d3174ce751 collections: Hash VecDeque in its slice parts
Use .as_slices() for a more efficient code path in VecDeque's Hash impl.

This still hashes the elements in the same order.

Before/after timing of VecDeque hashing 1024 elements of u8 and
u64 shows that the vecdeque now can match the Vec
(test_hashing_vec_of_u64 is the Vec run).

before

test test_hashing_u64        ... bench:  14,031 ns/iter (+/- 236) = 583 MB/s
test test_hashing_u8         ... bench:   7,887 ns/iter (+/- 65) = 129 MB/s
test test_hashing_vec_of_u64 ... bench:   6,578 ns/iter (+/- 76) = 1245 MB/s

after

running 5 tests
test test_hashing_u64        ... bench:   6,495 ns/iter (+/- 52) = 1261 MB/s
test test_hashing_u8         ... bench:     851 ns/iter (+/- 16) = 1203 MB/s
test test_hashing_vec_of_u64 ... bench:   6,499 ns/iter (+/- 59) = 1260 MB/s
2016-01-27 00:04:03 +01:00
bors
46dcffd05b Auto merge of #31052 - bluss:split-at-mut-str, r=alexcrichton
Use raw pointers to avoid aliasing in str::split_at_mut

Introduce private function  from_raw_parts_mut for str to factor out the logic.

We want to use raw pointers here instead of duplicating a &mut str, to
be on safer ground w.r.t rust aliasing rules.

This has already been fixed for slices in PR #27358, issue #27357
2016-01-21 20:51:34 +00:00
bors
9ae76b363c Auto merge of #31028 - erickt:ast-json, r=michaelwoerister
The protocol for `serialize::{En,De}code` doesn't allow for two integers to be serialized next to each other.

Closes #31025.

cc @michaelwoerister
2016-01-21 19:01:24 +00:00
bors
c6ba7fee97 Auto merge of #31043 - shahn:arc_weak, r=alexcrichton
This was accidentally introduced in
7e2ffc7090,
b44ee371b8 and
36ba96ea3c.
2016-01-21 17:11:13 +00:00
bors
340e7eb2a7 Auto merge of #31024 - oli-obk:move_checks_out_of_librustc, r=arielb1
-    check_const
-    check_static_recursion
-    check_loop
-    check_rvalues

r? @arielb1
2016-01-21 15:21:09 +00:00
Ulrik Sverdrup
ba9a3bc453 core: Use raw pointers to avoid aliasing in str::split_at_mut
Introduce private function from_raw_parts_mut for str to factor out the logic.

We want to use raw pointers here instead of duplicating a &mut str, to
be on safer ground w.r.t rust aliasing rules.
2016-01-21 15:25:49 +01:00
bors
038de0f95e Auto merge of #31057 - bluss:memrchr-fallback, r=alexcrichton
Use the fallback impl for memrchr on non-linux

The memrchr code was never used(!). This brings the memrchr improvements to
non-linux platforms (LineWriter / buffered stdout benefits).

Previous PR #30381
2016-01-21 13:31:43 +00:00
Oliver Schneider
c124deca7b move more checks out of librustc 2016-01-21 10:52:37 +01:00
bors
34b4e66736 Auto merge of #29520 - retep998:staticlib-naming-fiasco, r=alexcrichton
I'm not sure if this was the best way to go about it, but it seems to work.

Fixes https://github.com/rust-lang/rust/issues/29508

r? @alexcrichton
2016-01-21 09:02:48 +00:00
bors
d5ec3ab685 Auto merge of #31042 - shahn:weak_annotations, r=alexcrichton
This was accidentally introduced in
7e2ffc7090.
2016-01-21 07:13:16 +00:00
bors
670f5b06e4 Auto merge of #31041 - brson:version, r=alexcrichton 2016-01-21 05:23:27 +00:00
bors
4349cdae9c Auto merge of #31037 - nrc:cached-ids, r=nikomatsakis
Blocks #30884

r? @nikomatsakis

cc @durka
2016-01-21 03:33:30 +00:00
bors
51108b64ca Auto merge of #31010 - petrochenkov:def, r=arielb1
All structs and their constructors are defined as `DefStruct`.
`DefTy` is splitted into `DefEnum` and `DefTyAlias`.
Ad hoc flag `bool is_structure` is removed from `DefVariant`, it was required in one place in resolve and could be obtained by other means.
Flag `bool is_ctor` is removed from `DefFn`, it wasn't really used for constructors outside of metadata decoding.

Observable effects:
More specific error messages are selected in some cases.
Two name resolution bugs fixed (https://github.com/rust-lang/rust/issues/30992 and FIXME in compile-fail/empty-struct-braces-expr.rs).

Fixes https://github.com/rust-lang/rust/issues/30992
Closes https://github.com/rust-lang/rust/issues/30361
2016-01-21 01:43:18 +00:00
bors
7dce32e65d Auto merge of #30982 - KiChjang:zst-collections-tests, r=bluss
Fixes #28518.
2016-01-20 23:53:24 +00:00
bors
4bb9d453cf Auto merge of #30945 - nagisa:mir-optional-block-dest, r=nikomatsakis
As an attempt to make loop body destination be optional, author implemented a pretty self contained
change and deemed it to be (much) uglier than the alternative of just keeping the unit temporary.
Having the temporary created lazily also has a nice property of not figuring in the MIR of
functions which do not use loops of any sort.

r? @nikomatsakis
2016-01-20 22:03:33 +00:00
bors
0b77e50b41 Auto merge of #30985 - alexcrichton:downgrade-jemaloc, r=brson
We've been seeing a lot of timeouts in tests on the bots and investigation ended
pointing to jemalloc/jemalloc#315 as the culprit. Unfortunately it looks like
that doesn't seem to have a fix on the way soon, so let's temporarily downgrade
back to the previous version of jemalloc we were using (where #30434 was the
most recent upgrade)
2016-01-20 20:14:18 +00:00
Vadim Petrochenkov
2084c2c33a Rename Def's variants and don't reexport them 2016-01-20 22:31:10 +03:00
Vadim Petrochenkov
d6c9aa8901 Fix associated const resolution on structs 2016-01-20 21:50:57 +03:00
Vadim Petrochenkov
ceaaa1bc33 Refactor definitions of ADTs in rustc::middle::def 2016-01-20 21:50:57 +03:00
Erick Tryzelaar
1dc7eb8853 syntax: Fix encoding and decoding spans
The protocol for `serialize::{En,De}code` doesn't allow for two
integers to be serialized next to each other. This switches the
protocol to serializing `Span`s as a struct. rbml structs don't
have any overhead, so the metadata shouldn't increase in size,
but it allows the json format to be properly generated, albeit
slightly more heavy than when it was just serializing a span as
a u64.

Closes #31025.

s
2016-01-20 10:04:31 -08:00
Alex Crichton
884de56f71 Downgrade bundled jemalloc version
We've been seeing a lot of timeouts in tests on the bots and investigation ended
pointing to jemalloc/jemalloc#315 as the culprit. Unfortunately it looks like
that doesn't seem to have a fix on the way soon, so let's temporarily downgrade
back to the previous version of jemalloc we were using (where #30434 was the
most recent upgrade)
2016-01-20 09:38:16 -08:00
bors
292af75f8d Auto merge of #30872 - pitdicker:expand_open_options, r=alexcrichton
Tracking issue: #30014

This implements the RFC and makes a few other changes.
I have added a few extra tests, and made the Windows and
Unix code as similar as possible.

Part of the RFC mentions the unstable OpenOptionsExt trait
on Windows (see #27720). I have added a few extra methods
to future-proof it for CreateFile2.
2016-01-20 17:19:21 +00:00
Ulrik Sverdrup
078a6231a7 std: Use the fallback impl for memrchr on non-linux
This code was never used(!). This brings the memrchr improvements to
non-linux platforms (LineWriter / buffered stdout benefits).
2016-01-20 18:00:34 +01:00
Keith Yeung
aca4e6a89a Add tests for collections to work with ZSTs 2016-01-20 10:52:00 -05:00
Simonas Kazlauskas
8877cca190 Add tests for various diverging & converging loops
Mostly testing borrowck and typeck behaviour in presence of `loop` expression
2016-01-20 13:28:25 +02:00
bors
c4c9628de7 Auto merge of #31038 - gereeter:btree-panic, r=Gankro
…ving elements into it.

Fixes #31029.
2016-01-20 08:18:16 +00:00
Paul Dicker
ae30294771 Remove raw pointer from OpenOptions struct
Otherwise it is not Send and Sync anymore
2016-01-20 08:41:20 +01:00
Sebastian Hahn
327c902342 Fix incorrect stability annotations for arc::Weak
This was accidentally introduced in
7e2ffc7090,
b44ee371b8 and
36ba96ea3c.
2016-01-20 06:59:00 +01:00
Sebastian Hahn
34f17d98ea Fix incorrect stability annotations for Weak
This was accidentally introduced in
7e2ffc7090.
2016-01-20 05:56:28 +01:00
Brian Anderson
e2b5ada771 Bump version to 1.8 2016-01-20 03:39:19 +00:00
bors
7561466948 Auto merge of #30894 - antrik:debug-mpsc, r=brson
Minimal fix for https://github.com/rust-lang/rust/issues/30563

This covers all the public structs I think; except for Iter and
IntoIter, which I don't know if or how they should be handled.
2016-01-20 03:28:54 +00:00
Jonathan S
707afa2ed5 In BTreeMap's merge function, adjust the length of the node before moving elements into it. 2016-01-19 21:07:36 -06:00
Nick Cameron
7ffd408d86 Fix a bug with caching ids in the HIR lowering with nested lowered nodes
Blocks #30884
2016-01-20 15:58:59 +13:00
bors
2bd875d3d4 Auto merge of #30820 - oli-obk:docs/wrapping_ops, r=alexcrichton
r? @steveklabnik
2016-01-19 23:08:25 +00:00
Simonas Kazlauskas
f9f6e3ad10 [MIR] Reintroduce the unit temporary
An attempt to make loop body destination be optional, author implemented a pretty self contained
change and deemed it to be (much) uglier than the alternative of just keeping the unit temporary.
Having the temporary created lazily also has a nice property of not figuring in the MIR of
functions which do not use loops of any sort.
2016-01-19 22:53:34 +02:00
bors
f8c2d57f4c Auto merge of #30696 - steveklabnik:gh30655, r=brson
Fixes #30655
2016-01-19 17:34:20 +00:00
bors
84157dbd4c Auto merge of #31018 - gutworth:doc-loc, r=alexcrichton 2016-01-19 15:40:22 +00:00
bors
41b74b11b4 Auto merge of #30845 - nagisa:mir-extern-calls, r=dotdash
Supersedes https://github.com/rust-lang/rust/pull/30517
Fixes https://github.com/rust-lang/rust/issues/29575

cc @luqmana
r? @nikomatsakis
2016-01-19 13:46:18 +00:00
Simonas Kazlauskas
99e8b4d755 [MIR] Implement extern call support 2016-01-19 15:14:04 +02:00
bors
f6dd66e568 Auto merge of #31014 - nrc:fmt-term, r=sfackler 2016-01-19 11:51:58 +00:00
Oliver Schneider
84a5790f3a fix the docs and simplify the implementation of unsigned wrapping ops 2016-01-19 10:47:27 +01:00
bors
ced5a85940 Auto merge of #31015 - nrc:fmt-test, r=sfackler 2016-01-19 07:59:55 +00:00
Benjamin Peterson
0a7faeeae9 fix path to region inference documentation 2016-01-18 20:24:13 -08:00
Nick Cameron
e305ee6db9 manual fixups 2016-01-19 15:02:56 +13:00
Nick Cameron
2acfa838a0 rustfmt libtest 2016-01-19 14:55:13 +13:00
Nick Cameron
f368f43a7b rustfmt libterm 2016-01-19 14:51:22 +13:00
bors
c66e88289e Auto merge of #31013 - nrc:fmt-rbml, r=sfackler 2016-01-19 01:48:27 +00:00
Nick Cameron
8863d37f24 manual fixups 2016-01-19 14:39:23 +13:00
Nick Cameron
7c2bfd12a0 rustfmt librbml 2016-01-19 14:30:48 +13:00