Commit Graph

16066 Commits

Author SHA1 Message Date
Alex Crichton
998fececd6 Stop using the '<->' operator 2013-05-10 22:51:06 -04:00
Alex Crichton
7d22437ecd Implement util::swap without the '<->' operator 2013-05-10 22:51:06 -04:00
bors
c49cf8b330 auto merge of #6205 : brson/rust/flate, r=brson
r? @graydon

I don't think this is necessary in core.
2013-05-10 19:41:00 -07:00
bors
3e0400fb86 auto merge of #6223 : alexcrichton/rust/issue-6183, r=pcwalton
Closes #6183.

The first commit changes the compiler's method of treating a `for` loop, and all the remaining commits are just dealing with the fallout.

The biggest fallout was the `IterBytes` trait, although it's really a whole lot nicer now because all of the `iter_bytes_XX` methods are just and-ed together. Sadly there was a huge amount of stuff that's `cfg(stage0)` gated, but whoever lands the next snapshot is going to have a lot of fun deleting all this code!
2013-05-10 17:56:02 -07:00
Alex Crichton
606bd75586 Fix merge "failures" 2013-05-10 19:20:21 -04:00
Alex Crichton
b05aae2d41 test: Use the new for protocol 2013-05-10 19:20:20 -04:00
Brian Anderson
7652f3ddb8 Move flate from core to std 2013-05-10 16:00:26 -07:00
Samuel Chase
fd5a3520d5 Removed test_hashmap() for the time, being. All tests pass with make check. 2013-05-11 04:00:00 +05:30
Lenny222
52610c3980 more back-ticks, less colons 2013-05-10 23:34:20 +02:00
Samuel Chase
d807f00bfd Add to_str() for HashMaps, and some basic tests as well. 2013-05-11 02:14:36 +05:30
Corey Richardson
7d4bb90e76 Remove redundant import error 2013-05-10 16:23:12 -04:00
bors
d546493096 auto merge of #6380 : pcwalton/rust/core-text-ice, r=pcwalton 2013-05-10 13:10:54 -07:00
James Tranovich
3db74ddd2e Fixes rusti crashes.
Don't pass the binary name to the LLVMRustExecuteJIT closure; doesn't
seem to be needed, anyhow.
2013-05-10 10:51:00 -07:00
bors
dba9337a48 auto merge of #6366 : catamorphism/rust/issue-3920, r=catamorphism
r? @nikomatsakis as per #3920
2013-05-10 05:52:48 -07:00
Youngsoo Son
24ef88cee9 renamed str::from_slice to str::to_owned 2013-05-10 20:08:56 +09:00
bors
fdf601eaf3 auto merge of #6358 : crabtw/rust/mips-segstk, r=brson
I changed ```RED_ZONE_SIZE``` to ```RZ_MAC_32``` because of stack canary failure.
Here is a LLVM patch for MIPS segmented stacks.
http://people.cs.nctu.edu.tw/~jyyou/rust/mips-segstk.patch

Current test results
```
failures:
    rand::tests::test_rng_seeded_custom_seed2
    run::tests::test_forced_destroy_actually_kills
    run::tests::test_unforced_destroy_actually_kills
    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:
    rt::io::option::test::test_option_writer_error
    rt::local_services::test::unwind
    rt::sched::test_swap_tasks_then
    stackwalk::test_simple
    stackwalk::test_simple_deep
```
2013-05-10 04:07:50 -07:00
bors
6da2c989ba auto merge of #6329 : sonwow/rust/issue-6306, r=ILyoan
Fix for #6306
2013-05-10 03:04:51 -07:00
Huon Wilson
912a352712 Add some positive tests for dtor struct destructuring 2013-05-10 19:42:24 +10:00
Youngsoo Son
b7da975049 renamed vec::from_slice to vec::to_owned 2013-05-10 18:38:54 +09:00
Huon Wilson
81e06a5259 Issue number on xfailed test 2013-05-10 19:30:42 +10:00
bors
e9d0018abf auto merge of #6356 : dotdash/rust/strinterner, r=pcwalton
&str can be turned into @~str on demand, using to_owned(), so for
strings, we can create a specialized interner that accepts &str for
intern() and find() but stores and returns @~str.
2013-05-10 01:55:54 -07:00
Huon Wilson
f6743fea70 librustc: allow destructuring of structs with destructors if the pattern has no moves.
This check only works for `match`s, the checks (incorrectly) do not run for patterns in
`let`s.
2013-05-10 18:34:19 +10:00
Youngsoo Son
4400bbd72a A test file is fixed 2013-05-10 16:55:59 +09:00
bors
f04eb37c7e auto merge of #6347 : cmr/rust/unknown_module_resolve_error, r=catamorphism
This improves error reporting for the following class of imports:

```rust
use foo::bar;
```

Where foo, the topmost module, is unresolved. It now results in:

```text
/tmp/foo.rs:1:4: 1:7 error: unresolved import.  perhapsyou forgot an 'extern mod foo'?
/tmp/foo.rs:1 use foo::bar;
                  ^~~
/tmp/foo.rs:1:4: 1:12 error: failed to resolve import: foo::bar
/tmp/foo.rs:1 use foo::bar;
                  ^~~~~~~~
error: failed to resolve imports
error: aborting due to 3 previous errors
```

This is the first of a series of changes I plan on making to unresolved name error messages.
2013-05-10 00:52:52 -07:00
bors
3e106cf2c2 auto merge of #6339 : alexcrichton/rust/unsafe-cvec, r=catamorphism
As noted by @jwise [here](52445129fd (commitcomment-3172192)), it's probably a good idea to keep these unsafe.

The lint check won't warn about these because it ignore `unsafe fn` declarations.
2013-05-09 23:58:53 -07:00
Alex Crichton
cdc266e47d Fix deriving(IterBytes) to use the new for-loop protocol 2013-05-10 02:46:19 -04:00
Alex Crichton
b01a40d459 rustpkg: Use the new for protocol 2013-05-10 02:46:19 -04:00
Alex Crichton
a87db3e2cd rustc: Use the new for protocol 2013-05-10 02:46:19 -04:00
Alex Crichton
5eb6d19803 syntax: Use the new for protocol 2013-05-10 02:46:18 -04:00
Alex Crichton
3ce9dba677 std: Use the new for protocol 2013-05-10 02:46:18 -04:00
Alex Crichton
28256052a4 core: Use the new for protocol 2013-05-10 02:46:18 -04:00
Alex Crichton
0cde8ba684 Implement a new protocol for for loops that's much more easily composable 2013-05-10 02:46:18 -04:00
Tom Lee
9042e1e8de Include static methods on traits in reexports. 2013-05-09 23:00:03 -07:00
Youngsoo Son
c8e93edf55 Move core::task::local_data to core::local_data 2013-05-10 11:42:45 +09:00
Patrick Walton
923450d00c librustc: Fix ICE in core-text resulting from dynamic borrowing. rs=blocking-servo 2013-05-09 19:39:07 -07:00
bors
ad8e236f32 auto merge of #6336 : nikomatsakis/rust/issue-6308-closure-bounds, r=nikomatsakis
Use a bitset to represent built-in bounds. There are several places in the language where only builtin bounds (aka kinds) will be accepted, e.g. on closures, destructor type parameters perhaps, and on trait types.

r? @brson
2013-05-09 17:50:21 -07:00
Corey Richardson
9cbab89076 fix formating and tests 2013-05-09 20:15:59 -04:00
Corey Richardson
0afcd34215 compile-fail test for new unresolved import error 2013-05-09 20:15:27 -04:00
Tim Chevalier
ca18ed8f64 testsuite: Test that init and forget are both unsafe 2013-05-09 15:28:29 -07:00
Tim Chevalier
cd235d4230 core: Make intrinsics::forget unsafe, too 2013-05-09 15:28:28 -07:00
Tim Chevalier
646f16d7e4 core: Make intrinsics::init unsafe
as per #3920
2013-05-09 15:27:38 -07:00
Niko Matsakis
9482ed729e test: Add two tests for issue #6272. 2013-05-09 17:25:17 -04:00
bors
f547a671dc auto merge of #6373 : nikomatsakis/rust/issue-6355-perf-regression, r=graydon
Fix #6355 and #6272---we were not giving the correct index to the derefs that occur as part of the rooting process, resulting in extra copies and generally bogus behavior. Haven't quite produced the right test for this, but I thought I'd push the fix in the meantime. Test will follow shortly.

r? @graydon
2013-05-09 13:45:49 -07:00
Niko Matsakis
78520867b9 rustc: Add EnumSet tests 2013-05-09 16:28:25 -04:00
Corey Richardson
fa5baf399d Tweak error message
Recommendation of @kud1ing
2013-05-09 16:09:01 -04:00
Corey Richardson
d3ca9c61a0 Better error message for certain classes of unresolved imports 2013-05-09 16:08:53 -04:00
Niko Matsakis
e18ed77b72 Remove remnants of mutable fields from mem_categorization, borrowck. 2013-05-09 15:58:41 -04:00
Niko Matsakis
15164cc6a6 Issue the correct deref count for the implicit deref that occurs
as part of an autoslice operation (#6272).

Fixes #6272.
2013-05-09 15:58:02 -04:00
bors
7675856253 auto merge of #6354 : Aatch/rust/uninit-intrinsic, r=graydon
Adds an `uninit` intrinsic.

It's just an empty function, so llvm optimizes it down to nothing.

I changed all of the `init` intrinsic usages to `uninit` where it seemed appropriate to.
2013-05-09 12:37:00 -07:00
Tim Chevalier
07cd5a850c testsuite: Add two test cases (one xfailed) 2013-05-09 12:04:22 -07:00
bors
ce9c0225c4 auto merge of #6349 : thestinger/rust/explicit_copy, r=thestinger
I removed some of the copies, but most are just made explicit. The usage in `libcore` was already fixed, but the attribute was only set to warn (not removed).
2013-05-09 11:18:43 -07:00
Daniel Micay
2bc12635a2 remove vecs_implicitly_copyable from libstd/libcore 2013-05-09 14:00:53 -04:00
bors
7a4c6e587d auto merge of #6325 : sammykim/rust/lint-name, r=graydon
Fix #3525.
2013-05-09 08:54:38 -07:00
Niko Matsakis
dc2ca9d883 Refactor representation of bounds to separate out BuiltinBounds into
its own type. Use a bitset to represent built-in bounds. There
are several places in the language where only builtin bounds (aka kinds)
will be accepted, e.g. on closures, destructor type parameters perhaps,
and on trait types.
2013-05-09 11:39:06 -04:00
Lenny222
e3230330b7 back-ticks 2013-05-09 15:46:32 +02:00
Björn Steinbrink
1393c3a3f4 Use a specialized string interner to reduce the need for owned strings
&str can be turned into @~str on demand, using to_owned(), so for
strings, we can create a specialized interner that accepts &str for
intern() and find() but stores and returns @~str.
2013-05-09 14:40:19 +02:00
Alex Crichton
d6efbad33f Mark c_vec functions as unsafe again 2013-05-09 07:40:19 -04:00
James Miller
414970c46f Add intrinsic declaration where I missed them 2013-05-09 23:16:07 +12:00
James Miller
57509709b4 Make staged versions of the functions that use uninit 2013-05-09 23:05:17 +12:00
bors
ca95e7f94e auto merge of #6345 : seanmoon/rust/fix-typos, r=sanxiyn
Hi there,

Really enjoying Rust. Noticed a few typos so I searched around for a few more--here's some fixes.

Ran `make check` and got `summary of 24 test runs: 4868 passed; 0 failed; 330 ignored`.

Thanks!

Sean
2013-05-09 03:51:32 -07:00
James Miller
f5ab112e6b Replace init() with uninit() where appropriate 2013-05-09 22:41:54 +12:00
James Miller
050c744c23 Add uninit intrinsic 2013-05-09 22:23:38 +12:00
bors
5617916726 auto merge of #6343 : thestinger/rust/new_iter, r=brson
it's silly to duplicate the namespace in the fn name
2013-05-09 02:45:31 -07:00
Jyun-Yan You
c2bf9bf9fe improve MIPS backend and implement segmented stacks 2013-05-09 16:51:42 +08:00
bors
fda176b070 auto merge of #6337 : thestinger/rust/fix_region, r=thestinger
also removes unnecessary casts from the RcMut implementation
2013-05-09 00:15:33 -07:00
Steven Stewart-Gallus
72c9aab0d2 Created utility uninhabited type
In this commit I added a useful utility type, named Void, that encapsulates the
doable but annoying job of creating an uninhabited type. As well, a function on
that type, named absurd, was created which is useful for ignoring the result of
matching on that type. No unit tests were created because it is not possible to
create an instance of this type to test the usage of.

This type is useful because it is like NonCopyable in that it can be used to
create a type with special characteristics without special bloat. For instance,
instead of typing pub struct PhantomType { priv contents : () } for each void
type one may want to use one can simply type pub struct PhantomType (Void);.
This type make such special cases much easier to write.
2013-05-08 23:29:11 -07:00
bors
936c07dcf0 auto merge of #6328 : recrack/rust/rename_cleanup, r=sanxiyn
rename vec::each(var) to var.each

> librustc, libsyntax, libstd, librustdoc, libcore
2013-05-08 22:54:37 -07:00
Youngmin Yoo
c02064d153 librustc: rename vec::each(var) to var.each 2013-05-09 14:20:04 +09:00
Youngmin Yoo
841f4ceaf4 libsyntax: rename vec::each(var) to var.each 2013-05-09 14:20:04 +09:00
Youngmin Yoo
d4fa0f1485 libstd: rename vec::each(var) to var.each 2013-05-09 14:20:04 +09:00
Youngmin Yoo
472d9f33df librustdoc: rename vec::each(var) to var.each 2013-05-09 14:17:18 +09:00
Youngmin Yoo
9a292b3da5 libcore: rename vec::each(variable) to variable.each 2013-05-09 14:17:18 +09:00
Huon Wilson
ea5c413427 Perform expansion before stripping/building a test harness.
This allows macros to create tests and benchmarks.
2013-05-09 15:15:54 +10:00
bors
101d4bf8b2 auto merge of #6332 : huonw/rust/std-base64-match, r=nikomatsakis 2013-05-08 21:45:37 -07:00
Sangeun Kim
1b4e375046 Add space 2013-05-09 10:44:27 +09:00
bors
3bbbb314ee auto merge of #6327 : z0w0/rust/rm-notest, r=brson
Makes it more consistent, imo.
2013-05-08 18:15:41 -07:00
Patrick Walton
d20e63ab65 test: Fix modes in the benchmarks. 2013-05-08 17:04:03 -07:00
Patrick Walton
85d9409b20 test: Fix broken test 2013-05-08 17:04:03 -07:00
Patrick Walton
36fbf71686 llvm: Unrevert change 2013-05-08 17:04:03 -07:00
Patrick Walton
72868450df libcore: Fix more merge fallout. 2013-05-08 17:04:03 -07:00
Patrick Walton
3affc6ed40 librustc: Fix merge fallout. 2013-05-08 17:04:02 -07:00
Patrick Walton
9d011ebf67 test: Fix tests. 2013-05-08 17:04:02 -07:00
Patrick Walton
16a0125e41 libcore: Fix tests. 2013-05-08 17:04:01 -07:00
Patrick Walton
49a66a5c5a librustc: Stop parsing modes and remove them entirely from the language 2013-05-08 17:04:01 -07:00
Patrick Walton
99daec602f librustc: Fix merge fallout. 2013-05-08 17:04:00 -07:00
Patrick Walton
278b487cab test: Fix tests and the pipe compiler 2013-05-08 17:04:00 -07:00
Patrick Walton
db4573a776 librustc: Remove mutable fields from the language.
They're still parsed though, to get through bootstrapping.
2013-05-08 17:04:00 -07:00
Patrick Walton
c7522417d4 libstd: Remove some residual mutable fields 2013-05-08 17:04:00 -07:00
Patrick Walton
d12d25534b libcore: Remove more mutable fields from comm 2013-05-08 17:03:59 -07:00
Patrick Walton
8919f32f83 Remove mutable fields from comm by using casts. Also mark the cast in cell. 2013-05-08 17:03:59 -07:00
Patrick Walton
56507798d9 libcore: Remove mutable fields from repr 2013-05-08 17:03:59 -07:00
Patrick Walton
6a44482b17 libcore: Remove mutable fields from pipes 2013-05-08 17:03:59 -07:00
Patrick Walton
803a4f45fa libcore: Remove mutable fields from the task builder API 2013-05-08 17:03:59 -07:00
Patrick Walton
226ee7d86f libcore: Remove mutable fields from task::spawn 2013-05-08 17:03:58 -07:00
Patrick Walton
4dc1c2976d libcore: Remove mutable fields from hash 2013-05-08 17:03:58 -07:00
Patrick Walton
2961997f16 libcore: Remove mutable fields from os and ptr 2013-05-08 17:03:58 -07:00
Patrick Walton
b2d1ac100f libcore: Remove mutable fields from rand. 2013-05-08 17:03:58 -07:00
Patrick Walton
ee78d811e4 libstd: Start warning about mutable fields, now that they only exist in stage0 2013-05-08 17:03:58 -07:00
Patrick Walton
bba0680cb0 libstd: Remove mutable fields from future and par 2013-05-08 17:03:58 -07:00
Patrick Walton
92d2ec4d32 libstd: Remove mutable fields from flatpipes and io_util 2013-05-08 17:03:58 -07:00
Patrick Walton
da2ac90812 libstd: Remove mutable fields from fileinput and net_tcp 2013-05-08 17:03:57 -07:00
Daniel Micay
0c02d0f92e rename iter::iter_to_vec to iter::to_vec
it's silly to duplicate the namespace in the fn name
2013-05-08 18:49:32 -04:00
bors
5a65f51d66 auto merge of #6214 : sanxiyn/rust/simd-2, r=graydon
At the moment this only includes type checking and there is no code generation support yet. I wanted to get the design reviewed first.

From discussion with @graydon at #5841, re-implemented as `#[simd]` attribute on structs.

Progressing towards #3499.
2013-05-08 14:09:38 -07:00
Daniel Micay
044abef0e5 fix incorrect region code based on the old 'self
also removes unnecessary casts from the RcMut implementation
2013-05-08 16:00:49 -04:00
bors
65ded84d20 auto merge of #6119 : brson/rust/main, r=brson
r? @ILyoan

This pulls all the logic for discovering the crate entry point into a new pass (out of resolve and typeck), then changes it so that main is only looked for at the crate level (`#[main]` can still be used anywhere).

I don't understand the special android logic here and worry that I may have broken it.
2013-05-08 12:24:39 -07:00
Brian Anderson
3970d02ec5 rustc: Fix the logic for finding the Android main function
I don't understand what this logic is doing
2013-05-08 12:03:15 -07:00
Sean Moon
bd4ee7c7d2 Fix typos 2013-05-09 02:34:47 +09:00
bors
b21f37c818 auto merge of #6323 : brson/rust/nullary, r=thestinger
There's no need to delegate to C to call the Rust main function.
2013-05-08 08:39:40 -07:00
bors
8f94ac6118 auto merge of #6267 : huonw/rust/syntax-deriving-generaliseder, r=nikomatsakis
This "finishes" the generic deriving code (which I started in #5640), in the sense it supports everything that I can think of being useful. (Including lifetimes and type parameters on methods and traits, arguments and return values of (almost) any type, static methods.)

It closes #6149, but met with #6257, so the following doesn't work:
```rust
#[deriving(TotalEq)]
struct Foo<'self>(&'self int);
```
(It only fails for `TotalOrd`, `TotalEq` and `Clone`, since they are the only ones that call a method directly on sub-elements of the type, which means that the auto-deref interferes with the pointer.)

It also makes `Rand` (chooses a random variant, fills the fields with random values, including recursively for recursive types) and `ToStr` (`x.to_str()` is the same as `fmt!("%?", x)`) derivable, as well as converting IterBytes to the generic code (which made the code 2.5x shorter, more robust and added support for tuple structs).

({En,De}codable are trickier, so I'll convert them over later.)
2013-05-08 07:24:39 -07:00
Huon Wilson
ad5ee00c93 libstd: convert chained ifs to a match in base64. 2013-05-08 23:50:15 +10:00
Huon Wilson
08c8054466 testsuite: xfail tests for windows 2013-05-08 23:30:12 +10:00
bors
37becd887e auto merge of #6321 : ILyoan/rust/test4350, r=z0w0 2013-05-08 06:15:39 -07:00
bors
b6f9295654 auto merge of #6317 : brson/rust/durable, r=z0w0
#6312
2013-05-08 05:03:38 -07:00
Zack Corr
cb66d8948a Remove #[cfg(notest)] and use #[cfg(not(test))] to cooincide with #[cfg(debug)] 2013-05-08 21:11:23 +10:00
bors
83838aa429 auto merge of #6311 : indutny/rust/fix/handle-io-fread-errors, r=z0w0
When, occasionally, trying to read directory instead of file, `fread()`
returns `EISDIR` error. And, considering, absence of error handling,
`read_whole_stream()` just loops indefinitely.
2013-05-08 03:54:38 -07:00
bors
1d7a136145 auto merge of #6309 : nikomatsakis/rust/issue-3678-type-of-extern-fns, r=nikomatsakis
Lift restriction on calling extern C functions, and propagate the ABI as part of the type of an extern fn. cc #3678
2013-05-08 02:42:37 -07:00
bors
e6529c36af auto merge of #6307 : brson/rust/rng2, r=brson
Closes #6280
2013-05-08 01:33:38 -07:00
Sangeun Kim
dc48a558b6 Show lint names 2013-05-08 17:23:48 +09:00
bors
625e518ffe auto merge of #6305 : thestinger/rust/rc, r=nikomatsakis 2013-05-08 00:21:38 -07:00
bors
86500fbb13 auto merge of #6297 : sammykim/rust/static-lint-table, r=luqmana 2013-05-07 23:18:39 -07:00
Brian Anderson
80061ecb1d rt: Remove rust_call_nullary_fn
There's no need to delegate to C to call the Rust main function.
2013-05-07 23:01:05 -07:00
Seo Sanghyeon
eb5fa06113 Move core::simd to core::unstable::simd 2013-05-08 14:37:18 +09:00
ILyoan
1813ab594d testsuite: update a test for #4350 2013-05-08 13:36:20 +09:00
bors
5a1afaf581 auto merge of #6303 : nikomatsakis/rust/issue-4666-test, r=nikomatsakis
existing tests. The bug itself was fixed as part of recent borrowck
reform.

Fixes #4666.
2013-05-07 20:30:37 -07:00
bors
3c4b32cdbe auto merge of #6259 : Aatch/rust/vimfile, r=bstrie
`colorcolumn` is now set with `setlocal`, so it doesn't infect the entire session.

`conceal` support is now opt-in, not opt-out. I haven't found anybody that likes it or cares either way.

The indent file now uses `cindent` with appropriate `cinoptions` and `cinkeys`. Auto-indenting an entire file mostly gets the right thing now, with structs and enums not being affects like before. Defaults to the hanging indent style, unless the first argument is on a new line.

There were some keywords in the syntax file that I've never seen (and have been used as identifiers in some tests) so they have been commented out.
2013-05-07 19:21:37 -07:00
Sangeun Kim
356ebe8792 extranous thing is removed 2013-05-08 10:42:47 +09:00
Brian Anderson
3df7ed15b7 Remove Durable from the language 2013-05-07 17:50:42 -07:00
Brian Anderson
1755eec87f test: Replace Durable with 'static 2013-05-07 17:50:27 -07:00
bors
d35eb6e1ee auto merge of #6302 : nikomatsakis/rust/issue-6141-leaking-owned-fn, r=brson
When autoborrowing a fn in trans, adjust the type of the datum to be `&fn`.

Fixes #6141.

r? @brson
2013-05-07 17:30:38 -07:00
bors
847552f48b auto merge of #6301 : bjz/rust/numeric-traits, r=pcwalton
This is part of the redesign of the numeric traits tracked in issue #4819.

Renamed:

- `Exponential::expm1` -> `Float::exp_m1` - for consistency with underscore usage elsewhere
- `Exponential::log` -> `Exponential::ln` - a less ambiguous name for the natural logarithm
- `{float, f64, f32}::logarithm` -> `Exponential::log` - for arbitrary base logarithms
- `Real::log_2` -> `Real::ln_2`  - for consistency with `ln`
- `Real::log_10` -> `Real::ln_10` - for consistency with `ln`

Added:

- `Signed::abs_sub` - wraps libm's `fdim` function
- `Float::is_normal` - returns `true` if the number is neither zero, infinite, subnormal or NaN
- `Float::classify` - returns the floating point category of the number
- `Float::ln_1p` - returns the natural logarithm of the number plus one
2013-05-07 16:18:37 -07:00
James Miller
80b2926357 General fixes for vim
Makes colorcolumn setlocal instead of set.
Makes conceal opt-in.
Removes the seem-to-be obsolete old keywords/types
2013-05-08 11:16:27 +12:00
James Miller
0addefa68a Improved vim indent file for rust 2013-05-08 11:16:27 +12:00
Brian Anderson
d8ef723d49 rustc: Replace Durable with 'static 2013-05-07 15:30:57 -07:00
Brian Anderson
ccc4c1a5e0 std: Replace Durable with 'static 2013-05-07 15:30:40 -07:00
Brian Anderson
398cd18bfe core: Replace Durable with 'static 2013-05-07 14:43:48 -07:00
Fedor Indutny
db1a274bf5 io: handle fread() errors
When, occasionally, trying to read directory instead of file, `fread()`
returns `EISDIR` error. And, considering, absence of error handling,
`read_whole_stream()` just loops indefinitely.
2013-05-08 01:04:41 +04:00
bors
45ae3402e0 auto merge of #6294 : sonwow/rust/renamed-test, r=thestinger
Renamed test
2013-05-07 13:57:42 -07:00
Brian Anderson
6bcc3a6c57 Add some tests for local data + borrowed pointers 2013-05-07 13:53:25 -07:00
bors
452817b854 auto merge of #6292 : thestinger/rust/cleanup, r=brson 2013-05-07 12:42:41 -07:00
Brian Anderson
3b6a32d7c9 core::rt: Add a test that rng works with new tasks 2013-05-07 12:08:03 -07:00
Brian Anderson
21aaa7fb13 rt: Eliminate the dependency on rust_kernel from rust_rng 2013-05-07 12:08:03 -07:00
Brian Anderson
4cd51c416b rt: Move win32_require out of the rust_kernel type
This is only used on rust_rng, which I am trying to extricate from
the kernel.
2013-05-07 12:08:00 -07:00
bors
5063928300 auto merge of #6290 : brson/rust/issue-3707, r=thestinger
This issue has been fixed in passing.
2013-05-07 11:33:44 -07:00
bors
19d2ba3383 auto merge of #6254 : alexcrichton/rust/issues-5311-4490-better-foldl, r=graydon
Closes #5311 and #4490.

This doesn't change `vec.foldl` because that's still part of `old_iter`, although I could change that as well if necessary.
2013-05-07 10:12:40 -07:00
Seo Sanghyeon
0ed4495ac4 Generate LLVM SIMD vector types 2013-05-08 02:09:19 +09:00
Daniel Micay
96eb1e50a4 arc: mark RWARC as non-Const 2013-05-07 13:03:40 -04:00
Daniel Micay
43165b54e0 rc: remove the managed pointer workaround 2013-05-07 13:02:56 -04:00
bors
7b3e036252 auto merge of #6282 : alexcrichton/rust/issue-5517-add-test, r=thestinger
It appears the cause of #5517 was fixed in 0dc6c414, so adding a test so the issue can be closed.
2013-05-07 09:03:42 -07:00
Seo Sanghyeon
784e8369ca Remove trailing whitespace 2013-05-08 01:01:31 +09:00
Niko Matsakis
6af447a271 Add test for #4666, which didn't *quite* seem to be covered by
existing tests. The bug itself was fixed as part of recent borrowck
reform.

Fixes #4666.
2013-05-07 11:59:38 -04:00
Niko Matsakis
11f7cb26c2 When autoborrowing a fn in trans, adjust the type of the datum to be &fn.
Fixes #6141.
2013-05-07 11:41:27 -04:00
Seo Sanghyeon
0e052f5685 Add SIMD vector type tests 2013-05-07 23:35:33 +09:00
Seo Sanghyeon
c5a7be624a Add core::simd and define SIMD vector types 2013-05-07 23:35:33 +09:00
Seo Sanghyeon
f3217a5c9c Check SIMD vector types 2013-05-07 23:35:33 +09:00
Seo Sanghyeon
8e0c6fa5b6 Port IRBuilder::CreateVectorSplat 2013-05-07 23:29:19 +09:00
bors
38a6a7a394 auto merge of #6276 : brson/rust/issue-6122, r=graydon 2013-05-07 06:06:42 -07:00
bors
154f3b00e0 auto merge of #6271 : pnkfelix/rust/issue6009-condition-pub-priv-variants, r=graydon
@brson: r?  [please ignore the other one that was accidentally based off master due to back-button-bugs in github.com]

My goal is to resolve the question of whether we want to encourage (by example) consistent use of pub to make identifiers publicly-accessible, even in syntax extensions. (If people don't want that, then we can just let this pull request die.)

This is part one of two. Part two, whose contents should be clear from the FIXME's in this commit, would land after this gets incorporated into a snapshot.

(The eventual goal is to address issue #6009 , which was implied by my choice of branch name, but not mentioned in the pull request, so github did not notice it.)
2013-05-07 05:06:39 -07:00
Brendan Zabarauskas
cc51186be0 Add is_normal and classify methods to Float trait 2013-05-07 20:30:51 +10:00
bors
4023f54deb auto merge of #6255 : brson/rust/nobreakpoint, r=graydon
These breakpoints make it difficult to debug coretest
2013-05-07 03:24:37 -07:00
Niko Matsakis
387d6c597a Lift restriction on calling extern C functions, and propagate
the ABI as part of the type of an extern fn. cc #3678
2013-05-07 05:28:39 -04:00
Brendan Zabarauskas
a9ac2b95f4 Add abs_sub method to Signed trait 2013-05-07 19:16:03 +10:00
Brendan Zabarauskas
314b485c9c Fix order of methods 2013-05-07 19:16:03 +10:00
Brendan Zabarauskas
06c5e7f383 Implement exp_m1 and ln_1p as methods for Float
Both expm1 and ln1p have been renamed to exp_m1 and ln_1p in order to be consistent with the underscore usage elsewhere.

The exp_m1 method is used for increased accuracy when doing floating point calculations, so this has been moved from the more general 'Exponential' trait into 'Float'.
2013-05-07 19:16:02 +10:00
Brendan Zabarauskas
9b09dce3e1 Switch to using 'ln' for the natural logarithm and 'log' for arbitrary base logarithms 2013-05-07 19:16:02 +10:00
bors
bdb52e58b4 auto merge of #6251 : thestinger/rust/non_owned, r=pcwalton
Also fixed the docstring on `TC_ONCE_CLOSURE` (was accidentally the same as `TC_MUTABLE`) and shifted the `TC_EMPTY_ENUM` bit left by one since whatever previously used that bit has been removed.
2013-05-07 01:27:38 -07:00
Sangeun Kim
7455f986a8 Make lint_table static 2013-05-07 16:28:58 +09:00
bors
7b2020f2c3 auto merge of #6245 : youknowone/rust/match-range-static, r=graydon
Fix unintended error problem of:
````
static s: int = 1;
static e: int = 42;

fn main() {
    match 7 {
        s..e => (),
         ^~                 error: expected `=>` but found `..`
        _ => (),
    }
}
````
2013-05-07 00:18:37 -07:00
bors
3225870191 auto merge of #6236 : alexcrichton/rust/more-map-methods, r=thestinger
Closes #5392 and #5393

I implemented the pop/swap methods for TrieMap/TreeMap/SmallIntMap, and I also updated all of them such that pop isn't just a remove/insert, but rather it's all done in one operation.

One thing I did notice is that with default methods it'd be really nice to define `insert` and `remove` in terms of `pop` and `swap` (or vice versa, just to have them available).
2013-05-06 23:06:36 -07:00
Alex Crichton
393a409b5d Add pop() and swap() to the Map trait 2013-05-07 01:16:04 -04:00
Youngsoo Son
dfe608dc99 renamed tests 2013-05-07 14:07:56 +09:00
bors
bf748e5001 auto merge of #6241 : thestinger/rust/rc, r=pcwalton
To provide a reference counted pointer type with deterministic
destruction once managed boxes are switched over to a garbage
collector. Unlike managed boxes, these can be moved instead of just
copied/cloned which is helpful for avoiding reference counts.

Needs #5601 to be fixed in order for safety to be provided without the current ugly workaround of making the pointers contain `Option<@()>` and `Option<@mut ()>` (which are just set to `None`).

@brson: r?
2013-05-06 22:00:37 -07:00
Daniel Micay
ebe35f3873 remove borrowck workarounds from the containers 2013-05-06 23:56:36 -04:00
bors
d2f0235a2c auto merge of #6228 : brson/rust/run-destroy, r=brson
These cause valgrind errors in subprocesses. I don't *think* these errors
lead to actual test failures but they are very confusing.
2013-05-06 20:12:37 -07:00
bors
4b6864f219 auto merge of #6226 : alexcrichton/rust/issue-6199, r=brson
I just removed `pub mod` from `core.rc` and then got everything to compile again. One thing I'm worried about is an import like this:

```rust
use a;
use a::b;

mod a {
  pub type b = int;
}
mod b {
  use a;    // bad
  use a::b; // good
}
```

I'm not sure if `use a::b` being valid is a bug or intended behavior (same question about `use a`). If it's intended behavior, then I got around these modules not being public by only importing the specific members that are necessary. Otherwise that probably needs an open issue.
2013-05-06 18:57:40 -07:00
Brian Anderson
4f436a8b85 Enable test for #3707 2013-05-06 18:50:21 -07:00
Niko Matsakis
39a119074a appease the tidy gods with respect to a FIXME 2013-05-06 20:27:59 -04:00
Niko Matsakis
cd164cf8b5 Merge remote-tracking branch 'mozilla/incoming' into issue-5910-dyna-freeze 2013-05-06 20:15:27 -04:00
Niko Matsakis
ce45f390dd Remove debug_mem since @graydon said it conflicted with GC changes 2013-05-06 20:14:54 -04:00
Niko Matsakis
8b32bde408 add rust_take_task_borrow_list and rust_set_task_borrow_list to rustrt.def.in 2013-05-06 20:10:19 -04:00
Alex Crichton
d0827e3d36 Add a test for issue 5517 2013-05-06 19:17:55 -04:00
Daniel Micay
3d526d1af3 add task-local reference counted smart pointers
To provide a reference counted pointer type with deterministic
destruction once managed boxes are switched over to a garbage
collector. Unlike managed boxes, these can be moved instead of just
copied/cloned which is helpful for avoiding reference counts.
2013-05-06 17:03:20 -04:00
bors
bd5fd6e42a auto merge of #6150 : yichoi/rust/arm-test-pull, r=brson
Support #5297

install.mk : install-runtime-target added for conveneice
                 automatically push runtime library to android device

test.mk : expanded to support android test automation with adb

compiletest : expanded to support android test automation with adb
2013-05-06 13:15:38 -07:00
Niko Matsakis
2e4790ca06 Merge remote-tracking branch 'mozilla/incoming' into issue-5910-dyna-freeze 2013-05-06 16:10:31 -04:00
Brian Anderson
de8071234f Move core::run tests of process killing into standalone run-pass tests
These cause valgrind errors in subprocesses. I don't *think* these errors
lead to actual test failures but they are very confusing.
2013-05-06 12:50:08 -07:00
Brian Anderson
3cafe905a4 std: Workaround bustage on incoming. #6122 2013-05-06 12:28:51 -07:00
bors
a5891bebc1 auto merge of #6265 : sanxiyn/rust/xc-packed, r=nikomatsakis 2013-05-06 11:30:48 -07:00
Niko Matsakis
0ef4e860da Replace NOTE with FIXME 2013-05-06 14:02:28 -04:00
Felix S. Klock II
1cbf0a84dc Step one for 'proper' pub condition: support pub keyword in form. 2013-05-06 19:05:36 +02:00
Huon Wilson
4a43c1babb testsuite: tests for deriving changes and additions 2013-05-07 01:33:54 +10:00
Huon Wilson
5e1d6c2c80 libsyntax: add #[deriving(Rand, ToStr)].
The former fills each field of a struct or enum variant with a random
value (and picks a random enum variant). The latter makes the .to_str
method have the same output as fmt!("%?", ..).
2013-05-07 01:33:54 +10:00
Huon Wilson
1cf2108a2b libsyntax: convert #[deriving(IterBytes)] to generic deriving 2013-05-07 01:33:54 +10:00
Huon Wilson
b20eb970e1 libsyntax: extend generic deriving code to handle almost all possible traits.
This adds support for static methods, and arguments of most types, traits with
type parameters, methods with type parameters (and lifetimes for both), as well
as making the code more robust to support deriving on types with lifetimes (i.e.
'self).
2013-05-07 01:33:54 +10:00
Niko Matsakis
c50a9d5b66 Use rust_try_get_task for compat with new rt, and strenghten assumptions about borrow list 2013-05-06 11:18:59 -04:00
Seo Sanghyeon
502817a9c1 Fix cross-crate packed structs 2013-05-06 23:35:27 +09:00
Niko Matsakis
84f7ecce5c Adust arena test: can no longer allocate recursively 2013-05-06 09:56:17 -04:00
Niko Matsakis
6c0c3a44bd Merge remote-tracking branch 'mozilla/incoming' into issue-5910-dyna-freeze 2013-05-06 09:00:50 -04:00
Niko Matsakis
2ea52a38e5 refinement to technique used to not run regionck 2013-05-06 09:00:37 -04:00
Brendan Zabarauskas
0e2242f6d6 Add assert_approx_eq! macro 2013-05-06 21:51:48 +10:00
Brendan Zabarauskas
0211833008 Move FuzzyEq trait into core::cmp and rename it to 'ApproxEq' 2013-05-06 21:51:07 +10:00
Niko Matsakis
e235f6ca53 remove some unused mut decls and vars 2013-05-06 05:18:23 -04:00
Niko Matsakis
4dc62dfcf3 do not run regionck if there have been type errors 2013-05-06 05:17:36 -04:00
Alex Crichton
44c1e46ef5 Improve lifetimes on foldl/foldr and lift the Copy requirement 2013-05-06 02:21:01 -04:00
Brian Anderson
24de5bb649 core: Remove a call to breakpoint from a test
These breakpoints make it difficult to debug coretest
2013-05-05 20:13:32 -07:00
Niko Matsakis
7b36e34c89 Fix two more write guard failures 2013-05-05 21:05:37 -04:00
Daniel Micay
e7f6c4c754 compile-fail tests for #[non_owned] and #[mutable] 2013-05-05 15:55:32 -04:00
Daniel Micay
bc52224d47 factor out the has_attr checks 2013-05-05 15:50:10 -04:00
Daniel Micay
66842c8576 mark Cell as non-Const with #[mutable] 2013-05-05 15:42:03 -04:00
Daniel Micay
58c0df2af6 add #[non_owned] and #[mutable] attributes 2013-05-05 15:36:26 -04:00
Niko Matsakis
4300d4d2fa Merge remote-tracking branch 'mozilla/incoming' into issue-5910-dyna-freeze
Conflicts:
	src/libcore/core.rc
	src/libcore/hashmap.rs
	src/libcore/num/f32.rs
	src/libcore/num/f64.rs
	src/libcore/num/float.rs
	src/libcore/num/int-template.rs
	src/libcore/num/num.rs
	src/libcore/num/strconv.rs
	src/libcore/num/uint-template.rs
	src/libcore/ops.rs
	src/libcore/os.rs
	src/libcore/prelude.rs
	src/libcore/rt/mod.rs
	src/libcore/unstable/lang.rs
	src/librustc/driver/session.rs
	src/librustc/middle/astencode.rs
	src/librustc/middle/borrowck/check_loans.rs
	src/librustc/middle/borrowck/gather_loans.rs
	src/librustc/middle/borrowck/loan.rs
	src/librustc/middle/borrowck/preserve.rs
	src/librustc/middle/liveness.rs
	src/librustc/middle/mem_categorization.rs
	src/librustc/middle/region.rs
	src/librustc/middle/trans/base.rs
	src/librustc/middle/trans/inline.rs
	src/librustc/middle/trans/reachable.rs
	src/librustc/middle/typeck/check/_match.rs
	src/librustc/middle/typeck/check/regionck.rs
	src/librustc/util/ppaux.rs
	src/libstd/arena.rs
	src/libstd/ebml.rs
	src/libstd/json.rs
	src/libstd/serialize.rs
	src/libstd/std.rc
	src/libsyntax/ast_map.rs
	src/libsyntax/parse/parser.rs
	src/test/compile-fail/borrowck-uniq-via-box.rs
	src/test/compile-fail/regions-infer-borrow-scope-within-loop.rs
	src/test/run-pass/borrowck-nested-calls.rs
2013-05-05 15:11:04 -04:00
bors
6e6a4be19d auto merge of #6208 : sanxiyn/rust/accurate-span, r=sanxiyn 2013-05-05 11:12:37 -07:00
Seo Sanghyeon
aca2a00fb4 Fix span tests 2013-05-06 03:09:19 +09:00
Niko Matsakis
6cb273ed4e Address all FIXMEs from #5562 2013-05-05 13:50:10 -04:00
Niko Matsakis
0b0b8018a6 add warning for #6248 and remove instances of it 2013-05-05 12:17:59 -04:00
Niko Matsakis
6806900a7c disable lang debug for perf 2013-05-05 07:43:43 -04:00
bors
29a2a1ecd1 auto merge of #6234 : yichoi/rust/glob-dummy-pull, r=thestinger
transitional patch to resolve compile/link failure on android

after #6161 landed, I've encountered below errors since android does not support glob in libc.

/opt/ndk_standalone/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /home/yichoi/rust_work/build/x86_64-unknown-linux-gnu/stage1/lib/rustc/arm-linux-androideabi/lib/libcore-c3ca5d77d81b46c1-0.7-pre.so: error: undefined reference to 'glob'

/opt/ndk_standalone/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /home/yichoi/rust_work/build/x86_64-unknown-linux-gnu/stage1/lib/rustc/arm-linux-androideabi/lib/libcore-c3ca5d77d81b46c1-0.7-pre.so: error: undefined reference to 'globfre

Since android does not have `glob.h`, `glob_t` definition comes from
https://groups.google.com/forum/?fromgroups=#!topic/android-ndk/vSH6MWPD0Vk

#6100 should be resolved.
2013-05-04 22:09:36 -07:00
Young-il Choi
987ad9c878 rt: rust_android_dummy.cpp fix for make tidy 2013-05-05 14:00:53 +09:00
Jeong YunWon
cb918e1a83 Allow non-literal static range pattern for match arms
Fix unintended error problem of:

static s: int = 1;
static e: int = 42;

fn main() {
    match 7 {
        s..e => (),
         ^~                 error: expected `=>` but found `..`
        _ => (),
    }
}
2013-05-05 11:05:06 +09:00
Brian Anderson
8081e8debf Register snapshots 2013-05-04 15:43:51 -07:00
Niko Matsakis
989d008124 separate out write_guard code into its own module 2013-05-04 14:29:32 -04:00
Niko Matsakis
ccf2f7b979 make asm_comments something that you opt in to 2013-05-04 14:29:08 -04:00
Niko Matsakis
bf2d3c71e3 improve DEBUG_BORROW printouts 2013-05-04 14:25:15 -04:00
Björn Steinbrink
e5ca35d567 Reduce code bloat from managed allocations
In commit d7f5e43 "core::rt: Add the local heap to newsched tasks",
local_malloc and local_free have become rather big and their forced
inlining causes quite a bit of code bloat. Compile times for crates
affected by the bloat (e.g. rustc) improve, while others (e.g. libstd)
seem to be unaffected, so I guess the inlining doesn't gain us much.

Sizes:
               | librustc   | libsytax
---------------|–-----------|------------
with inlining  | 18,547,824 |  7,110,848
w/o inlining   | 15,092,040 |  5,518,608
2013-05-04 18:21:27 +02:00
bors
1f65e4a1d5 auto merge of #6230 : thestinger/rust/whitespace, r=catamorphism
I just had `git apply` fix most of them and then did a quick skim over the diff to fix a few cases where it did the wrong thing (mostly replacing tabs with 4 spaces, when someone's editor had them at 8 spaces).
2013-05-04 00:48:37 -07:00
Young-il Choi
7ac6571163 rt: glob, globfree dummy function for android 2013-05-04 16:00:11 +09:00
bors
a47e4cb22f auto merge of #6229 : catamorphism/rust/warning-police, r=catamorphism 2013-05-03 23:48:36 -07:00
bors
c3ab74b8b9 auto merge of #6227 : graydon/rust/issue-6112-box-annihilator, r=graydon
during task annihilation, since it is easy to tread on freed memory.
2013-05-03 22:06:37 -07:00
bors
821979f928 auto merge of #6219 : dotdash/rust/fmt, r=graydon
Only the first portion has to be owned, as it acts as the buffer for the
constructed string. The remaining strings can be static.
2013-05-03 20:48:37 -07:00
Niko Matsakis
0ff8200671 factor code for write guards into its own module; add neglected resolve_stage0 2013-05-03 22:07:33 -04:00
bors
5bf7e8bb50 auto merge of #6198 : luqmana/rust/linker-arg, r=graydon 2013-05-03 18:48:37 -07:00
Young-il Choi
5681571f6c compiletest: remove --host and cleanup 2013-05-04 10:35:07 +09:00
bors
7d9c638226 auto merge of #6124 : catamorphism/rust/rustpkg, r=catamorphism
r? @graydon
2013-05-03 17:42:37 -07:00
Tim Chevalier
9f76ca6508 rustpkg: Make code actually compile
oops.
2013-05-03 17:25:13 -07:00
Daniel Micay
86efd97a10 add gitattributes and fix whitespace issues 2013-05-03 20:01:42 -04:00
Tim Chevalier
2df8799f76 rustc: Warning police 2013-05-03 16:56:34 -07:00
Tim Chevalier
1a5f11a11b syntax: Warning police 2013-05-03 16:56:34 -07:00
Tim Chevalier
18bf9bd55a std: Warning police 2013-05-03 16:56:33 -07:00
Tim Chevalier
5fb5a94118 core: Warning police 2013-05-03 16:56:33 -07:00
Tim Chevalier
c42f1218a0 rustpkg: Handle sysroot more correctly
In rustpkg, pass around sysroot; in rustpkg tests, set the sysroot
manually so that tests can find libcore and such.

With bonus metadata::filesearch refactoring to avoid copies.
2013-05-03 16:48:44 -07:00
Tim Chevalier
376a5526a7 tidy 2013-05-03 16:06:07 -07:00
Tim Chevalier
4d4cabff9e rustpkg: Implement install command
The install command should work now, though it only installs
    in-place (anything else has to wait until I implement RUST_PATH).

Also including:
    core: Add remove_directory_recursive, change copy_file

    Make copy_file preserve permissions, and add a remove_directory_recursive
    function.
2013-05-03 16:06:07 -07:00
bors
517bfc91d1 auto merge of #6200 : catamorphism/rust/issue-5358, r=catamorphism
r? @nikomatsakis Previously, rustc would ICE if you matched on an enum-typed thing
with a structure pattern. Error out correctly. This will close #5358
2013-05-03 14:27:36 -07:00
Alex Crichton
24cda9fbc2 Remove pub from core::{unicode,cmath,stackwalk,rt} 2013-05-03 17:10:32 -04:00
Niko Matsakis
be08c3e514 rustc: add rooting, write-guards to slices etc 2013-05-03 16:27:16 -04:00
Niko Matsakis
c15fa3a02a Be more careful about the order in which we read the next field
during task annihilation, since it is easy to tread on freed memory.
2013-05-03 13:07:28 -07:00
Tim Chevalier
32b3d3e9eb tidy 2013-05-03 13:03:53 -07:00
Tim Chevalier
13df2ea69c rustc: Handle struct patterns where the expected type is an enum
Previously, rustc would ICE if you matched on an enum-typed thing
with a structure pattern. Error out correctly.
2013-05-03 13:03:53 -07:00
bors
bfd3cd8171 auto merge of #6217 : Sodel-the-Vociferous/rust/export-ToBytes, r=graydon 2013-05-03 13:00:47 -07:00
Luqman Aden
832f7b758f librustc: Add argument to allow choosing "linker" 2013-05-03 12:53:01 -07:00
Niko Matsakis
f3a6ea2643 lang: um, actually set locking bits! this code got lost. 2013-05-03 15:12:04 -04:00
bors
4332f8188b auto merge of #6216 : Sodel-the-Vociferous/rust/dralston-6146, r=graydon
cc #6146
2013-05-03 11:33:38 -07:00