Commit Graph

36197 Commits

Author SHA1 Message Date
bors
9c3e6082e7 auto merge of #20154 : P1start/rust/qualified-assoc-type-generics, r=nikomatsakis
This modifies `Parser::eat_lt` to always split up `<<`s, instead of doing so only when a lifetime name followed or the `force` parameter (now removed) was `true`. This is because `Foo<<TYPE` is now a valid start to a type, whereas previously only `Foo<<LIFETIME` was valid.

This is a [breaking-change]. Change code that looks like this:

```rust
let x = foo as bar << 13;
```

to use parentheses, like this:

```rust
let x = (foo as bar) << 13;
```

Closes #17362.
2015-01-03 03:25:21 +00:00
bors
a6b109723a auto merge of #19835 : pythonesque/rust/add-unordered-intrinsic, r=thestinger
This corresponds to the JMM memory model's non-volatile reads and writes to shared variables.  It provides fairly weak guarantees, but prevents UB (specifically, you will never see a value that was not written _at some point_ to the provided location).  It is not part of the C++ memory model and is only legal to provide to LLVM for loads and stores (not fences, atomicrmw, etc.).

Valid uses of this ordering are things like racy counters where you don't care about the operation actually being atomic, just want to avoid UB.  It cannot be used for synchronization without additional memory barriers since unordered loads and stores may be reordered freely by the optimizer (this is the main way it differs from relaxed).

Because it is new to Rust and it provides so few guarantees, for now only the intrinsic is provided--this patch doesn't add it to any of the higher-level atomic wrappers.
2015-01-03 01:10:40 +00:00
bors
c89417130f auto merge of #20436 : alexcrichton/rust/rollup, r=alexcrichton 2015-01-02 21:56:13 +00:00
Alex Crichton
340f3fd7a9 rollup merge of #20410: japaric/assoc-types
Conflicts:
	src/liballoc/lib.rs
	src/libcollections/lib.rs
	src/libcollections/slice.rs
	src/libcore/ops.rs
	src/libcore/prelude.rs
	src/libcore/ptr.rs
	src/librustc/middle/traits/project.rs
	src/libstd/c_str.rs
	src/libstd/io/mem.rs
	src/libstd/io/mod.rs
	src/libstd/lib.rs
	src/libstd/path/posix.rs
	src/libstd/path/windows.rs
	src/libstd/prelude.rs
	src/libstd/rt/exclusive.rs
	src/libsyntax/lib.rs
	src/test/compile-fail/issue-18566.rs
	src/test/run-pass/deref-mut-on-ref.rs
	src/test/run-pass/deref-on-ref.rs
	src/test/run-pass/dst-deref-mut.rs
	src/test/run-pass/dst-deref.rs
	src/test/run-pass/fixup-deref-mut.rs
	src/test/run-pass/issue-13264.rs
	src/test/run-pass/overloaded-autoderef-indexing.rs
2015-01-02 13:51:50 -08:00
Brian Anderson
e95cbb3aca mk: Change package name from 'rust' to 'rustc' 2015-01-02 13:36:51 -08:00
Alex Crichton
8cf9929a9a Rebase test fixes v2 2015-01-02 12:09:47 -08:00
Jorge Aparicio
1abee08cbd fix rpass test with s/Output/Target/g 2015-01-02 14:23:46 -05:00
Niko Matsakis
fc7d8faba8 Handle recursive obligations without exiting the inference probe
Conflicts:
	src/librustc/middle/traits/select.rs
2015-01-02 14:22:00 -05:00
Niko Matsakis
45468f37c8 Temporarily do not evaluate subobligations. 2015-01-02 14:21:49 -05:00
Niko Matsakis
ea1ad792f9 Evaluate projection predicates during trait selection. Fixes #20296. 2015-01-02 14:21:37 -05:00
Alex Crichton
4459b1dced rollup merge of #20341: nikomatsakis/impl-trait-for-trait-2
Conflicts:
	src/librustc/middle/traits/mod.rs
	src/libstd/io/mod.rs
	src/test/run-pass/builtin-superkinds-self-type.rs
2015-01-02 11:13:05 -08:00
Alex Crichton
e921e3f045 Rollup test fixes and rebase conflicts 2015-01-02 10:50:13 -08:00
Alex Crichton
1f2ead1629 Merge remote-tracking branch 'origin/master' into rollup
Conflicts:
	src/test/compile-fail/borrowck-loan-rcvr-overloaded-op.rs
2015-01-02 10:50:07 -08:00
Alex Crichton
6f567e0c29 rollup merge of #20425: sanxiyn/opt-local-ty
This avoids having ast::Ty nodes which have no counterpart in the source.
2015-01-02 09:23:47 -08:00
Alex Crichton
735c308aed rollup merge of #20416: nikomatsakis/coherence
Conflicts:
	src/test/run-pass/issue-15734.rs
	src/test/run-pass/issue-3743.rs
2015-01-02 09:23:42 -08:00
Alex Crichton
4dab96758a rollup merge of #20407: michaelwoerister/unreachable-locals
Fixes #20312
2015-01-02 09:22:50 -08:00
Alex Crichton
b51ff9f06a rollup merge of #20404: japaric/at-tests
Closes #17732
Closes #18819
Closes #19479
Closes #19631
Closes #19632
Closes #19850
Closes #19883
Closes #20005
Closes #20009
Closes #20389

---

cc @nikomatsakis @sfackler
2015-01-02 09:22:47 -08:00
Alex Crichton
3dfb29e8cd rollup merge of #20392: daramos/travis
Travis recently launched their new infrastructure on Amazon EC2 with improved resources. The only limitation is that they don't support sudo. http://blog.travis-ci.com/2014-12-17-faster-builds-with-container-based-infrastructure/
I couldn't find anywhere where the build system uses sudo so I don't think that limitation affects rust builds.
This change drops the current `make tidy` times [slightly](https://travis-ci.org/daramos/rust/builds)(travis-test branch).
2015-01-02 09:22:44 -08:00
Alex Crichton
c5b9ffdee6 rollup merge of #20391: daramos/utf8_lossy
Prior to 9bae6ec828 from_utf8_lossy had a minor optimization in place that avoided having to loop from the beginning of the input slice.
Recently 4908017d59 implemented Utf8Error::InvalidByte which makes this possible again.
2015-01-02 09:22:42 -08:00
Alex Crichton
e80b9811a6 rollup merge of #20388: brson/install-tweaks
r? @alexcrichton
2015-01-02 09:22:40 -08:00
Alex Crichton
9ca8076cb7 rollup merge of #20386: frewsxcv/rm-reexports
Part of #19253

[breaking-change]
2015-01-02 09:22:37 -08:00
Alex Crichton
073fd5beab rollup merge of #20385: nick29581/x-object
Closes #19056
2015-01-02 09:22:35 -08:00
Alex Crichton
3cf1992c99 rollup merge of #20380: dcrewi/fix-make-install
There seems to be a problem introduced by
8b3c67690c that causes "make install"
to fail when the build is not configured to skip doc building.
2015-01-02 09:22:22 -08:00
Alex Crichton
b9a26bf4b1 rollup merge of #20334: nagisa/ffi-llvm
Fixes #20313

r? @huonw
2015-01-02 09:22:18 -08:00
Alex Crichton
656d5bbb92 rollup merge of #20227: FlashYoshi/patch-1 2015-01-02 09:22:15 -08:00
Alex Crichton
5bd7a78f66 rollup merge of #19625: mrhota/guide_traits
Nothing major. Clarification, copy-editing, typographical and grammatical consistency
2015-01-02 09:22:10 -08:00
Niko Matsakis
cddb41dd1f Do not ICE when projecting out of a value with type ty::ty_err 2015-01-02 12:20:29 -05:00
Jorge Aparicio
64b7c22c46 core: use assoc types in Deref[Mut] 2015-01-02 12:19:59 -05:00
Alex Crichton
4b0e084aa1 rollup merge of #20354: alexcrichton/second-pass-thread_local
Conflicts:
	src/libstd/sys/common/thread_info.rs
2015-01-02 09:19:45 -08:00
Alex Crichton
009ec5d2b0 rollup merge of #20315: alexcrichton/std-sync
Conflicts:
	src/libstd/rt/exclusive.rs
	src/libstd/sync/barrier.rs
	src/libstd/sys/unix/pipe.rs
	src/test/bench/shootout-binarytrees.rs
	src/test/bench/shootout-fannkuch-redux.rs
2015-01-02 09:19:00 -08:00
Alex Crichton
0101bbe7ac rollup merge of #20420: alexcrichton/second-pass-boxed 2015-01-02 09:17:08 -08:00
Alex Crichton
faf53559c6 rollup merge of #20382: alexcrichton/isuse-20376 2015-01-02 09:16:47 -08:00
Alex Crichton
074996d6f9 rollup merge of #20377: alexcrichton/issue-20352 2015-01-02 09:16:26 -08:00
Alex Crichton
8b7d032014 rollup merge of #20273: alexcrichton/second-pass-comm
Conflicts:
	src/doc/guide.md
	src/libcollections/bit.rs
	src/libcollections/btree/node.rs
	src/libcollections/slice.rs
	src/libcore/ops.rs
	src/libcore/prelude.rs
	src/librand/rand_impls.rs
	src/librustc/middle/check_match.rs
	src/librustc/middle/infer/region_inference/mod.rs
	src/librustc_driver/lib.rs
	src/librustdoc/test.rs
	src/libstd/bitflags.rs
	src/libstd/io/comm_adapters.rs
	src/libstd/io/mem.rs
	src/libstd/io/mod.rs
	src/libstd/io/net/pipe.rs
	src/libstd/io/net/tcp.rs
	src/libstd/io/net/udp.rs
	src/libstd/io/pipe.rs
	src/libstd/io/process.rs
	src/libstd/io/stdio.rs
	src/libstd/io/timer.rs
	src/libstd/io/util.rs
	src/libstd/macros.rs
	src/libstd/os.rs
	src/libstd/path/posix.rs
	src/libstd/path/windows.rs
	src/libstd/prelude/v1.rs
	src/libstd/rand/mod.rs
	src/libstd/rand/os.rs
	src/libstd/sync/barrier.rs
	src/libstd/sync/condvar.rs
	src/libstd/sync/future.rs
	src/libstd/sync/mpsc/mod.rs
	src/libstd/sync/mpsc/mpsc_queue.rs
	src/libstd/sync/mpsc/select.rs
	src/libstd/sync/mpsc/spsc_queue.rs
	src/libstd/sync/mutex.rs
	src/libstd/sync/once.rs
	src/libstd/sync/rwlock.rs
	src/libstd/sync/semaphore.rs
	src/libstd/sync/task_pool.rs
	src/libstd/sys/common/helper_thread.rs
	src/libstd/sys/unix/process.rs
	src/libstd/sys/unix/timer.rs
	src/libstd/sys/windows/c.rs
	src/libstd/sys/windows/timer.rs
	src/libstd/sys/windows/tty.rs
	src/libstd/thread.rs
	src/libstd/thread_local/mod.rs
	src/libstd/thread_local/scoped.rs
	src/libtest/lib.rs
	src/test/auxiliary/cci_capture_clause.rs
	src/test/bench/shootout-reverse-complement.rs
	src/test/bench/shootout-spectralnorm.rs
	src/test/compile-fail/array-old-syntax-2.rs
	src/test/compile-fail/bind-by-move-no-guards.rs
	src/test/compile-fail/builtin-superkinds-self-type.rs
	src/test/compile-fail/comm-not-freeze-receiver.rs
	src/test/compile-fail/comm-not-freeze.rs
	src/test/compile-fail/issue-12041.rs
	src/test/compile-fail/unsendable-class.rs
	src/test/run-pass/builtin-superkinds-capabilities-transitive.rs
	src/test/run-pass/builtin-superkinds-capabilities-xc.rs
	src/test/run-pass/builtin-superkinds-capabilities.rs
	src/test/run-pass/builtin-superkinds-self-type.rs
	src/test/run-pass/capturing-logging.rs
	src/test/run-pass/closure-bounds-can-capture-chan.rs
	src/test/run-pass/comm.rs
	src/test/run-pass/core-run-destroy.rs
	src/test/run-pass/drop-trait-enum.rs
	src/test/run-pass/hashmap-memory.rs
	src/test/run-pass/issue-13494.rs
	src/test/run-pass/issue-3609.rs
	src/test/run-pass/issue-4446.rs
	src/test/run-pass/issue-4448.rs
	src/test/run-pass/issue-8827.rs
	src/test/run-pass/issue-9396.rs
	src/test/run-pass/ivec-tag.rs
	src/test/run-pass/rust-log-filter.rs
	src/test/run-pass/send-resource.rs
	src/test/run-pass/send-type-inference.rs
	src/test/run-pass/sendable-class.rs
	src/test/run-pass/spawn-types.rs
	src/test/run-pass/task-comm-0.rs
	src/test/run-pass/task-comm-10.rs
	src/test/run-pass/task-comm-11.rs
	src/test/run-pass/task-comm-13.rs
	src/test/run-pass/task-comm-14.rs
	src/test/run-pass/task-comm-15.rs
	src/test/run-pass/task-comm-16.rs
	src/test/run-pass/task-comm-3.rs
	src/test/run-pass/task-comm-4.rs
	src/test/run-pass/task-comm-5.rs
	src/test/run-pass/task-comm-6.rs
	src/test/run-pass/task-comm-7.rs
	src/test/run-pass/task-comm-9.rs
	src/test/run-pass/task-comm-chan-nil.rs
	src/test/run-pass/task-spawn-move-and-copy.rs
	src/test/run-pass/task-stderr.rs
	src/test/run-pass/tcp-accept-stress.rs
	src/test/run-pass/tcp-connect-timeouts.rs
	src/test/run-pass/tempfile.rs
	src/test/run-pass/trait-bounds-in-arc.rs
	src/test/run-pass/trivial-message.rs
	src/test/run-pass/unique-send-2.rs
	src/test/run-pass/unique-send.rs
	src/test/run-pass/unwind-resource.rs
2015-01-02 09:15:54 -08:00
Niko Matsakis
704ed4c7d0 Address nits. 2015-01-02 12:09:38 -05:00
Niko Matsakis
a535f2aab1 Test that we can call unboxed closures with the sugar now. Fixes #16929. 2015-01-02 12:09:38 -05:00
Niko Matsakis
dabd7507b6 Ensure that, for every trait Foo, the predicate Foo : Foo holds. 2015-01-02 12:09:38 -05:00
Niko Matsakis
19dcecb225 Refactor object-safety into its own (cached) module so that we can
check it more easily; also extend object safety to cover sized types
as well as static methods.  This makes it sufficient so that we can
always ensure that `Foo : Foo` holds for any trait `Foo`.
2015-01-02 12:08:36 -05:00
Niko Matsakis
2c1d7a7caa Move the upcast routine into traits and use it for method selection; also
move get_method_index into traits and give it a better name (`get_vtable_index_of_object_method`).
2015-01-02 12:08:36 -05:00
Niko Matsakis
50ed6c1906 Do not automatically make Self Sized in traits. 2015-01-02 12:08:36 -05:00
Niko Matsakis
5b425c1b2f Fix fallout in tests. 2015-01-02 12:08:36 -05:00
Corey Richardson
d555772554 rustdoc: fix rendering of associated types 2015-01-02 12:07:04 -05:00
Jorge Aparicio
cc5ecaf765 merge *SliceExt traits, use assoc types in SliceExt, Raw[Mut]Ptr 2015-01-02 12:07:04 -05:00
Niko Matsakis
1b3734f8ae Fix fallout from change, adding explicit Sized annotations where necessary. 2015-01-02 12:06:59 -05:00
Alex Crichton
167683da23 Register new snapshots 2015-01-02 12:05:56 -05:00
Alex Crichton
5696ea5894 rollup merge of #20157: alexcrichton/issue-20068 2015-01-02 08:54:58 -08:00
Steve Klabnik
76e3bc2338 Properly deal with Ordering in the guide
Now that it's been removed from the prelude, we need to treat things differently.

Fixes #17967
2015-01-02 08:54:06 -08:00
Alex Crichton
56290a0044 std: Stabilize the prelude module
This commit is an implementation of [RFC 503][rfc] which is a stabilization
story for the prelude. Most of the RFC was directly applied, removing reexports.
Some reexports are kept around, however:

* `range` remains until range syntax has landed to reduce churn.
* `Path` and `GenericPath` remain until path reform lands. This is done to
  prevent many imports of `GenericPath` which will soon be removed.
* All `io` traits remain until I/O reform lands so imports can be rewritten all
  at once to `std::io::prelude::*`.

This is a breaking change because many prelude reexports have been removed, and
the RFC can be consulted for the exact list of removed reexports, as well as to
find the locations of where to import them.

[rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0503-prelude-stabilization.md
[breaking-change]

Closes #20068
2015-01-02 08:54:06 -08:00
bors
4b40bc85cb auto merge of #20365 : nick29581/rust/mod, r=huonw
Part of #20361 and #20362
2015-01-02 16:31:26 +00:00
bors
71b46b18a2 auto merge of #20356 : Gankro/rust/stab, r=aturon
This stabilizes most of libcollections, carefully avoiding sections of API which are being managed in other PRs. APIs which are not stable are marked explicitly unstable with a reason.

Deprecates:

* DList
  * rotate_forward
  * rotate_backward
  * prepend
  * insert_when
  * insert_ordered
  * merge

* VecMap
  * update
  * update_with_key

* Renames and newtypes the Bitv and BitvSet iterators to match conventions.

* Removes the Copy impl from DList's Iter.

as such this is a

[breaking-change]
2015-01-02 15:51:25 +00:00