Commit Graph

20149 Commits

Author SHA1 Message Date
Michael Woerister
99ebb816cf debuginfo: Added test cases for packed structs (/w drop) 2013-07-19 07:55:24 +02:00
Michael Woerister
6230ec1482 debuginfo: Replaced vec::mapi with iterator version. 2013-07-19 07:55:24 +02:00
Michael Woerister
f424e931da debuginfo: Refactoring of composite type info generation done.
There is no more StructContext now. Better support for boxed vectors in there too.
2013-07-19 07:55:24 +02:00
Michael Woerister
36ea756831 debuginfo: Refactored vec slice code to use the new infrastructure. Added test cases for vec slices. 2013-07-19 07:53:58 +02:00
Michael Woerister
7a31a3e071 debuginfo: Removed some misleading comments from test cases. 2013-07-19 07:53:57 +02:00
Michael Woerister
1b20831c1e debuginfo: Renamed *reference-to-* test cases to *borrowed-* 2013-07-19 07:53:57 +02:00
Michael Woerister
976d7a53cb debuginfo: Began refactoring of composite type handling. 2013-07-19 07:53:57 +02:00
bors
3514a5af06 auto merge of #7857 : blake2-ppc/rust/fix-test-warnings, r=alexcrichton
Fix warnings that only show up when compiling the tests for libstd, libextra and one in librusti. Only trivial changes.
2013-07-18 20:55:38 -07:00
bors
b70c045f38 auto merge of #7856 : brson/rust/no-thread-per-core, r=pcwalton
This doesn't make sense under the new scheduler.
2013-07-18 19:10:41 -07:00
bors
f28e581268 auto merge of #7854 : brson/rust/rt-test-threads, r=pcwalton 2013-07-18 17:19:41 -07:00
bors
3bcc196f82 auto merge of #7847 : alexcrichton/rust/verbose-submodule, r=pnkfelix
Closes #3816.

Without --quiet, git shows its own progress report of download. It's not really a progress bar, but it's a percentage and files incoming. This will help initial downloads of LLVM to not cause people to wonder why their configure script is hanging for hours.

r? @graydon
2013-07-18 15:34:38 -07:00
bors
78f8b407e3 auto merge of #7846 : alexcrichton/rust/static-mut-dox, r=pnkfelix
It's probably a good idea to at least *mention* them somewhere.
2013-07-18 13:49:36 -07:00
bors
874eb1939b auto merge of #7845 : gifnksm/rust/tutorial-remove-dup, r=cmr
`pandoc` issues warnings.

```
pandoc: Duplicate link reference `[macros]' "source" (line 2151, column 1)
pandoc: Duplicate link reference `[tasks]' "source" (line 2150, column 1)
pandoc: Duplicate link reference `[wiki-start]' "source" (line 92, column 1)
```

This PR also removes unused link references.
2013-07-18 12:04:39 -07:00
bors
f83c118f42 auto merge of #7833 : blake2-ppc/rust/hashmap-consume, r=alexcrichton
Updated all users of HashMap, HashSet ::consume() to use
.consume_iter().

Since .consume_iter() takes the map or set by value, it needs awkward
extra code to in librusti's use of @mut HashMap, where the map value can
not be directly moved out.

Addresses issue #7719
2013-07-18 10:19:44 -07:00
bors
559d2ef925 auto merge of #7842 : thestinger/rust/closure, r=huonw 2013-07-18 08:37:39 -07:00
bors
babf741177 auto merge of #7840 : alexcrichton/rust/better-test-help, r=huonw
Progress on #7824, closes #7825
2013-07-18 06:52:41 -07:00
blake2-ppc
7ef9e722b8 hashmap: Remove .consume() has rename .consume_iter() to .consume()
Updated all users of HashMap, HashSet old .consume() to use .consume()
with a for loop.

Since .consume() takes the map or set by value, it needs awkward
extra code to in librusti's use of @mut HashMap, where the map value can
not be directly moved out.
2013-07-18 15:03:59 +02:00
bors
929b75e220 auto merge of #7747 : chris-morgan/rust/vim-compiler-rustc, r=huonw
Note that this is not actually *used* by default; it is a matter of
configuration still, because you might want to:

- Compile all .rs files with `rustc %` (where each can be built itself)

- Compile all .rs files with `rustc some-file.rs` (where you are editing
  part of a crate)

- Compile with a different tool, such as `make`. (In this case you might
  put a `~/.vim/after/compiler/rustc.vim` to match such cases, set
  makeprg and extend errorformat as appropriate. That should probably go
  in a different compiler mode, e.g. make-rustc.)

To try using it, `:compiler rustc`. Then, `:make` on a file you would
run `rustc` on will work its magic, invoking rustc. To automate this,
you could have something like `autocmd FileType rust compiler rustc` in
your Vim config.
2013-07-18 05:07:39 -07:00
bors
0335339c18 auto merge of #7876 : pnkfelix/rust/fsk-silence-warnings-from-bootstrap-build, r=alexcrichton
r? anyone

The only bit that I'm a little concerned about is whether there's some way the assignments to `hi` could somehow still be necessary; but I think that could only be the case if it had been `&const` borrowed (or whatever the hypothetical syntax is for that), and that's not going on in this file.
2013-07-18 03:22:45 -07:00
bors
cee5c4ad11 auto merge of #7849 : nikomatsakis/rust/issue-7444-capture-moved-value, r=bblum
This code looks like it was just wrong. r? @bblum
2013-07-18 01:37:44 -07:00
Felix S. Klock II
3b158b3e42 Silence various warnings in bootstrap build. 2013-07-18 09:35:12 +02:00
bors
30ef79ca6d auto merge of #7851 : dotdash/rust/intrinsics, r=pcwalton 2013-07-17 23:52:40 -07:00
Daniel Micay
ce16644677 repr: add a test case for @mut inside another type 2013-07-18 00:15:20 -04:00
Daniel Micay
2988d3f5c6 fix repr of @mut vectors 2013-07-18 00:15:17 -04:00
Patrick Walton
d300a64520 compiletest: Remove stray copies. 2013-07-17 18:03:48 -07:00
blake2-ppc
ff9b75f26d Fix warnings in libstd and librusti tests 2013-07-18 02:18:56 +02:00
blake2-ppc
e93dd34cd3 Fix warnings in libextra tests
Most of these are "unneccesary allocation" in bitv, for ~[false, ..] instead
of [false, ..].
2013-07-18 02:18:53 +02:00
Daniel Micay
0c7b220f20 fix repr of unique vectors with stage0 libstd
Closes #7860
2013-07-17 19:09:18 -04:00
Patrick Walton
3d13d4b58d libextra: Add a stray deriving or two. 2013-07-17 15:15:34 -07:00
Patrick Walton
3f8d548914 librustc: Remove some extra "copy" keywords that came in before this change merged. 2013-07-17 14:58:12 -07:00
Patrick Walton
66a9b7d5bd libsyntax: Remove some multi-gigabyte clones that were preventing bootstrapping on Windows. 2013-07-17 14:57:56 -07:00
Patrick Walton
dc4bf173f8 test: Fix tests. 2013-07-17 14:57:55 -07:00
Patrick Walton
88fe4ae09c librustc: Remove the Copy bound from the language. 2013-07-17 14:57:54 -07:00
Patrick Walton
d57e8f8419 librustc: Change repeated vector expressions to use implicit copyability. 2013-07-17 14:57:54 -07:00
Patrick Walton
2dbb3c3887 test: Fix tests. 2013-07-17 14:57:54 -07:00
Patrick Walton
e20549ff19 librustc: Remove all uses of the Copy bound. 2013-07-17 14:57:53 -07:00
Patrick Walton
99d44d24c7 librustc: Remove copy expressions from the language. 2013-07-17 14:57:52 -07:00
Patrick Walton
99b33f7219 librustc: Remove all uses of "copy". 2013-07-17 14:57:51 -07:00
Patrick Walton
b4e674f6e6 librustc: Add a lint mode for unnecessary copy and remove a bunch of them. 2013-07-17 14:56:42 -07:00
bors
8c082658be auto merge of #7829 : graydon/rust/codegen-compiletests, r=cmr
This should get us over the hump of activating basic ratcheting on codegen tests, at least. It also puts in place optional (disabled by default) ratcheting on all #[bench] tests, and records all metrics from them to harvestable .json files in any case.
2013-07-17 13:07:24 -07:00
Graydon Hoare
6d78a367b1 extra: avoid possible divide-by-zero conditions test. 2013-07-17 12:28:48 -07:00
Graydon Hoare
4bf6b84a4d make: turn off --bench when running under valgrind 2013-07-17 11:52:21 -07:00
bors
060de1016b auto merge of #7844 : huonw/rust/no-implicit-prelude, r=alexcrichton
It disables the insertion of `use std::prelude::*;` into the top of
all the modules below the item on which it is placed (including that
item itself).

(Similar to GHC's `-XNoImplicitPrelude`.)
2013-07-17 11:28:46 -07:00
Daniel Micay
0bc204e74d rm unnecessary stage0 zero_memory fn 2013-07-17 14:08:54 -04:00
Brian Anderson
b17141370f std::rt: Rename RUST_TEST_THREADS to RUST_RT_TEST_THREADS 2013-07-17 10:47:05 -07:00
Daniel Micay
0239a06a64 rm unused visit_str method from TyVisitor 2013-07-17 13:30:32 -04:00
Daniel Micay
8d561587b2 stop initializing ref_count for stack closures
the only part of the header ~fn and &fn should be touching right now is
the tydesc
2013-07-17 13:30:32 -04:00
bors
9c1e530bde auto merge of #7826 : michaelwoerister/rust/end_of_spanned, r=cmr
This is the first of a series of refactorings to get rid of the `codemap::spanned<T>` struct (see this thread for more information: https://mail.mozilla.org/pipermail/rust-dev/2013-July/004798.html).

The changes in this PR should not change any semantics, just rename `ast::blk_` to `ast::blk` and add a span field to it. 95% of the changes were of the form `block.node.id` -> `block.id`. Only some transformations in `libsyntax::fold` where not entirely trivial.
2013-07-17 09:49:43 -07:00
Alex Crichton
8885b740f6 Add documentation about mutable statics to rust.md 2013-07-17 08:57:08 -07:00
Björn Steinbrink
15ea4a8dd8 Generate better code for intrinsics
Currently, our intrinsics are generated as functions that have the
usual setup, which means an alloca, and therefore also a jump, for
those intrinsics that return an immediate value. This is especially bad
for unoptimized builds because it means that an intrinsic like
"contains_managed" that should be just "ret 0" or "ret 1" actually ends
up allocating stack space, doing a jump and a store/load sequence
before it finally returns the value.

To fix that, we need a way to stop the generic function declaration
mechanism from allocating stack space for the return value. This
implicitly also kills the jump, because the block for static allocas
isn't required anymore.

Additionally, trans_intrinsic needs to build the return itself instead
of calling finish_fn, because the latter relies on the availability of
the return value pointer.

With these changes, we get the bare minimum code required for our
intrinsics, which makes them small enough that inlining them makes the
resulting code smaller, so we can mark them as "always inline" to get
better performing unoptimized builds.

Optimized builds also benefit slightly from this change as there's less
code for LLVM to translate and the smaller intrinsics help it to make
better inlining decisions for a few code paths.

Building stage2 librustc gets ~1% faster for the optimized version and 5% for
the unoptimized version.
2013-07-17 17:21:41 +02:00