Graydon Hoare
aeb9a2b72c
Add zero check/fail paths on div/mod paths. Close #944 .
2012-06-14 15:39:24 -07:00
Graydon Hoare
107442d994
Add some testcases for bug #2470 .
2012-06-06 18:26:46 -07:00
Tim Chevalier
a5c9e8d59e
Fix tests to avoid empty classes
2012-06-06 15:08:24 -07:00
Tim Chevalier
7daf986aec
Port remaining run-fail tests to use classes instead of resources
2012-06-05 15:11:33 -07:00
Brian Anderson
802a8c0f19
test: Add a test that logs are truncated with ellipses
2012-06-03 14:44:03 -07:00
Brian Anderson
6b4cf00552
test: Add an error pattern to small-negative-indexing
2012-05-30 17:48:05 -07:00
Michael Sullivan
e5757923cd
Add a test for that last bug. Oops.
2012-05-30 17:12:50 -07:00
Niko Matsakis
37b78b48e3
modify shape code to only emit monomorphized enums ( #2444 )
...
this is hacky, but shape code is going away anyway and I didn't
want to invest too much effort into it
2012-05-29 15:12:36 -07:00
Brian Anderson
432c6cbde9
core: Make range follow the for loop protocol
2012-05-26 02:28:00 -07:00
Paul Stansifer
f943667af3
Remove do ... while
loops from the tests and docs.
2012-05-10 15:27:42 -07:00
Niko Matsakis
2db4259b35
Stop inferring bot/static when types/regions are unconstrained.
...
Also, some other changes that came up along the way:
- add a 'blk' region for the current block.
- detect unused type/region variables.
2012-04-30 19:53:02 -07:00
Marijn Haverbeke
9f99c3263b
Rewrite exhaustiveness checker
...
Issue #2111
2012-04-25 09:15:17 +02:00
Brian Anderson
e7dbf42214
rustc: Fix type_need_unwind_cleanup. Closes #2272
2012-04-24 14:55:16 -07:00
Brian Anderson
7a1dc76b0f
core: Move set_exit_status from sys to os
2012-04-19 01:26:17 -07:00
Graydon Hoare
956bc773c6
Fix [] on str to exclude the trailing null.
2012-04-18 17:50:58 -07:00
Tim Chevalier
ea0063788b
Add a run-fail test for result::get, get rid of a FIXME. Also some random other tests, mostly xfailed.
2012-04-12 20:24:07 -07:00
Brian Anderson
8c8db42fc5
test: Add test for #1763
2012-04-12 17:43:12 -07:00
Brian Anderson
10236f8cd4
core: Make str::as_bytes handle failure. Closes #2156
2012-04-09 18:57:21 -07:00
Brian Anderson
596376ea55
rt: Allow 2x normal stack during unwinding. Closes #2173
...
Allows room for destructors to run without allowing the stack to grow forever.
2012-04-09 16:03:06 -07:00
Brian Anderson
b42c6d07dc
rt: Don't limit the amount of stack available during unwinding. Closes #2144
2012-04-09 15:36:45 -07:00
Brian Anderson
5b3740508a
test: Prevent run-fail/too-much-recursion from being optimized to nothing
2012-03-29 16:43:18 -07:00
Brian Anderson
ad26b00696
rustc: Generate fewer landing pads
2012-03-29 16:43:18 -07:00
Graydon Hoare
6e6798c4e1
Bulk-edit mutable -> mut.
2012-03-26 18:35:18 -07:00
Niko Matsakis
7ae757ff1a
add annotation for variable that used to infer to bot
2012-03-24 21:55:53 -07:00
Niko Matsakis
dc07280b08
make --enforce-mut-vars always on, add mut annotations to remaining files
2012-03-22 09:58:19 -07:00
Brian Anderson
3864d6d845
std: Rename the hashmap constructors to conform to new standards
...
Instead of using the new_ prefix just name them after their type
2012-03-14 18:19:08 -07:00
Brian Anderson
cd72b1f848
Overhaul constructor naming in libs
2012-03-13 11:07:22 -07:00
Graydon Hoare
6f5853f5a1
Libc/os/run/rand/io reorganization. Close #1373 . Close #1638 .
...
- Move io, run and rand to core.
- Remove incorrect ctypes module (use libc).
- Remove os-specific modules for os and fs.
- Split fs between core::path and core::os.
2012-03-12 20:08:29 -07:00
Brian Anderson
6d4fb35912
core Remove vec::enum_chars/uint. Closes #1955
2012-03-10 17:07:23 -08:00
Patrick Walton
c9375fed8d
stdlib: Stop incurring vtable dispatch costs when hashmaps are used
...
This required changing almost all users of hashmaps to import the hashmap interface first.
The `size` member in the hashmap structure was renamed to `count` to work around a name conflict.
2012-03-07 17:35:13 -08:00
Patrick Walton
c245d9e980
Revert "stdlib: Stop incurring vtable dispatch costs when hashmaps are used"
...
This reverts commit f0250a23d3
.
2012-03-07 16:56:45 -08:00
Patrick Walton
f0250a23d3
stdlib: Stop incurring vtable dispatch costs when hashmaps are used
...
This required changing almost all users of hashmaps to import the hashmap interface first.
The `size` member in the hashmap structure was renamed to `count` to work around a name conflict.
2012-03-07 16:51:31 -08:00
Marijn Haverbeke
780f8277f4
Finish cleanup of core::str
...
Closes #1849
2012-02-23 17:00:19 +01:00
Marijn Haverbeke
67cc89f38d
Rewrite exhaustiveness checker
...
Issue #352
Closes #1720
The old checker would happily accept things like 'alt x { @some(a) { a } }'.
It now properly descends into patterns, checks exhaustiveness of booleans,
and complains when number/string patterns aren't exhaustive.
2012-02-15 15:47:42 +01:00
Brian Anderson
d5e7f0d113
rt: Don't kill tasks while they are in a callback from C
2012-02-14 11:24:09 -08:00
Marijn Haverbeke
c976b7c623
Fix tests for str::le patch
2012-02-03 14:32:23 +01:00
Marijn Haverbeke
c1b075d042
Remove experimental GC code
...
It's been sitting unused long enough to have bitrotted completely.
2012-02-03 11:34:12 +01:00
Brian Anderson
57cad61353
rt: Remove task pinning. Does nothing
2012-02-02 18:10:24 -08:00
Kevin Cantu
8f367ebfeb
Rename (again) str::unsafe::slice -> str::unsafe::slice_bytes and
...
str::unsafe::safe_slice -> str::unsafe::slice_bytes_safe_range
2012-02-01 21:56:53 -08:00
Kevin Cantu
c71667d9d2
Propagating unsafe::slice 4
2012-02-01 21:56:53 -08:00
Tim Chevalier
fba35e1a3c
Require alts to be exhaustive
...
middle::check_alt does the work. Lots of changes to add default cases
into alts that were previously inexhaustive.
2012-01-31 10:08:24 -08:00
Brian Anderson
fa13fd9d64
rt: Remove set_min_stack
2012-01-29 21:27:37 -08:00
Niko Matsakis
5e13d19cc0
s/block()/fn()/g
2012-01-23 19:06:33 -08:00
Patrick Walton
59ebe6af18
rustc: Make the pretty printer output commas after enum variants. Update all tests accordingly.
2012-01-19 18:41:06 -08:00
Tim Chevalier
c7592803d9
Compute typestates for FRU exprs correctly, plus a bit of cleanup
...
The code in Issue 948 was causing typestate to diverge because
it was using the prestate for the whole expression -- not the post-
state for the fields list -- as the prestate for the record base
expression. Fixed.
Closes #948
2012-01-19 17:24:27 -08:00
Patrick Walton
3333fef1af
test: "tag" -> "enum" in run-pass and run-fail
2012-01-19 16:11:17 -08:00
Tim Chevalier
94d2063577
Handle log expressions with a _|_-typed level
...
If we have log(foo, quux) where foo:_|_, just translate foo and
ignore the rest of the expression.
Closes #1459
2012-01-19 14:44:40 -08:00
Tim Chevalier
3e25444e51
In trans, allow _|_-typed things to be the argument to fail
...
Rationale: _|_-typed things diverge, so it's safe to use them in
any context.
Closes #1465
2012-01-19 13:30:31 -08:00
Tim Chevalier
5b028f527f
Remove support for the '.' after a nullary tag in a pattern
...
(Commit also includes lots of changes to remove '.'s that a git
merge messed up, or else it was monkeys.)
2012-01-19 01:04:59 -08:00
Niko Matsakis
3f3bfeec27
make "native fn" the type for bare functions, remove fn exprs
2012-01-13 06:27:35 -08:00
Brian Anderson
0616cba62b
libcore: Add sys::set_exit_status
...
Sets the process exit code
2012-01-12 22:24:27 -08:00
Tim Chevalier
565ea068ca
Add type parameters when checking wildcard patterns
...
For some reason, wildcard patterns were never getting type parameter
substitutions attached. This would cause an assertion failure when
checking a wildcard pattern that matches against a tag with
polymorphic type (not sure why this didn't come up before). Fixed it.
(The diff and test case may be easier to understand than this note
:P)
Closes #1503 .
2012-01-12 16:51:07 -08:00
Brian Anderson
94c389a25b
rt: Add RUST_MAX_STACK env var with 8MB default
...
Closes #1489
2012-01-11 13:57:11 -08:00
Niko Matsakis
8b911587df
rename sendfn to fn~, lambda to fn@
2012-01-10 13:31:06 -08:00
Graydon Hoare
8387896dda
Remove proto_sugar and 'lambda' as keyword, commit to fn@.
2012-01-09 16:12:48 -08:00
Niko Matsakis
106385cb91
make spawned fn copy mode so that bare fns can be used
2012-01-08 14:57:03 -08:00
Niko Matsakis
a1ef79c9d2
update to use new spawn syntax
2012-01-06 22:40:32 -08:00
Brian Anderson
51e6df689c
rustc: Allow the test runner to run unexported tests
2012-01-05 18:16:56 -08:00
Marijn Haverbeke
60ae1590af
Switch to new param kind bound syntax
...
And remove support for the old syntax
2012-01-05 15:50:02 +01:00
Graydon Hoare
f0dfbe7b1b
Register new snapshots, purge log_err and log_full in favour of log(...).
2011-12-22 17:53:53 -08:00
Graydon Hoare
8b580954fe
Register snapshots and switch logging over to use of log_full or #error / #debug.
2011-12-22 14:42:52 -08:00
Graydon Hoare
a24c19e867
Add companion-module core.rs that exports log levels and option/some/none everywhere.
2011-12-20 12:41:44 -08:00
Brian Anderson
12cde6ebee
libcore: Remove task::set_min_stack
...
This existed to make up for the lack of stack growth, and wasn't generally
safe.
2011-12-18 14:10:41 -08:00
Brian Anderson
22ac628e8c
test: Enable all morestack tests
2011-12-18 13:37:33 -08:00
Brian Anderson
471b4d6e58
rt: Use a DWARF CFI scheme that works on mac in __morestack
2011-12-17 14:10:44 -08:00
Graydon Hoare
fa9ad984fb
Copy first batch of material from libstd to libcore.
2011-12-13 16:34:50 -08:00
Brian Anderson
7a8e73662d
rt: Make unwinding through __morestack work on mac
...
Had to bump the min stack size in some of the tests from 256 bytes
to 1024 bytes. Not sure why yet.
2011-12-11 18:49:04 -08:00
Brian Anderson
9a738fd61d
rt: Various tweaks to make __morestack unwinding work on linux
...
When unwinding through __morestack the stack limit in the TLS is invalidated
and must be reset. Instead of actually landing at __morestack we're
just going to make all our Rust landing pads call upcall_reset_stack_limit,
which will find the stack segment that corresponds to the current stack
pointer and put the limit in the TLS.
Also massively expand the stack segment red zone to make more room for the
dynamic linker. Will fix in the future.
2011-12-06 16:32:41 -08:00
Brian Anderson
8d8148f1f7
test: More tests for unwinding + morestack
2011-12-05 19:21:46 -08:00
Brian Anderson
58844aee42
rt: Make stack unwinding work more correctly with stack growth
2011-12-05 17:42:58 -08:00
Brian Anderson
06f4cb43f6
rt: Delete the entire stack chain on task destruction
...
Unwinding through __morestack on 64-bit Linux seems to be no big deal, and
all we have to do is free the stacks to make unwinding work with split stacks.
2011-11-29 22:22:49 -08:00
Brian Anderson
579399f92f
Add --stack-growth to the morestack test compile flags
2011-11-29 12:14:34 -08:00
Brian Anderson
6bdf347418
rt: Make __morestack (without unwinding) work on 32-bit linux
2011-11-22 18:02:10 -08:00
Marijn Haverbeke
f6491bb426
Update stdlib, compiler, and tests to new kind system
...
This involved adding 'copy' to more generics than I hoped, but an
experiment with making it implicit showed that that way lies madness --
unless enforced, you will not remember to mark functions that don't
copy as not requiring copyable kind.
Issue #1177
2011-11-18 12:49:01 +01:00
Brian Anderson
9b9fc33663
Rehabilitate run-fail/linked-failure4.rs
2011-11-11 16:52:07 -08:00
Brian Anderson
07771ec25b
Fix run-fail/spawnfail
...
Catch the case where a parent is killed immediately before it terminates
normally.
2011-11-11 14:20:00 -08:00
Marijn Haverbeke
5945667b99
Update some more tests for 1a68a9882
2011-11-03 11:14:48 +01:00
Marijn Haverbeke
3397fa4701
Move to short kind kinds words in test suite
...
Issue #1076
2011-10-28 14:57:49 +02:00
Marijn Haverbeke
013107a25c
Properly take mutable object fields into account during alias analysis
...
Closes #1055
2011-10-25 17:57:26 +02:00
Marijn Haverbeke
cfdf193c46
Update our code to new type parameter kind syntax
...
Closes #1067
2011-10-25 15:56:55 +02:00
Marijn Haverbeke
3b5b93221e
Remove some semicolons after block calls
...
The remaining ones can be removed after the next snapshot. (Or
we can let the next pretty-print pass take care of them.)
2011-10-21 14:24:42 +02:00
Marijn Haverbeke
050170d2af
Remove remaining uses of iter and for-each
...
Issue #1056
2011-10-21 13:34:35 +02:00
Brian Anderson
ebc61e39d7
Remove temporary fn# syntax
2011-10-20 20:34:04 -07:00
Brian Anderson
686d6a485f
Drop the 2 from the spawn*2 functions
...
Issue #1022
2011-10-20 18:23:47 -07:00
Brian Anderson
ac671c3172
Convert tests to use bare-fn spawn
...
Issue #1022
2011-10-20 18:23:47 -07:00
Marijn Haverbeke
33167f7dec
Adjust function signatures to allow for vecs being immediate
...
Some code was relying on vectors being implicitly by-reference (as
non-immediate value). This adds the necessary &&-sigils.
Closes #1021
2011-10-10 16:01:51 +02:00
Brian Anderson
b5bb42acfb
XFAIL run-fail/linked-failure4. Deadlocks on mac
2011-10-03 14:46:52 -07:00
Brian Anderson
98db2febd3
Handle ~fail. Closes #968
2011-09-24 23:52:22 -07:00
Brian Anderson
68512f2d9d
Actually use unique boxes in run-fail/unwind-unique
2011-09-23 15:23:44 -07:00
Brian Anderson
18b01d5cfe
Create a bunch of test cases for unique boxes by copying box tests
...
XFAIL the ones that don't work
Issue #409
2011-09-23 15:15:30 -07:00
Brian Anderson
5ab0840353
XFAIL spawnfail and task-comm-15
2011-09-22 11:06:26 -07:00
Brian Anderson
92af552956
Add an unwind test for failure during unique box construction
2011-09-21 14:45:08 -07:00
Brian Anderson
956bc69330
Add more unwind tests for failure during construction of allocated things
2011-09-21 14:14:17 -07:00
Jesse Ruderman
f7b67944cd
Add another testcase for #910
2011-09-20 20:00:34 -07:00
Brian Anderson
a609da7c15
Rehabilitate run-fail/trivial-message2
2011-09-20 11:59:51 -07:00
Brian Anderson
12d7363469
Remove a bogus comment from run-fail/spawnfail
2011-09-20 11:51:15 -07:00
Brian Anderson
c6d460d4e3
Rehabilitate task-comm-14
2011-09-20 11:47:22 -07:00
Brian Anderson
564bdacece
Add an assert to run-fail/unwind-alt
...
Jesse reported not being able to reproduce this without the assert. May have
to do with optimtizations.
2011-09-20 11:26:01 -07:00
Brian Anderson
870117f44e
Zero locals that are inited via alt expressions. Closes #945
2011-09-20 10:28:16 -07:00
Brian Anderson
91d8e69621
Un-xfail various tests
2011-09-19 18:55:26 -07:00
Brian Anderson
7c6630a367
Build tuples in two phases to avoid cleaning up partial tuples
2011-09-19 17:59:53 -07:00
Brian Anderson
9626e2f71f
Register tuple cleanups after the tuple is built
...
Issue #936
2011-09-19 17:59:47 -07:00
Brian Anderson
dd1cf63515
Build records in two phases to avoid cleanups on partial records
2011-09-19 14:28:04 -07:00
Brian Anderson
432e931a2a
Don't register record cleanups until the record is built
2011-09-19 14:28:04 -07:00
Brian Anderson
1002623201
Make move-mode arguments unwind correctly. Closes #939
2011-09-16 14:38:04 -07:00
Marijn Haverbeke
7298b8f4ba
Insert omitted semicolons for statements
2011-09-15 09:49:00 +02:00
Brian Anderson
a0ad9a42cd
Unsupervise tasks before the scheduler kills them. Unblock before yield->fail
2011-09-14 17:05:35 -07:00
Brian Anderson
103197bc42
Make failure propagation to dead parents work
...
The failure will basically go 'through' the dead parent and continue
propagating the failure (as if the child was reparented).
2011-09-14 15:48:14 -07:00
Brian Anderson
9505d70513
Make linked task failure work again
2011-09-14 14:20:41 -07:00
Brian Anderson
ad2bdbee08
Add another XFAILed test for failing destructors
2011-09-14 10:59:17 -07:00
Brian Anderson
ca0d3cae5c
Add another unwind test
...
This makes sure that cleanups added after the first invoke in a scope are
actually run on unwind
2011-09-14 09:21:28 -07:00
Brian Anderson
393deeb06f
Merge branch 'unwind'
...
Conflicts:
src/comp/middle/trans.rs
src/comp/middle/trans_build.rs
src/lib/run_program.rs
src/test/compiletest/runtest.rs
2011-09-12 09:36:51 -07:00
Marijn Haverbeke
ca1df2b111
Pretty-print for new arg-mode syntax
2011-09-12 12:49:00 +02:00
Marijn Haverbeke
fc6b7c8b38
Reformat for new mode syntax, step 1
...
Long lines were fixed in a very crude way, as I'll be following up
with another reformat in a bit.
2011-09-12 12:04:14 +02:00
Brian Anderson
69d6e0d208
Add some more unwind tests
...
They worked without modifications, but I wrote them so we're keeping them.
Issue #236
2011-09-11 17:31:41 -07:00
Brian Anderson
d267e7486e
Zero locals when the initializer might call a function
...
The function might fail, leaving the local uninitialized
Issue #236
2011-09-11 17:31:40 -07:00
Brian Anderson
118194381c
Invoke put functions
...
Issue #236
2011-09-11 17:31:40 -07:00
Brian Anderson
5b7145a9f4
Add an XFAILed test for failing destructors
...
Issue #236
2011-09-11 17:31:39 -07:00
Brian Anderson
e8a16353ea
Remove the no-valgrind test directive now that unwinding is more worky
...
Issue #236
2011-09-11 17:31:39 -07:00
Brian Anderson
a7c9f817bb
XFAIL run-fail/linked-failure
...
This test is hitting a bug in the runtime that makes it fail incorrectly and
not valgrind-clean
2011-09-11 17:31:39 -07:00
Brian Anderson
f28bbb2f95
Begin valgrinding some run-fail tests that unwind correctly
...
Issue #236
2011-09-11 17:31:39 -07:00
Brian Anderson
f99cf2d62f
Add a number of unwinding tests
...
Issue #236
2011-09-11 17:31:39 -07:00
Brian Anderson
4fba02c7e9
Invoke upcall_fail
...
This allows landing pads to be generated around fail statements
Issue #236
2011-09-11 17:31:38 -07:00
Brian Anderson
4c9eee8aa4
Run cleanups during unwinding
...
Issue #236
2011-09-11 17:31:38 -07:00
Brian Anderson
c337fd5467
Child tasks take a ref to their parents
...
This is so that when a child dies after the parent, it still holds a valid
pointer and can call supervisor->kill() safely.
2011-09-07 10:32:58 -07:00
Brian Anderson
5c49e4f4e9
Reformat. Issue #855
2011-09-02 22:11:42 -07:00
Brian Anderson
418d09e547
Convert all uses of #ifmt to #fmt. Issue #855
2011-09-01 18:54:03 -07:00
Brian Anderson
ab6bb035e5
Rename std::istr to std::str. Issue #855
2011-09-01 17:27:58 -07:00
Brian Anderson
e824775d53
Remove std::str. Issue #855
2011-09-01 16:09:15 -07:00
Brian Anderson
53a9d5a1d2
Start paring down std::str. Issue #855
2011-08-31 16:24:09 -07:00
Brian Anderson
498e38b705
Convert uses of #fmt to #ifmt. Issue #855
2011-08-31 11:44:06 -07:00
Marijn Haverbeke
6209e844ee
Replace xfail-stageN with simply xfail-test
...
Closes #799
2011-08-31 16:32:16 +02:00
Marijn Haverbeke
66bc014720
Revert "Replace xfail-stageN with simply xfail-test"
...
This reverts commit 574194f6bc
.
2011-08-31 14:24:08 +02:00
Marijn Haverbeke
574194f6bc
Replace xfail-stageN with simply xfail-test
...
Closes #799
2011-08-31 13:43:09 +02:00
Brian Anderson
0abec867c3
Support istrs as fail argument. Issue #855
2011-08-30 21:08:07 -07:00
Tim Chevalier
819b00079c
Library test cases for vec::zip
2011-08-30 16:42:32 -07:00
Tim Chevalier
d9bc3cb10c
Change "pred" to "pure fn" in all libraries and test cases
2011-08-25 18:24:45 -07:00
Eric Holk
2f7c583bc1
Cleaning up task and comm exports, updating all the test cases.
2011-08-25 11:21:25 -07:00
Brian Anderson
518dc52f85
Reformat
...
This changes the indexing syntax from .() to [], the vector syntax from ~[] to
[] and the extension syntax from #fmt() to #fmt[]
2011-08-20 11:04:00 -07:00
Brian Anderson
664b0ad3fc
Add some tests for expression corner cases, mostly involving ret and fail
...
Some of these don't actually work.
2011-08-19 10:16:38 -07:00
Eric Holk
3ab21e5ee0
Better type inference for chans and ports.
2011-08-17 17:16:23 -07:00
Eric Holk
94260fb91d
Using move-mode for spawn thunks to avoid race conditions.
2011-08-17 11:44:50 -07:00
Erick Tryzelaar
b3eba15271
Port the tests to the expr foo::<T> syntax.
2011-08-16 15:05:57 -07:00
Erick Tryzelaar
3520499544
Port the tests to the decl foo<T> syntax.
2011-08-16 15:05:56 -07:00
Erick Tryzelaar
21f46a1655
Port the tests to the typaram foo<T> syntax.
2011-08-16 15:05:56 -07:00
Eric Holk
cf2def46c1
Removed trans_comm.rs from the compiler. Updating aio/sio to work with the new chan and port system, started on a networking module for the standard library.
2011-08-16 09:36:29 -07:00
Lindsey Kuper
f91351aaf6
The wonky for...in... whitespace was bothering me. Sorry!
2011-08-15 22:19:50 -07:00
Eric Holk
be7325073a
Removed spawn and task from the parser. Updated all the tests except for the benchmarks.
2011-08-15 09:26:52 -07:00
Tim Chevalier
c01e487485
Un-XFAIL do-while-body-fails
...
Made it work both with optimization enabled, and with optimization
disabled. Huzzah!
2011-08-12 16:26:10 -07:00
Brian Anderson
ee7d03f7d7
Convert most working tests to ivecs
...
I tried to pay attention to what was actually being tested so, e.g. when I
test was just using a vec as a boxed thing, I converted to boxed ints, etc.
Haven't converted the macro tests yet. Not sure what to do there.
2011-08-12 16:13:13 -07:00