Graydon Hoare
b4a3fe25c6
librustc: drop AST before running LLVM, frees 400mb on a librustc build
2013-05-28 15:31:32 -07:00
bors
9a06ff0590
auto merge of #6707 : catamorphism/rust/issue-5543, r=catamorphism
2013-05-28 14:35:00 -07:00
Tim Chevalier
7ad1cc71e3
testsuite: Add main function to issue-5554 test
2013-05-28 13:43:10 -07:00
bors
d7e1f08b21
auto merge of #6774 : alexcrichton/rust/silence-warnings, r=graydon
...
Also as a bonus this fixes #6767
2013-05-28 13:35:05 -07:00
Alex Crichton
b04c40bb1c
Silence various warnings throughout test modules
2013-05-28 15:27:35 -05:00
Luqman Aden
c49e41c42f
compiletest: Add #[no_core] to fix check-stage1.
2013-05-28 15:58:35 -04:00
Daniel Micay
accc5272f8
noalias
on all &mut
parameters is too coarse
...
it can alias `&const` and `@mut`
2013-05-28 13:05:50 -04:00
bors
05735a934a
auto merge of #6783 : hoelzro/rust/master, r=bstrie
...
I think settings like this should be left up to the user.
2013-05-28 07:16:59 -07:00
Rob Hoelz
2505416408
Remove colorcolumn setting
2013-05-28 16:06:15 +02:00
bors
c33258bee1
auto merge of #6773 : lkuper/rust/alt-to-match, r=thestinger
...
RIP `alt`.
2013-05-28 05:07:59 -07:00
bors
24784e8030
auto merge of #6771 : thestinger/rust/highlight, r=luqmana
...
This works with pandoc linked against highlighting-kate >= 0.5.3.8. It seems to just be a no-op with earlier versions, because I successfully ran this through `try`.
This also fixes some consistency issues (like making `Example`/`Examples` always a header and always using three tildes).
2013-05-28 04:02:02 -07:00
bors
b738b5766e
auto merge of #6754 : thestinger/rust/noalias, r=nikomatsakis
...
The compiler guarantees that there are no other references to a unique pointer when it's passed by-value to a function.
The existence of the header and annihilator don't matter since it's not relevant to the call:
> For a call to the parent function, dependencies between memory references from before or after the call and from those during the call are “irrelevant” to the noalias keyword for the arguments and return value used in that call.
@graydon's tracing garbage collector stores the metadata outside of the boxes, so that won't be a problem. I'm unsure if updating the header while inside a function where it's marked as `noalias` would be a problem anyway since you never actually read or write to the header.
@nikomatsakis: r?
2013-05-28 02:59:03 -07:00
bors
7ee329e97a
auto merge of #6770 : lkuper/rust/6762, r=catamorphism
2013-05-28 01:50:03 -07:00
bors
fe7f528e5d
auto merge of #6769 : catamorphism/rust/issue-4994, r=thestinger
...
r? @thestinger As called for in #4994
2013-05-28 00:44:05 -07:00
bors
f7f36a8373
auto merge of #6766 : fdr/rust/time-by-value, r=catamorphism
...
Per the recommendation of the now-removed FIXME.
2013-05-27 23:41:19 -07:00
bors
6264df5331
auto merge of #6777 : alexcrichton/rust/less-memory, r=graydon
...
Via my super-accurate timing (`/usr/bin/time -l`), I get 2431119360 => 1884430336 == ~520MB
Closes #6637 .
2013-05-27 22:29:09 -07:00
Jihyun Yu
4521c34775
Fix #6696
2013-05-28 12:35:06 +09:00
Alex Crichton
ae7df57c5a
Prevent refcount cycles during linting
...
Shaves off ~600MB of memory while compiling rustc
2013-05-27 22:22:09 -05:00
Graydon Hoare
3c4ce79518
rustc: Switch ty::node_type_table to smallintmap, cut 400mb memory use off a librustc build.
...
Smallintmap was being populated with sparse keys during ast deserialization.
2013-05-27 19:50:49 -07:00
Tom Lee
b7f71e1ee6
Implementing suggestions from @nikomatsakis
2013-05-27 19:34:25 -07:00
Junyoung Cho
56a2e5dc22
core::vec is missing methods for mutable slices
2013-05-28 10:29:35 +09:00
bors
2061ce9aff
auto merge of #6741 : pcwalton/rust/intra-crate-start, r=graydon
...
r? @brson
2013-05-27 18:26:04 -07:00
Tim Chevalier
351f6033d6
testsuite: Update core to std
2013-05-27 17:32:32 -07:00
Tim Chevalier
403aee1082
testsuite: Test cases, one xfailed, one not
2013-05-27 17:32:32 -07:00
Tim Chevalier
58547d6488
testsuite: Add working test for #5550
2013-05-27 17:32:31 -07:00
Tim Chevalier
6c03fbfefd
testsuite: Add passing test for #4735
2013-05-27 17:32:31 -07:00
Tom Lee
a85993ff69
Added _RUST_STAGEN guard to rust_call_tydesc_glue
2013-05-27 17:13:01 -07:00
Tom Lee
cddd274e4d
Add _RUST_STAGE0 #ifdefs
2013-05-27 17:13:01 -07:00
Tom Lee
67283eaad2
Omit unused implicit argument if return type is immediate.
2013-05-27 17:13:01 -07:00
bors
dbc57584bd
auto merge of #6724 : thestinger/rust/swap_fast, r=thestinger
...
Passing higher alignment values gives the optimization passes more freedom since it can copy in larger chunks. This change results in rustc outputting the same post-optimization IR as clang for swaps and most copies excluding the lack of information about padding.
Code snippet:
```rust
#[inline(never)]
fn swap<T>(x: &mut T, y: &mut T) {
util::swap(x, y);
}
```
Original IR (for `int`):
```llvm
define internal fastcc void @_ZN9swap_283417_a71830ca3ed2d65d3_00E(i64*, i64*) #1 {
static_allocas:
%2 = icmp eq i64* %0, %1
br i1 %2, label %_ZN4util9swap_283717_a71830ca3ed2d65d3_00E.exit, label %3
; <label>:3 ; preds = %static_allocas
%4 = load i64* %0, align 1
%5 = load i64* %1, align 1
store i64 %5, i64* %0, align 1
store i64 %4, i64* %1, align 1
br label %_ZN4util9swap_283717_a71830ca3ed2d65d3_00E.exit
_ZN4util9swap_283717_a71830ca3ed2d65d3_00E.exit: ; preds = %3, %static_allocas
ret void
}
```
After #6710 :
```llvm
define internal fastcc void @_ZN9swap_283017_a71830ca3ed2d65d3_00E(i64* nocapture, i64* nocapture) #1 {
static_allocas:
%2 = load i64* %0, align 1
%3 = load i64* %1, align 1
store i64 %3, i64* %0, align 1
store i64 %2, i64* %1, align 1
ret void
}
```
After this change:
```llvm
define internal fastcc void @_ZN9swap_283017_a71830ca3ed2d65d3_00E(i64* nocapture, i64* nocapture) #1 {
static_allocas:
%2 = load i64* %0, align 8
%3 = load i64* %1, align 8
store i64 %3, i64* %0, align 8
store i64 %2, i64* %1, align 8
ret void
}
```
Another example:
```rust
#[inline(never)]
fn set<T>(x: &mut T, y: T) {
*x = y;
}
```
Before, with `(int, int)` (align 1):
```llvm
define internal fastcc void @_ZN8set_282517_8fa972e3f9e451983_00E({ i64, i64 }* nocapture, { i64, i64 }* nocapture) #1 {
static_allocas:
%2 = bitcast { i64, i64 }* %1 to i8*
%3 = bitcast { i64, i64 }* %0 to i8*
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* %2, i64 16, i32 1, i1 false)
ret void
}
```
After, with `(int, int)` (align 8):
```llvm
define internal fastcc void @_ZN8set_282617_8fa972e3f9e451983_00E({ i64, i64 }* nocapture, { i64, i64 }* nocapture) #1 {
static_allocas:
%2 = bitcast { i64, i64 }* %1 to i8*
%3 = bitcast { i64, i64 }* %0 to i8*
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* %2, i64 16, i32 8, i1 false)
ret void
}
```
2013-05-27 15:56:08 -07:00
Daniel Micay
e6c04dea03
fix casts on 32-bit
2013-05-27 18:14:00 -04:00
Lindsey Kuper
32c6199161
Change alt
to match
in filenames.
2013-05-27 17:28:39 -04:00
bors
5d04ee805b
auto merge of #6715 : Xazax-hun/rust/incoming, r=graydon
...
Preliminary implementation for: https://github.com/mozilla/rust/issues/6275
This is my first (non hello world) rust code, so it may not be idiomatic.
2013-05-27 13:44:08 -07:00
bors
b0f3686515
auto merge of #6703 : sanxiyn/rust/allocation-lint, r=sanxiyn
...
Fix #6145 . In particular, handle operator overloading.
2013-05-27 12:38:12 -07:00
Lindsey Kuper
c9c4d92889
Add xfail'd test for #6762 .
2013-05-27 15:21:45 -04:00
Tim Chevalier
77de84b4f6
extra: Add reserve and reserve_at_least to extra::deque
...
As called for in #4994
2013-05-27 11:47:38 -07:00
Daniel Micay
0d5fdce82e
syntax highlight code examples in docstrings
2013-05-27 14:47:21 -04:00
Seo Sanghyeon
8f80323f09
Remove unnecessary allocations flagged by lint
2013-05-28 03:14:44 +09:00
Seo Sanghyeon
363e672736
Use adjustments table for allocation lint
2013-05-28 03:12:13 +09:00
Lindsey Kuper
beec6e4b21
Get rid of no-longer-needed #[doc(hidden)] attributes.
...
There were several old `#[doc(hidden)]` attributes in libstd and
libextra, left over from when rustdoc didn't hide private
definitions, tagged with `FIXME #3538`.
Since #3538 is now closed, I removed the `#[doc(hidden)]` attributes
as well as the FIXMEs, but I left `#[doc(hidden)]` in
libstd/task/spawn.rs and libstd/task/rt.rs since those two are
apparently `pub`, as well as in libextra/std.rc since std/extra is
`pub`.
2013-05-27 13:29:48 -04:00
Daniel Farina
c6f3577f72
Increment copyright year of time.rs
2013-05-27 10:02:48 -07:00
Daniel Farina
379460558b
Use passing by-value in gmtime, mktime
...
Per the recommendation of the now-removed FIXME.
2013-05-27 10:02:48 -07:00
bors
3941f78a1b
auto merge of #6763 : steveklabnik/rust/core_to_std, r=thestinger
...
When I submitted #6748 yesterday, I used the old name.
r? @thestinger
2013-05-27 07:08:04 -07:00
Steve Klabnik
e2fcb92a6d
Fix docs to use std instead of core.
...
When I submitted #6748 yesterday, I used the old name.
2013-05-27 08:19:57 -05:00
gareth
04a39359f8
Rename unwrap_input/unwrap_output as suggested by
...
@brson. Also fix a few documentation bugs.
2013-05-27 13:50:33 +01:00
gareth
49a1ab8745
Make test_change_working_directory change the current
...
directory to be the parent of the current-current directory,
instead of changing to the tmp directory, which was causing
issues with OS X and its /tmp => /private/tmp symlink.
2013-05-27 13:50:33 +01:00
gareth
76c31217be
Refactor core::run in order to address many of the issues
...
mentioned in #2625 .
This change makes the module more oriented around
Process values instead of having to deal with process ids
directly.
Apart from issues mentioned in #2625 , other changes include:
- Changing the naming to be more consistent - Process/process
is now used instead of a mixture of Program/program and
Process/process.
- More docs/tests.
Some io/scheduler related issues remain (mentioned in #2625 ).
2013-05-27 13:50:33 +01:00
bors
d577eafff3
auto merge of #6688 : graydon/rust/issue-3396-mystery-bug-in-metadata, r=Aatch
...
Whatever it was, it is no longer a problem here.
2013-05-27 04:38:04 -07:00
bors
a6b05b385a
auto merge of #6761 : ILyoan/rust/ctags, r=thestinger
2013-05-27 02:41:12 -07:00
bors
fa67e091e4
auto merge of #6719 : kud1ing/rust/rustc_w, r=bstrie
...
Fixes #6697
2013-05-26 22:26:06 -07:00
ILyoan
998cbbd739
update ctags define
2013-05-27 13:58:27 +09:00
Daniel Micay
c302010ef0
mark unique pointer parameters as noalias
...
Closes #6749
2013-05-26 14:11:30 -04:00
bors
f5d4ea84f5
auto merge of #6748 : steveklabnik/rust/bool_docs, r=thestinger
...
There was some before, but now we have a big header, as well as
lots of individual bits of documentation.
2013-05-26 10:32:02 -07:00
bors
1f8c4b096d
auto merge of #6700 : ben0x539/rust/nestvariantdocs, r=thestinger
...
This indents all but the first line of multi-line annotations for individual enum variants with four spaces so that pandoc will recognize everything as belonging to the same list item.
Since that introduces `<p>` tags for some list items, I've gone ahead and inserted blank lines after each list item so that consistently get `<p>` tags for all `<li>`s documenting variants. It's a bit less compact now but still tolerable, I think.
2013-05-26 09:35:00 -07:00
Steve Klabnik
9bb8077c18
Add documentation for libstd/bool.rs.
...
There was some before, but now we have a big header, as well as
lots of individual bits of documentation.
2013-05-26 09:39:55 -05:00
Daniel Micay
14846613bb
inline bump_box_refcount
2013-05-26 10:26:04 -04:00
Daniel Micay
b25c520102
make transmute_copy use memcpy, and inline it
2013-05-26 10:26:04 -04:00
Daniel Micay
58d6864ad7
add an align parameter to call_memcpy
2013-05-26 10:26:04 -04:00
Daniel Micay
f6023a01d4
use uninit for cast::transmute_copy
2013-05-26 10:26:03 -04:00
Daniel Micay
d9c0f0f188
add memset32/memset64
2013-05-26 10:26:03 -04:00
Daniel Micay
2eaa5dbb60
C++0x -> C++11
2013-05-26 10:26:03 -04:00
Daniel Micay
cf8e9f9aec
make the memcpy/memmove intrinsics higher-level
...
This allows them to make use of the type's alignment, instead of being
pessimistic and assuming it is only 1.
2013-05-26 10:26:03 -04:00
bors
f254d119ea
auto merge of #6742 : Aatch/rust/mut-noalias, r=thestinger
...
This marks `&mut` function arguments with the `noalias` attribute. Since the borrow checker enforces this property, this is worth doing.
I'm not sure if the place I'm doing it in is ideal, but it generates the correct code.
Closes #6350
2013-05-26 05:50:00 -07:00
Benjamin Herr
d89a6ceb1b
rustdoc: properly nest markup within enum variant lists ( fixes #6605 )
...
This indents all but the first line of multi-line annotations for
individual enum variants with four spaces so that pandoc will
recognize everything as belonging to the same list item.
Since that introduces `<p>` tags for some list items, I've gone ahead
and inserted blank lines after each list item so that consistently
get `<p>` tags for all `<li>`s documenting variants. It's a bit less
compact now but still tolerable, I think.
2013-05-26 12:06:32 +02:00
James Miller
2c2346e3d4
Mark &mut parameters as noalias
2013-05-26 17:40:07 +12:00
Tim Chevalier
a243ea39c3
testsuite: Add a test for listing the root directory...
...
...and don't treat Path("/") like Path("").
2013-05-25 20:47:44 -07:00
Tim Chevalier
196851c4c9
core: Fail with a better error message when list_dir gets an empty path
...
(Yes, this did happen in real life...)
2013-05-25 20:47:43 -07:00
Patrick Walton
cf34f9f9a9
librustc: Allow intra-crate start functions, for runtimeless operation.
2013-05-25 18:20:33 -07:00
James Miller
df1814ba08
Add some documentation
2013-05-26 12:54:30 +12:00
James Miller
30b471bf23
Add AtomicOption type
2013-05-26 12:39:53 +12:00
James Miller
008e6e5e7e
Make AtomicPtr use *mut, instead of ~
2013-05-26 11:44:31 +12:00
bors
e2f8b51dc5
auto merge of #6722 : alexcrichton/rust/issue-4219-no-merge-hack, r=brson
...
Changes the int/uint modules to all use macros instead of using the `merge` attribute. It would be nice to have #4375 resolved as well for this, but that can probably come at a later date.
Closes #4219 .
2013-05-25 15:13:54 -07:00
bors
2706271317
auto merge of #6732 : Aatch/rust/atomic-types, r=brson
...
This pull request is more of an RFC than a finished implementation.
It adds some basic atomic types, with an interface modelled off of C++11's atomic types.
It also adds free functions that provide a slightly nicer interface for atomic operations, though they are unsafe because there isn't a way to be generic over "word-sized" types.
See also #5042
2013-05-25 14:13:55 -07:00
Björn Steinbrink
6c62d77830
Use an enum for keywords and intern them to improve parser performance
...
Currently, keywords are stored in hashsets that are recreated for every
Parser instance, which is quite expensive since macro expansion creates
lots of them. Additionally, the parser functions that look for a keyword
currently accept a string and have a runtime check to validate that they
actually received a keyword.
By creating an enum for the keywords and inserting them into the
ident interner, we can avoid the creation of the hashsets and get static
checks for the keywords.
For libstd, this cuts the parse+expansion part from ~2.6s to ~1.6s.
2013-05-25 17:57:22 +02:00
bors
b238a08725
auto merge of #6728 : alexcrichton/rust/update-linenoise, r=Aatch
...
This updates the bundled linenoise library, and explicitly builds it with UTF8 support. This way rusti correctly handles utf8 characters when doing line operations.
Closes #6681
2013-05-24 23:34:58 -07:00
James Miller
523360415c
Add basic atomic types
2013-05-25 17:51:26 +12:00
Alex Crichton
bf4d3729e8
Fix compilation errors with linenoise
2013-05-25 00:40:12 -05:00
bors
d930b2cafb
auto merge of #6730 : hjr3/rust/exit_code, r=z0w0
...
Scripts need to know if the tests pass or the program ran correctly.
2013-05-24 22:37:54 -07:00
bors
0628c92540
auto merge of #6726 : alexcrichton/rust/filter-blocks, r=z0w0
...
Among other things, this suppresses a spurious unused import warning in the compiler right now.
2013-05-24 21:25:54 -07:00
Alex Crichton
876ce10264
Update the linenoise library
2013-05-24 22:32:55 -05:00
Alex Crichton
ac6c15aece
Actually filter view_items in blocks
2013-05-24 17:31:15 -05:00
Olivier Saut
ff28bb7839
Remove the clone function for the method
2013-05-24 22:54:58 +02:00
Olivier Saut
f2125434d8
Remove the get function
...
Rust is now preferring methods over functions and there is no legacy with ARC
2013-05-24 22:51:24 +02:00
Herman J. Radtke III
264c84b892
Make rust {test, run} exit with appropriate code.
...
Scripts need to know if the tests pass or the program ran correctly.
2013-05-24 13:41:53 -07:00
Alex Crichton
03ae629259
Remove the #[merge] hack from the parser
2013-05-24 15:32:06 -05:00
Alex Crichton
ec8fb884e9
Remove usage of the #[merge] hack with int modules
2013-05-24 15:31:34 -05:00
Lenny222
1009c21ad7
show options for -W help and -W
2013-05-24 21:32:30 +02:00
bors
b5ab1012f1
auto merge of #6680 : ben0x539/rust/slashslashslash, r=graydon
...
There's currently a function in the lexer that rejects a line comment that is all slashes from being a doc comment. I think the intention was that you could draw boxes,
/////////////
// like so //
/////////////
Since a line doc comment split up over multiple paragraphs will have a "blank" line that is just /// between the paragraphs, that would get mistaken for a box segment, lexed as a regular comment, and go missing from the sequence of doc comment attributes before they were reassembled by rustdoc into markdown input.
I figure the best plan here is to just declare that a comment that is exactly `///` is a doc comment after all, and to only omit comments with four slashes or more, which is what this commit implements. Can't really draw boxes that narrow, anyway.
2013-05-24 05:34:45 -07:00
Gábor Horváth
3d61931fca
Only trigger missing documentation warnings to public functions and fields.
2013-05-24 14:13:41 +02:00
bors
2f69bb9ba9
auto merge of #6712 : thestinger/rust/derive, r=catamorphism
2013-05-24 02:04:47 -07:00
Gábor Horváth
c6581325ac
Warnings for missing documentations.
2013-05-24 10:27:31 +02:00
bors
ed9a793d24
auto merge of #6706 : brson/rust/glue, r=catamorphism
...
Instead of `glue_drop1234` it's `Type::<hash>::glue_drop1234`
Haven't done any performance testing.
2013-05-23 23:13:46 -07:00
Daniel Micay
0629ef16e8
use deriving for DeepClone
2013-05-24 01:16:15 -04:00
bors
212d6a2f61
auto merge of #6710 : thestinger/rust/swap, r=catamorphism
2013-05-23 22:04:40 -07:00
Daniel Micay
7bff0281c7
optimize util::swap, &mut pointers never alias
2013-05-23 23:00:16 -04:00
Jyun-Yan You
abb2823c35
make arm register definition consistent with rt
2013-05-24 10:42:09 +08:00
Daniel Micay
a7f450ab22
indentation fix
2013-05-23 22:32:33 -04:00
Daniel Micay
7d2f836065
add memcpy intrinsic to mirror memmove
2013-05-23 22:29:30 -04:00
Daniel Micay
5ba5865e85
swap_ptr: rm equality check
...
This isn't needed semantically, and it's the wrong case to optimize for.
2013-05-23 21:57:37 -04:00
bors
a776d65b4d
auto merge of #6690 : erickt/rust/cleanup-warnings, r=brson
...
Simple patch series to fix up all the warnings a rustc compile is giving at the moment. It also fixes a NOTE in `to_bytes.rs` to remove the `to_bytes::iter_bytes_<N>` functions.
2013-05-23 18:10:36 -07:00
Erick Tryzelaar
21c3cf02f0
cleanup warnings from librustpkg
2013-05-23 17:57:08 -07:00
Erick Tryzelaar
88a1219336
cleanup warnings from compiletest
2013-05-23 17:57:08 -07:00
Erick Tryzelaar
d7e43aa779
cleanup warnings from librustdoc
2013-05-23 17:57:07 -07:00
Erick Tryzelaar
50f6198ee2
cleanup warnings from librusti
2013-05-23 17:57:07 -07:00
Erick Tryzelaar
9635b30837
cleanup warnings from librustc
2013-05-23 17:57:07 -07:00
Erick Tryzelaar
a4df35f2bc
cleanup warnings from libsyntax
2013-05-23 17:57:07 -07:00
Erick Tryzelaar
609a9e69e1
cleanup warnings from libextra
2013-05-23 17:57:06 -07:00
Erick Tryzelaar
dc970c13f4
cleanup warnings from libstd
2013-05-23 17:48:16 -07:00
Erick Tryzelaar
1965d72957
core: remove iter_bytes helper functions
2013-05-23 17:48:16 -07:00
bors
4bbc13d6db
auto merge of #6705 : brson/rust/issue-5192, r=catamorphism
...
r? @catamorphism
This could probably refactored to more closely mirror the code for `@objects`, but I'm not inclined to do so.
2013-05-23 17:04:34 -07:00
Brian Anderson
7f642f3d85
rustc: Give glue symbols meaningful names
...
Instead of `glue_drop1234` it's `Type::<hash>::glue_drop1234`
Haven't done any performance testing.
2013-05-23 17:01:45 -07:00
Brian Anderson
d213443a67
rustc: Check for null before dropping ~objects. #5192
2013-05-23 15:33:34 -07:00
Ted Horst
34cfd2183b
more testing fallout from core->std/std->extra move
2013-05-23 15:06:29 -05:00
Patrick Walton
6e2b082adc
libextra: Add missing core::prelude import. rs=burningtree
2013-05-23 08:33:30 -07:00
Patrick Walton
be0110989e
etc: Fix test combiner for core->std/std->extra change. rs=burningtree
2013-05-23 08:32:36 -07:00
Patrick Walton
18fca3e2e5
librustc: Add some missing use core::prelude::*;
in the test cases
2013-05-22 21:57:12 -07:00
Patrick Walton
a5ca58ae34
libextra: Allow unnecessary allocations
2013-05-22 21:57:11 -07:00
Patrick Walton
3a66d732bb
libsyntax: Fix more merge fallout.
2013-05-22 21:57:11 -07:00
Patrick Walton
18df18c817
libstd: Fix merge fallout.
2013-05-22 21:57:11 -07:00
Patrick Walton
ee52865c88
test: Update tests and import the prelude in some more places.
2013-05-22 21:57:10 -07:00
Patrick Walton
1be40be613
test: Update tests to use the new syntax.
2013-05-22 21:57:10 -07:00
Patrick Walton
c10e0cb9c9
syntax: Change syntax extensions to expand to std::foo
instead of core::foo
2013-05-22 21:57:08 -07:00
Patrick Walton
9200237b4d
fuzzer: Change core
to std
in the fuzzer
2013-05-22 21:57:08 -07:00
Patrick Walton
14be4c23e4
librustdoc: Rename std
to extra
.
2013-05-22 21:57:08 -07:00
Patrick Walton
b8be7e8329
libfuzzer: Rename std
to extra
.
2013-05-22 21:57:08 -07:00
Patrick Walton
d5055f4e97
librustc: Make std_inject
inject the name std
, not core
2013-05-22 21:57:08 -07:00
Patrick Walton
c532e033c9
librustc: Change std
to extra
throughout libsyntax and librustc
2013-05-22 21:57:08 -07:00
Patrick Walton
f3723cf7c4
libextra: Rename the actual metadata names of libcore to libstd and libstd to libextra
2013-05-22 21:57:07 -07:00
Patrick Walton
ebfc2b8e56
librustc: Rename core injection to std injection
2013-05-22 21:57:05 -07:00
Patrick Walton
0c820d4123
libstd: Rename libcore to libstd and libstd to libextra; update makefiles.
...
This only changes the directory names; it does not change the "real"
metadata names.
2013-05-22 21:57:05 -07:00
Patrick Walton
565942b145
librustc: Fix privacy checking for cross-crate variants
2013-05-22 21:57:03 -07:00
Patrick Walton
211d038abc
librustc: Make ~Trait
two words by storing the type descriptor in the vtable.
2013-05-22 21:57:03 -07:00
Patrick Walton
db518ef68a
test: Fix tests.
2013-05-22 21:57:02 -07:00
Patrick Walton
08e561ae70
librustc: Disable borrow check debugging even when rustc is compiled with -O0.
...
This improves -O0 compile times dramatically.
2013-05-22 21:57:02 -07:00
Patrick Walton
ca9bb2d9ac
librustc: Disallow use
from reaching into impls or traits.
...
This can perhaps be restored in the future. For now this is a precursor to
making typedefs work as expected.
2013-05-22 21:57:02 -07:00
bors
291518712f
auto merge of #6677 : yjh0502/rust/smallintset, r=graydon
...
Implement SmallIntSet (refer #4984 )
2013-05-22 20:52:38 -07:00
bors
1d3e84c5d6
auto merge of #6669 : yjh0502/rust/fix_6209, r=graydon
...
Fix issue #6209 , and some related issues about constant expression
- unmatched type between arms
- unmatched type in range
2013-05-22 18:01:36 -07:00
bors
f517ed0b08
auto merge of #6686 : cmr/rust/fix-6596, r=catamorphism
...
The error message is extremely unideal.
2013-05-22 16:22:35 -07:00
Corey Richardson
5118d2f84a
Add test
2013-05-22 19:19:00 -04:00
Corey Richardson
7ccc97e5b4
Fix ICE in macros
2013-05-22 19:18:50 -04:00
Graydon Hoare
ee1b419818
revert no-longer-required workaround for mystery bug, close #3396
2013-05-22 15:35:25 -07:00
Tim Chevalier
1aae163d44
testsuite: Make main fn public
2013-05-22 14:13:42 -07:00
Tim Chevalier
fd94bd984e
testsuite: Add passing test for #4107
2013-05-22 14:13:22 -07:00
bors
4bbbae625d
auto merge of #6672 : yjh0502/rust/fix_6342, r=graydon
...
Fix #6342
2013-05-22 11:43:35 -07:00
Corey Richardson
e64339645b
Implement static_assert attribute
...
This verifies that a static item evaluates to true, at compile time.
2013-05-22 13:13:24 -04:00
Benjamin Herr
5a42481366
declare that "///" is still a doc comment, just not "////+" ( fixes #5838 )
2013-05-22 15:53:26 +02:00
Jihyun Yu
06685bacf8
add smallintset
2013-05-22 21:01:21 +09:00
bors
b6a0d40c1d
auto merge of #6671 : kud1ing/rust/patch-1, r=z0w0
2013-05-22 04:16:26 -07:00
Jihyun Yu
6c33f5044b
Fix #6342
2013-05-22 16:11:48 +09:00
kud1ing
da94580ddc
"Type :help for help", similar to ghci
2013-05-22 10:03:51 +03:00
Jihyun Yu
f8af2b50ee
fix issue #6209
2013-05-22 14:06:25 +09:00
Jyun-Yan You
499b02213d
fix arm stack alignment
2013-05-22 08:49:16 +08:00
bors
15e44381af
auto merge of #6665 : catamorphism/rust/issue-5741, r=nikomatsakis
...
r? @nikomatsakis The way we deal with unreachable expressions in trans is pretty ad hoc,
but this at least doesn't make it worse, and eliminates the LLVM
assertion failure reported in #5741 .
2013-05-21 16:13:15 -07:00
bors
799f281b43
auto merge of #6664 : catamorphism/rust/issue-3796, r=catamorphism
2013-05-21 15:07:24 -07:00
bors
02c59bcc02
auto merge of #6662 : catamorphism/rust/issue-4780, r=catamorphism
2013-05-21 14:04:27 -07:00
Tim Chevalier
8c68c4a52c
rustc: Don't generate code for unreachable expressions
...
The way we deal with unreachable expressions in trans is pretty ad hoc,
but this at least doesn't make it worse, and eliminates the LLVM
assertion failure reported in #5741 .
2013-05-21 13:15:48 -07:00
Tim Chevalier
1df8a543f1
testsuite: Add xfailed test cases
2013-05-21 13:12:31 -07:00
Tim Chevalier
1fadb97b68
testsuite: Update test for #2478 . Still xfailed
2013-05-21 12:58:27 -07:00
Tim Chevalier
b6cf84f3e0
testsuite: Test for #4780
2013-05-21 12:55:54 -07:00
bors
0252c30443
auto merge of #6658 : sanxiyn/rust/static-string-2, r=thestinger
2013-05-21 12:49:33 -07:00
bors
73597a5bd5
auto merge of #6657 : sanxiyn/rust/allocation, r=thestinger
2013-05-21 11:40:41 -07:00
Seo Sanghyeon
743e4b044c
Use static strings
2013-05-22 02:48:56 +09:00
bors
64963d6cba
auto merge of #6611 : huonw/rust/syntax-ext-no-dup, r=jbclements
...
Fixes https://github.com/mozilla/rust/issues/6578 by merging the 3 different ways to build an AST into a single `AstBuilder` trait, creating a more uniform and briefer interface.
Also, converts the `ext_ctxt` trait-object to be a plain struct, as well as renaming it to `ExtCtxt`.
Seems to make expansion slightly faster for the normal case (e.g. `libcore` and `libstd`), but slower for `librustc` (slightly) and `libsyntax` (0.3s -> 0.8s! I'm investigating this, but I'd prefer this patch to land relatively quickly.).
`git blame` suggests maybe @graydon or @erickt are familiar with this area of the code. r?
2013-05-21 10:43:17 -07:00
Seo Sanghyeon
6b525ecbda
Take string slices
2013-05-22 02:32:29 +09:00
Huon Wilson
a59bec43e3
syntax/ext: convert all AstBuilder methods to a uniform syntax.
2013-05-22 00:30:52 +10:00
Huon Wilson
6e50515530
syntax/ext: migrate build.rs functions to AstBuilder methods.
2013-05-22 00:15:36 +10:00
Seo Sanghyeon
70222b7e86
Remove unnecessary allocations flagged by lint from fuzzer
2013-05-21 23:05:45 +09:00
Huon Wilson
8c15a0ec4c
syntax/ext: collect the ast building traits into a single trait.
2013-05-22 00:04:10 +10:00
Huon Wilson
4045da9f4f
syntax/ext: modernise ext_ctxt to be CamelCase and use new.
2013-05-22 00:04:10 +10:00
Huon Wilson
eea265ea16
syntax/ext: Remove the trait-object indirection of the ext_ctxt object.
2013-05-22 00:02:37 +10:00
Seo Sanghyeon
d4724c1a17
Remove unnecessary allocations flagged by lint from rustpkg
2013-05-21 23:00:34 +09:00
Seo Sanghyeon
d543354d6c
Remove unnecessary allocations flagged by lint from rustdoc
2013-05-21 22:55:07 +09:00
Huon Wilson
8e9eba8013
syntax/ext: remove the ~str dependence of the deriving code.
2013-05-21 23:33:58 +10:00
bors
808aada1fb
auto merge of #6654 : sanxiyn/rust/accurate-span-2, r=bstrie
2013-05-21 05:37:17 -07:00
Seo Sanghyeon
258d20ea84
Correct span for unused_import
2013-05-21 19:09:22 +09:00
Seo Sanghyeon
9390cdaa8b
Correct span for expr_vec
2013-05-21 19:08:34 +09:00
bors
dc7b83d186
auto merge of #6650 : crabtw/rust/mips-rt, r=sanxiyn
...
Results of libcore and libstd tests
```
failures:
rand::tests::test_rng_seeded_custom_seed2
time::tests::run_tests
uv_ll::test::test_uv_ll_struct_size_addrinfo
uv_ll::test::test_uv_ll_struct_size_uv_timer_t
segfaults:
stackwalk::test_simple
stackwalk::test_simple_deep
```
2013-05-21 03:01:17 -07:00
bors
329d8e2622
auto merge of #6648 : alexcrichton/rust/issue-6633, r=graydon
...
Resolves #6633 and removes an unnecessary import in libcore
2013-05-21 01:04:16 -07:00
bors
5a3e320514
auto merge of #6647 : alexcrichton/rust/unnecessary-alloc, r=graydon
...
This adds a lint mode for detecting unnecessary allocations on the heap. This isn't super fancy, currently it only has two rules
1. For a function's arguments, if you allocate a `[~|@]str` literal, when the type of the argument is a `&str`, emit a warning.
2. For the same case, emit warnings for boxed vectors when slices are required.
After adding the lint, I rampaged through the libraries and removed all the unnecessary allocations I could find.
2013-05-20 23:55:20 -07:00
bors
d49a9dbc7f
auto merge of #6646 : dotdash/rust/method_lookup, r=brson
2013-05-20 22:52:22 -07:00
bors
7abcc142e5
auto merge of #6626 : brson/rust/io-upstream, r=graydon
...
r?
Mostly refactoring, and adding some of the remaining types described in #4419 .
The [`Local`](3b4ff41511/src/libcore/rt/local.rs (L17)
) trait collects some common, often unsafe patterns around task-local and thread-local values. Making all these types safe is largely the aim of #6210 .
2013-05-20 21:40:27 -07:00
Jyun-Yan You
d86a32bbb2
fix mips stack alignment
2013-05-21 11:58:30 +08:00
bors
adaae45c3e
auto merge of #6604 : bjz/rust/ptr-to-option, r=brson
2013-05-20 20:31:26 -07:00
bors
6c0a4693c9
auto merge of #6649 : brson/rust/atomic-load-align, r=graydon
2013-05-20 19:25:29 -07:00
bors
32e30aaa00
auto merge of #6576 : nikomatsakis/rust/issue-5362-tuple-indices, r=graydon
...
r? @pcwalton
2013-05-20 18:04:39 -07:00
Brian Anderson
474d9983be
rustllvm: Use target alignment for atomic load/store
2013-05-20 17:28:06 -07:00
bors
24609675eb
auto merge of #6528 : brson/rust/docs, r=brson
...
Remove the uncommon term 'object tree' in favor of 'value'.
2013-05-20 16:55:36 -07:00
bors
6d4845668f
auto merge of #6372 : brson/rust/intrinsics, r=catamorphism
...
...s
2013-05-20 15:49:45 -07:00
Brian Anderson
a246e8faf3
core::rt: Convert unsafe_borrow_io to a Local impl
2013-05-20 15:21:29 -07:00
Brian Anderson
2042696236
core::rt: Implement Local for Task
2013-05-20 15:21:29 -07:00
Brian Anderson
2f99fb8efa
core::rt: Remove local_sched module
2013-05-20 15:21:29 -07:00
Brian Anderson
06f1a64bd6
core::rt: Convert users of local_sched to Local trait
2013-05-20 15:21:09 -07:00
Brian Anderson
18fab45aab
core::rt: Make local_sched a wrapper around Local
2013-05-20 15:20:50 -07:00
Brian Anderson
71aa6b6631
core::rt: Move more TLS functionality into local_ptr
2013-05-20 15:20:50 -07:00
Brian Anderson
97c2fd1a96
core::rt: Move some TLS functions from local_sched to local_ptr
2013-05-20 15:20:50 -07:00
Brian Anderson
86ba457349
rt: Rename rust_initialize_global_state to rust_initialize_rt_tls_key
2013-05-20 15:20:50 -07:00
Brian Anderson
f59fcd5d5f
core::rt: Store Task as a ~ pointer
2013-05-20 15:20:50 -07:00
Brian Anderson
43c6f32ece
core::rt: Add Local trait
2013-05-20 15:20:50 -07:00
Brian Anderson
b0722c55f8
core:rt:: Rename LocalServices to Task
2013-05-20 15:20:49 -07:00
Brian Anderson
fa18a861fb
core::rt: Queues MessageQueue and WorkQueue are cloneable
2013-05-20 15:20:49 -07:00
Brian Anderson
d2a1378ed8
core::rt: Add MessageQueue type
...
This is the queue used to send messages to Schedulers
2013-05-20 15:20:49 -07:00
Brian Anderson
ee06ed2bfd
core::rt: Put a lock on the work queue
2013-05-20 15:20:49 -07:00
Brian Anderson
f03c9bd08c
core::rt: Rename WorkQueue methods, remove extra push method
2013-05-20 15:20:49 -07:00
Brian Anderson
7ffd523354
core: Update clone docs
2013-05-20 15:19:35 -07:00
bors
54eafc009d
auto merge of #6639 : osaut/rust/arc-clean, r=brson
...
* Add ARC::get method and implements the function from it.
* Add an example showing a simple use of ARC.
Update PR #6622 to avoid git noise.
I will remove the function get later.
2013-05-20 14:46:45 -07:00
Brian Anderson
7bd4217766
Replace all uses of rust-intrinsic ABI with calls to unstable::intrinsics
2013-05-20 14:41:56 -07:00
Alex Crichton
82fa0018c8
Remove all unnecessary allocations (as flagged by lint)
2013-05-20 16:10:40 -05:00
Alex Crichton
074799b4c5
Implement a lint mode to detect unnecessary allocations
2013-05-20 16:08:50 -05:00
John Clements
999f692645
getting rid of interner_key! macro
2013-05-20 11:49:21 -07:00
John Clements
fc4f304ef9
hygiene infrastructure.
...
- added a hash table to memoize rename and mark operations.
- added rename, mark, and resolve fold fns
2013-05-20 11:49:21 -07:00
John Clements
b621820dc4
detect unused attrs in one more place, allow parsing to continue for all
...
changed a bunch of fatal()'s into err()'s, to allow parsing to proceed.
2013-05-20 11:49:20 -07:00
John Clements
05ab83eea8
parser comment
2013-05-20 11:49:20 -07:00
John Clements
975f264983
refactoring test functions
2013-05-20 11:49:20 -07:00
Alex Crichton
15f97acdc8
Correctly track the source of imports with the same name
2013-05-20 13:02:08 -05:00
Björn Steinbrink
19dc72809d
Optimize the lookup of traits containing a given method
...
Currently, trait_info is a hashmap that allows a quick lookup of all
methods contained in a given trait, but we actually only use it to
lookup traits that contain a given method. Adjusting the map to support
the lookup we actually need gives a nice speed boost, reducing the time
required for the resolution step for librustc from ~2.6s to ~1.0s on my
box.
2013-05-20 19:50:30 +02:00
bors
f3b458b5c5
auto merge of #6644 : steveklabnik/rust/remove_unsafe_warning, r=bstrie
...
Since a snapshot was done last night, these are good to go.
2013-05-20 10:31:44 -07:00
Björn Steinbrink
b5be7d8a2c
Avoid range checks in HashMap::each()
2013-05-20 18:42:31 +02:00
bors
84233c0b4b
auto merge of #6643 : sanxiyn/rust/legacy-modes, r=bstrie
2013-05-20 09:34:44 -07:00
Steve Klabnik
eb3f47a40a
Remove two warnings about unneccesary safe blocks.
...
Since a snapshot was done last night, these are good to go.
2013-05-20 09:17:19 -07:00
Seo Sanghyeon
17dfebf883
Remove legacy_modes
2013-05-21 00:41:56 +09:00
Brendan Zabarauskas
eef03c39cf
Update to stop unsolicited copying and mark methods as unsafe
2013-05-20 22:07:35 +10:00
Björn Steinbrink
09efd472a9
Remove outdated function transmute_for_stage0
...
The function was a workaround for bootstrapping that isn't required
anymore and just degrades hashmap performance, as it doesn't get inlined
cross-crate and turns a no-op into a call.
2013-05-20 12:10:55 +02:00
Olivier Saut
3f232bc4a0
Add ARC::get method and implements the function from it. Add an example showing a simple use of ARC.
2013-05-20 12:07:14 +02:00
Olivier Saut
a9c7d3f775
Typo corrected and updated copyright years
2013-05-20 12:06:37 +02:00
bors
2e6cda254a
auto merge of #6635 : brson/rust/snapshot, r=brson
2013-05-20 02:46:36 -07:00
bors
ab46a38039
auto merge of #6632 : steveklabnik/rust/remove_more_warnings, r=thestinger
...
With this, the build is almost 100% warning free.
One more can be fixed after the next snapshot, and there's one other that I filed an issue about already.
2013-05-20 01:37:39 -07:00
bors
ea0640764a
auto merge of #6629 : steveklabnik/rust/remove_uvio_warnings, r=catamorphism
...
Mostly of the 'unused imports' kind.
I'm unsure about the 'no unsafe' bit, but that's what it says...
2013-05-20 00:25:40 -07:00
Brian Anderson
66319b0278
Register snapshots
2013-05-19 23:34:32 -07:00
bors
d019e145c0
auto merge of #6621 : steveklabnik/rust/expand_reader_docs, r=thestinger
...
Had a conversation with @cmr in IRC about some places that these
docs were confusing. The functions that advance the stream now say so.
In addition, I think that calling out the similarities to familliar C
functions should help people coming from other languages.
2013-05-19 23:13:36 -07:00
bors
3a481c0f88
auto merge of #6627 : steveklabnik/rust/remove_warnings, r=thestinger,catamorphism
...
These imports were not being used.
2013-05-19 21:58:38 -07:00
Steve Klabnik
dcc2879266
Add a few 'function's.
...
This is now 100% consistent. Whoops!
2013-05-19 22:40:13 -06:00
Steve Klabnik
d3f70b141a
Fix many warnings.
2013-05-19 21:32:32 -07:00
bors
0b39bc275e
auto merge of #6624 : steveklabnik/rust/io_prelude, r=catamorphism
...
Let's actually give a top-level description of what's in here, eh?
2013-05-19 20:49:42 -07:00
Steve Klabnik
dc57d15b69
Remove more warnings.
...
Mostly of the 'unused imports' kind.
2013-05-19 20:00:39 -07:00
bors
cab9249c62
auto merge of #6625 : cmr/rust/constops, r=Aatch
2013-05-19 19:40:39 -07:00
Steve Klabnik
06d196ad5f
Removing some warnings from logging.rs
...
These imports were not being used.
2013-05-19 19:40:36 -07:00
Steve Klabnik
91d3e7f1a0
Fix wording per feedback
...
Thanks @catamorphism!
2013-05-19 20:39:02 -06:00
Corey Richardson
808c5b8d4e
Test fixes, use LLVMConstFCmp in ConstFCmp
2013-05-19 22:09:32 -04:00
Corey Richardson
b97642758f
Fix LLVMConst{I,F}Cmp
2013-05-19 22:09:32 -04:00
Corey Richardson
e42fcb958c
Implement unimplemented const binops
2013-05-19 22:09:32 -04:00
Steve Klabnik
b1e805694b
Add a better introduction for the io module.
...
Let's actually give a top-level description of what's in here, eh?
2013-05-19 19:02:55 -07:00
bors
9283dfe0b4
auto merge of #6619 : steveklabnik/rust/stdout_docs, r=thestinger
...
Added docs for stdout, stderr, print, and println.
2013-05-19 18:22:33 -07:00
Tom Lee
e3a91f60c5
Explain an odd conditional check.
2013-05-19 17:07:18 -07:00
Tom Lee
cac97d7ee5
Remove unused variable.
2013-05-19 17:07:18 -07:00
Tom Lee
e02716e6d3
Reexport static trait methods on traits in the same module.
2013-05-19 17:07:18 -07:00
Steve Klabnik
5877727285
Fix trailing whitespace
2013-05-19 15:31:19 -07:00
Steve Klabnik
1065a92bf3
Elaborate a bit in the Reader docs regarding stream position.
...
Had a conversation with @cmr in IRC about some places that these
docs were confusing. The functions that advance the stream now say so.
In addition, I think that calling out the similarities to familliar C
functions should help people coming from other languages.
2013-05-19 12:57:00 -07:00
Steve Klabnik
929050de73
Added note about prelude inclusion.
2013-05-19 12:42:00 -07:00
Steve Klabnik
a389d86fa4
Add docs for stdin in core::io.
2013-05-19 12:33:01 -07:00
Steve Klabnik
e0b1bdca5b
Add additional documentation in core::io.
...
Added docs for stdout, stderr, print, and println.
2013-05-19 12:06:39 -07:00