Niko Matsakis
f7abf47058
Re-introduce McResult<>
as a way of aborting mem-categorization (and
...
expr-use-visitor) early. Turns out I was wrong to remove this; it
causes a lot of pain trying to run EUV etc during typeck without
ICEing on erroneous programs.
2015-01-03 07:00:51 -05:00
Andrea Canciani
28cca28e62
Improve make_hash
function
...
The `make_hash` function is used to prevent hashes of non-empty
buckets to collide with `EMPTY_HASH = 0u64`. Ideally this function
also preserve the uniform distribution of hashes and is cheap to
compute.
The new implementation reduces the input hash size by one bit, simply
by setting the most significant bit. This obviously prevent output
hashes to collide with `EMPTY_HASH` and guarantees that the uniform
distribution is preserved. Moreover, the new function is simpler (no
comparisons, just an OR) and (under the same assumptions as the old
function, i.e. only the least significant bit will contribute to the
bucket index) no additional collisions are caused.
2015-01-03 10:51:37 +01:00
Andrea Canciani
f2ee9fca85
Fix make install
dependencies
...
After 8b3c67690c
the `make install`
command fails if docs are not disabled through CFG_DISABLE_DOCS,
because now the `install` target uses
../../tmp/dist/$(DOC_PKG_NAME)-$(CFG_BUILD)/install.sh
In 714a2c678c
the `prepare_install`
target wwas changed to conditionally depend also on the doc archive,
but did not modify `prepare_uninstall`.
Instead of explicitly depending on
dist/$(PKG_NAME)-$(CFG_BUILD).tar.gz, the `prepare_[un]install`
targets now depend on `dist-tar-bins`, which packages the appropriate
dist archives depending on the configuration.
2015-01-03 09:49:51 +01:00
bors
fc2ba13939
auto merge of #20456 : brson/rust/packaging2, r=alexcrichton
2015-01-03 05:35:17 +00:00
Brian Anderson
d30353c1d2
Remove .pkg and .exe installers
2015-01-02 20:44:07 -08:00
Corey Farwell
f031285c3a
Remove graphviz::LabelText::* public reexport
...
Part of #19253
[breaking-change]
2015-01-02 19:35:56 -08:00
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
Niko Matsakis
dc97247d11
Make call notation use autoderef. Fixes #18742 .
2015-01-02 20:59:11 -05: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
Brian Anderson
51a2feec7b
rustup: Don't do verbose tarball extraction
2015-01-02 17:08:03 -08:00
Brian Anderson
36c63a3abe
Put links to discuss.rust-lang.org and #rust-internals in CONTRIBUTING.md
2015-01-02 15:42:38 -08:00
Brian Anderson
83270ed546
rustup: Install from the combined installer
2015-01-02 15:15:15 -08: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
Brian Anderson
b32e0098ef
Merge remote-tracking branch 'erickt/rustup'
2015-01-02 13:15:09 -08:00
Chase Southwood
c8fcbe7561
Fix vim syntax highlighting for derive
2015-01-02 15:06:13 -06: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