Eric Holk
cd913b454d
stdlib: Added an incredibly simple treemap.
2011-08-26 18:03:32 -07:00
Eric Holk
45cac8a95f
Adding a test case to make sure spawning polymorphic functions works.
2011-08-26 16:31:14 -07:00
Tim Chevalier
844e2d7d1c
Test case for checks on pattern-bound vars
2011-08-26 00:46:53 -07:00
Tim Chevalier
809a833e34
Test case for unchecked blocks
2011-08-25 18:33:57 -07:00
Tim Chevalier
d9bc3cb10c
Change "pred" to "pure fn" in all libraries and test cases
2011-08-25 18:24:45 -07:00
Tim Chevalier
e241f2996d
Allow pure fns to have any return type
2011-08-25 17:23:35 -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
b31815f8a0
Fix istr::unsafe_from_bytes. Issue #855
2011-08-25 10:33:28 -07:00
Brian Anderson
5b5689d4dd
Test that processes that are supposed to fail return a non-zero status
2011-08-24 13:24:03 -07:00
Brian Anderson
65357eeecc
XFAIL task-comm-2. Doesn't work under windows
2011-08-24 12:03:08 -07:00
Brian Anderson
18576e55f7
Resolve a number of FIXMEs
2011-08-23 18:55:37 -07:00
Brian Anderson
c1f2394245
Zero locals with initializers that may break or terminate. Closes #787
2011-08-23 16:29:21 -07:00
Graydon Hoare
c011f13144
Add kind-checking for assign-op, copy, ret, be, fail exprs. Fix caught kinding-violations in rustc and libstd.
2011-08-23 15:58:53 -07:00
Brian Anderson
a3c8d4a5a5
Recheck the while loop contition after continuing. Closes #825
2011-08-23 14:51:22 -07:00
Brian Anderson
c274d16b7f
Eliminate unused variable warnings in stdtest
2011-08-22 21:33:52 -07:00
Brian Anderson
663d07d319
Add std::istr. Issue #855
2011-08-22 21:33:49 -07:00
Brian Anderson
d6e4fa6b44
Teach rustc to append istrs. Issue #855
2011-08-22 17:40:06 -07:00
Brian Anderson
3ab86fb79e
Teach rustc to add istrs. Issue #855
2011-08-22 16:39:18 -07:00
Brian Anderson
aae212727d
Encode the istr shape correctly. Issue #855
2011-08-22 16:12:42 -07:00
Brian Anderson
6841f3827a
Fix ivec self-append. Closes #816
2011-08-22 15:04:28 -07:00
Brian Anderson
0f1f5e67ea
Create correct drop glue for istrs. Issue #855
2011-08-22 14:34:55 -07:00
Brian Anderson
fd8ca2cf5d
Translate istr literals. Issue #855
2011-08-22 14:34:36 -07:00
Brian Anderson
3a5bfae9d9
Silence unused variable warnings in compiletest
2011-08-22 11:00:43 -07:00
Marijn Haverbeke
7d08678b74
Implement pattern guards
...
The syntax is
alt x {
mypat where mycond { ... }
}
The condition may refer to any of the variables bound by the pattern.
When a guard fails, pattern-matching continues with the next pattern.
Closes #857
2011-08-22 17:49:31 +02:00
Marijn Haverbeke
42864377a4
Remove silly restriction on passing type params by alias
...
Since they are now passed by pointer, this is no longer a problem
2011-08-22 14:06:20 +02:00
Marijn Haverbeke
b24f978011
Drop arguments on the caller side, not the callee
...
This makes it easier for the caller to optimize the take/drop away for
temporary values, and opens up new possibilities for alias handling.
Breaks tail calls.
2011-08-22 10:16:09 +02:00
Brian Anderson
abdb6cd71b
Rewrite reap_dead_tasks to never grab the sched lock before a task lock
...
Doing so contradicts the locking order used everywhere else and causes
deadlocks.
Un-XFAIL task-perf-spawnalot
Closes #854
2011-08-20 16:21:27 -07:00
Brian Anderson
15e456d547
Convert task-perf-spawnalot to spawn_joinable. XFAIL
2011-08-20 13:02:53 -07:00
Brian Anderson
bc1b6b594b
Stop parsing ~[] vector syntax
2011-08-20 11:04:00 -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
7053b6010a
Parse x[y] as indexes
2011-08-19 12:50:05 -07:00
Michael Sullivan
a7e559ee2e
Fix polymorphic iterators. Closes #829 .
2011-08-19 11:54:46 -07:00
Brian Anderson
cc2ebbec92
Pretty-print constrained types correctly
2011-08-19 10:16:39 -07:00
Brian Anderson
09e21fe2b9
Pretty-print parens around more things that need disambiguation
...
Ridiculous stuff like (ret 0) == (log "error")
2011-08-19 10:16:38 -07:00
Brian Anderson
8327416411
Teach the pretty-printer to disambiguate 'if ret { }' et. al
2011-08-19 10:16:38 -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
Brian Anderson
d681f062c7
Clean up run-pass/fun-call-variants
...
Uncomment parts of the test that work correctly now, enable pretty testing
2011-08-19 10:16:38 -07:00
Brian Anderson
a0ca1ac1bc
Remove xfail-pretty directives from working tests
2011-08-19 10:16:38 -07:00
Brian Anderson
22c8eebc48
Add a comment about our single use of no-reformat
2011-08-19 10:16:38 -07:00
Brian Anderson
113be53df3
Do better at preserving blank lines during pretty-printing
2011-08-19 10:16:38 -07:00
Brian Anderson
8c3ed8640b
Don't pretty-print extra blank lines after anon object methods
2011-08-19 10:16:38 -07:00
Brian Anderson
b02f1f46e5
Don't pretty-print trailing whitespace for blank lines inside block comments
2011-08-18 19:22:10 -07:00
Brian Anderson
84fb821e40
Try harder to disambig blocks followed by various exprs in pprust. Closes #840
...
As it turns out, it's not just unops we need to worry about. Also tuples and
anything that requires parens.
2011-08-18 18:53:36 -07:00
Tim Chevalier
d81d86440f
Handle sequential let semantics properly in typestate
...
Closes #824
2011-08-18 17:21:55 -07:00
Graydon Hoare
e8bcca2829
Kill another case of a spurious blank line. Closes #809 .
2011-08-18 17:02:23 -07:00
Michael Sullivan
0a00fab249
Fix task-comm-15 type errors and un-xfail.
2011-08-18 16:13:03 -07:00
Brian Anderson
f5ce3bf15d
More misc ivec->vec renaming
2011-08-18 15:01:49 -07:00
Brian Anderson
1aa1f8c4b7
Rename various things from ivec to vec
2011-08-18 14:32:25 -07:00
Brian Anderson
53eb4a3025
Pretty-print ivecs as []
2011-08-18 13:09:00 -07:00
Eric Holk
3ab21e5ee0
Better type inference for chans and ports.
2011-08-17 17:16:23 -07:00
Tim Chevalier
f023f82090
Track arguments in typestate
...
Add the infrastructure for arguments -- as well as local vars --
to be deinitialized with move-mode calls. Address Issue #819
2011-08-17 17:15:46 -07:00
Brian Anderson
df10df821b
Remove last mentions of vec<> type in Rust source
2011-08-17 16:08:17 -07:00
Brian Anderson
ad598ebea0
Use the new task join methods in the test runner. Closes #826
...
It should report failures properly again
2011-08-17 15:34:54 -07:00
Brian Anderson
deef212bf7
Move some test setup from runtest to compiletest
2011-08-17 15:11:17 -07:00
Eric Holk
9e020b8b8f
Convenience methods for spawning and joining tasks.
2011-08-17 15:07:19 -07:00
Eric Holk
efac7c9a19
Yet another comm interface.
2011-08-17 14:42:40 -07:00
Eric Holk
94260fb91d
Using move-mode for spawn thunks to avoid race conditions.
2011-08-17 11:44:50 -07:00
Brian Anderson
bfbe8870d7
Refactor import lookup in middle:resolve
...
Issue #817
2011-08-17 11:05:04 -07:00
Brian Anderson
cd54e77720
Allow multiple imports in a single statement
...
Like so: import foo::{bar, baz};
Issue #817
2011-08-17 11:04:56 -07:00
Brian Anderson
c4ce463f37
Add compile-fail tests for malformed glob imports
2011-08-17 11:04:05 -07:00
Brian Anderson
67cc5b9e34
Allow multiple exports in a single export statement. Issue #817
2011-08-17 11:04:05 -07:00
Eric Holk
fc616af820
Updating to new type parameter syntax.
2011-08-16 16:52:52 -07:00
Eric Holk
8686645aad
New channel-based task status notifications.
2011-08-16 16:47:40 -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
Brian Anderson
2f61848b24
Add pp test for interleaving comments through vectors. Closes #679
2011-08-16 11:39:04 -07:00
Brian Anderson
f05a91a0dc
Rename std::ivec to std::vec
2011-08-16 10:36:19 -07:00
Brian Anderson
f32079f7c0
Convert most main functions to the ivec signature
...
Converting rustc will still take a snapshot
2011-08-16 10:29:08 -07:00
Brian Anderson
053b8bff5a
Accept main(args: [str]) as main signature
2011-08-16 10:29:08 -07:00
Eric Holk
88a47020cf
Updating sio tests.
2011-08-16 09:45:55 -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
Marijn Haverbeke
e33af7e0b5
Make let bindings' scope start at their definition
...
Also, allow let bindings in a block to shadow each other.
2011-08-16 13:45:41 +02:00
Marijn Haverbeke
92719e438c
Clean up zip and unzip in std::ivec
2011-08-16 13:45:41 +02:00
Lindsey Kuper
f91351aaf6
The wonky for...in... whitespace was bothering me. Sorry!
2011-08-15 22:19:50 -07:00
Brian Anderson
cb239cc028
XFAIL task-comm-15
...
Fails consistently on windows
2011-08-15 19:28:38 -07:00
Lindsey Kuper
d55048ec5c
Test case for issue #115 .
2011-08-15 17:10:13 -07:00
Lindsey Kuper
4ff6b6fc27
Test cases for issue #822 .
2011-08-15 16:29:42 -07:00
Lindsey Kuper
93d425e7a5
Simple example of anonymous objects from nothing. Closes #812 .
2011-08-15 16:13:29 -07:00
Michael Sullivan
886c2ee93e
Tests for type inferred lambda-blocks.
2011-08-15 15:48:11 -07:00
Graydon Hoare
814bf41d89
Add operator 'copy', translates as fall-through.
2011-08-15 15:44:41 -07:00
Brian Anderson
9ca8df93b3
XFAIL run-pass/task-killjoin
...
Seems to be failing with some consistency
2011-08-15 15:41:33 -07:00
Paul Stansifer
87b56b5565
Allow [a, b, ..., c]
transcription patterns in MBE.
2011-08-15 15:35:27 -07:00
Paul Stansifer
6d39be465f
Add backtraces for syntax problems.
2011-08-15 15:35:27 -07:00
Eric Holk
5c6790519b
Reducing the chances for race conditions in join.
2011-08-15 12:39:55 -07:00
Eric Holk
871013b942
Syntax updates.
2011-08-15 09:52:18 -07:00
Eric Holk
aa0a51a7f5
Converted over benchmarks.
2011-08-15 09:26:52 -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
Eric Holk
c3535f5842
Porting a bunch of tests over.
2011-08-15 09:26:52 -07:00
Eric Holk
cc353aa17a
Removed old object-based chans.
2011-08-15 09:26:51 -07:00
Eric Holk
7ad13392bd
Converted two more spawn tests.
2011-08-15 09:26:51 -07:00
Eric Holk
b9f1f77622
Fixed memory accounting and task stack creation bugs.
2011-08-15 09:26:51 -07:00
Eric Holk
2f23405a60
Working on more spawn test cases.
2011-08-15 09:26:51 -07:00
Eric Holk
b2dad8af31
Added a library version of spawn. Before long, we can remove the old version.
2011-08-15 09:26:51 -07:00
Eric Holk
871d1317e5
Move mode for lib comm, converted a few tests.
2011-08-15 09:26:51 -07:00
Eric Holk
39b16077bb
Port ID-based channels.
2011-08-15 09:26:51 -07:00
Marijn Haverbeke
1570949ef1
Re-add some deleted tuple tests
2011-08-15 13:39:45 +02:00
Michael Sullivan
0340f32748
Eliminate autoderef on binops and unary negation.
...
Autoderef on binops is basically unused, kind of silly, and
complicates typechecking. There were only three instances of it in the
compiler and the test drivers, two of which were of the form "*foo =
foo + 1", which should be written as "*foo += 1" anyways.
2011-08-12 18:28:03 -07:00
Michael Sullivan
e527140548
Change some tests that used binop autoderef.
2011-08-12 18:28:03 -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
Michael Sullivan
2421312dea
Don't rely on binop autoderef in the compiler.
2011-08-12 15:16:01 -07:00
Brian Anderson
4e62c0d6cb
Remove std::vec
2011-08-12 12:14:07 -07:00
Brian Anderson
3d1634db15
Remove all usages of std::vec::vbuf
2011-08-12 12:14:07 -07:00
Brian Anderson
f9623f0056
Remove vecs from std::sha1
2011-08-12 12:14:07 -07:00
Brian Anderson
235109f8d2
XFAIL run-pass/vec-self-append
...
Broken under the ivec regime
2011-08-12 12:14:07 -07:00
Brian Anderson
12cd11ecda
Remove last uses of vec::len
2011-08-12 12:14:07 -07:00
Brian Anderson
544bdf05c5
Convert uint::parse_buf to ivecs
2011-08-12 12:14:07 -07:00
Brian Anderson
5f71a204d3
Remove vecs from std::getopts
2011-08-12 12:14:07 -07:00
Brian Anderson
f323aeed17
Remove more vectors from std
2011-08-12 12:14:06 -07:00
Brian Anderson
7625ed52ee
Remove vecs from std::sort
2011-08-12 12:14:06 -07:00
Brian Anderson
13439dc870
Convert std::run to ivecs
2011-08-12 12:11:12 -07:00
Brian Anderson
5c042a02cd
Remove vecs from std::bitv
2011-08-12 12:11:12 -07:00
Brian Anderson
28437a1890
Convert compile-fail/alias-mismatch to ivecs
2011-08-12 12:11:12 -07:00
Brian Anderson
b762ba0890
Convert benchmarks to ivecs
2011-08-12 12:11:12 -07:00
Brian Anderson
48ad07b5d6
Convert run-pass/import-glob-crate to ivecs
2011-08-12 12:11:12 -07:00
Brian Anderson
cb59e28679
Convert run-pass/mod-view-items to ivecs
2011-08-12 12:11:12 -07:00
Brian Anderson
a76165f670
Move the ivec::reverse tests to stdtest
2011-08-12 12:11:11 -07:00
Brian Anderson
4dec0f6d96
Add reverse and reversed to std::ivec
...
Modify tests to use the ivec version
2011-08-12 12:11:11 -07:00
Brian Anderson
97dc75da16
Remove stdtest::vec
2011-08-12 12:11:11 -07:00
Brian Anderson
ae4c17e267
Add some of stdtest::vec into stdtest::ivec
...
Add missing functions to std::ivec as needed
2011-08-12 12:10:25 -07:00
Brian Anderson
3814d8d4b0
Convert run-pass/vec-append to ivecs
2011-08-12 12:08:28 -07:00
Brian Anderson
c06d95f178
Remove references to std::vec from compile-fail/cross-crate-glob-collision.rs
2011-08-12 12:08:28 -07:00
Brian Anderson
e790f1e6c5
Remove run-pass/vec-alloc-append.rs
...
There is no ivec::append and this is the only remaining user of vec::append
2011-08-12 12:08:28 -07:00
Brian Anderson
fc7664e4c6
Remove run-pass/vec-ref-count.rs
...
This test will be irellevant when vecs are gone
2011-08-12 12:08:28 -07:00
Brian Anderson
7d05da96f7
Rename std::ioivec to std::io
2011-08-12 12:08:27 -07:00
Brian Anderson
82b1e3f5cc
Convert all uses of std::io to std::ioivec
2011-08-12 12:08:27 -07:00
Brian Anderson
119f43e0c7
Rename str::connect_ivec to str::connect
2011-08-12 12:08:27 -07:00
Brian Anderson
369be5c8df
Convert uses of str::connect to str::connect_ivec
2011-08-12 12:08:27 -07:00
Brian Anderson
09cc957030
Convert str::concat to ivecs
2011-08-12 12:08:27 -07:00
Brian Anderson
1e397eee2a
Rename str::split_ivec to str::split
2011-08-12 12:08:27 -07:00
Brian Anderson
64f53dfbb0
Convert uses of str::split to split_ivec
2011-08-12 12:08:27 -07:00
Brian Anderson
cfb9cba19f
Convert str::from_chars, to_chars to ivecs
2011-08-12 12:08:27 -07:00
Brian Anderson
740196987e
Rename std::str::unsafe_from_bytes_ivec to unsafe_from_bytes
2011-08-12 12:08:27 -07:00
Brian Anderson
a9ce342fa3
Convert all uses of unsafe_from_bytes to unsafe_from_bytes_ivec
2011-08-12 12:08:26 -07:00
Brian Anderson
49b80f9bf7
Remove str::from_bytes
...
This is exactly the same as str::unsafe_from_bytes
2011-08-12 12:08:26 -07:00
Brian Anderson
7e255335d2
Convert str::is_utf8 to ivecs
2011-08-12 12:08:26 -07:00
Brian Anderson
2e7e58812b
Remove vec version of str::bytes, rename bytes_ivec to str::bytes
2011-08-12 12:08:26 -07:00
Brian Anderson
d6626143cc
Remove vecs from compiletest
2011-08-12 12:08:26 -07:00
Michael Sullivan
8a9766000e
Change a bunch of places in the stdlib to use blocks.
2011-08-12 11:47:44 -07:00
Marijn Haverbeke
de4b383a0f
Properly typecheck unary minus
...
Closes #813
2011-08-12 16:05:56 +02:00
Brian Anderson
5e840182e6
XFAIL do-while-body-fails
...
Doesn't work w/out optimizations
2011-08-11 18:05:39 -07:00
Tim Chevalier
051b401051
Handle _|_ - typed things in the bodies of do-while loops
...
The resulting code is strange, but perhaps someone else can
fix it. The obvious things, like returning body_res, all resulted
in completely incomprehensible LLVM errors.
Closes #814
2011-08-11 17:23:47 -07:00
Lindsey Kuper
f2e22b2e8e
Sanity-check the code examples that appear in the object system docs.
2011-08-11 16:19:51 -07:00
Brian Anderson
4b22243416
Un-ignore stdtest::task::test_sleep
...
Works for me.
2011-08-11 10:15:14 -07:00
Brian Anderson
9742148e25
Bring run-pass/spawn-fn up to date and un-XFAIL
2011-08-11 10:15:14 -07:00
Brian Anderson
d4a17caf1e
Bring run-pass/spawn-module-qualified up to date and un-XFAIL
2011-08-11 10:15:14 -07:00
Brian Anderson
832d89db47
Bring run-pass/task-killjoin up to date and un-XFAIL
2011-08-11 10:15:14 -07:00
Brian Anderson
ffd6ee0730
Fill out some of the run-pass/binops tests
...
Un-XFAIL, and just comment out and add a FIXME to the two cases that fail on
linux.
Closes #577 . This still doesn't compare <, >, etc for channels, ports and
tasks, but since they use pointer equality, that's a bit difficult to set up.
2011-08-11 10:15:07 -07:00
Brian Anderson
29ceb41cc3
Update and un-XFAIL run-pass/many.rs
2011-08-11 10:09:02 -07:00
Brian Anderson
4ff6763b60
rustc: Lowercase "main function not found" error
2011-08-11 10:09:02 -07:00
Brian Anderson
0f8e58e3ce
Lowercase the "wrong type in main fn" error
2011-08-11 10:09:02 -07:00
Brian Anderson
32438e82b3
Fix the error-pattern in compile-fail/bad-main.rs. Un-XFAIL
...
This is also tested by compile-fail/main-wrong-type.rs but the type signatures
are slightly different, so I guess it's worth holding on to.
2011-08-11 10:09:02 -07:00
Tim Chevalier
a8a4d4ec05
Use actual type, not declared type, when zeroing move arguments
...
trans was failing with a bounds check error because the caller
was using the declared type (an out-of-scope ty param) and not
the actual type in a list of argument types to zero.
Closes #811
2011-08-10 17:22:57 -07:00
Lindsey Kuper
b23360ec8e
Test case for issue #812 .
2011-08-10 15:11:32 -07:00
Brian Anderson
40ae704ff2
Begin valgrinding run-fail tests
...
Introduce a temporary no-valgrind directive for the few that aren't clean
2011-08-10 13:36:57 -07:00
Graydon Hoare
a5997f2eb2
Actually perform handoff from caller to callee on move-mode args.
2011-08-09 17:56:26 -07:00
Patrick Walton
169f1e5b5a
test: XFAIL binops.rs for now due to mysterious tinderbox failure on Linux
2011-08-09 17:50:21 -07:00
Patrick Walton
a73a0dd74e
test: Update binops.rs with the new equality semantics
2011-08-09 17:02:17 -07:00
Erick Tryzelaar
491ed7f12c
Port the fuzzer and tests to ivec type [T] syntax.
2011-08-09 15:53:26 -07:00
Lindsey Kuper
bf84d20f7c
Move along; nothing to see here...
2011-08-09 15:42:48 -07:00
Lindsey Kuper
0d74d22eda
Un-XFAIL a test. Issue #435 .
2011-08-09 12:35:41 -07:00
Brian Anderson
c4877f88fa
Update comments on sio-ctx test
2011-08-09 12:30:50 -07:00
Lindsey Kuper
eaefb0f1f6
Test case for issue #758 .
2011-08-09 12:25:47 -07:00
Brian Anderson
dcc9a81d17
XFAIL sio-ctx
...
Reportedly fails sometimes, probably when RUST_THREADS > 1
2011-08-09 12:03:30 -07:00
Lindsey Kuper
ff22368279
The self-stack stuff (from #702 ) also closes issue #718 .
2011-08-09 11:46:15 -07:00
Erick Tryzelaar
a37e00ed1f
Change the ivec type syntax to [T].
...
This preserves the old syntax for now.
2011-08-09 11:29:36 -07:00
Lindsey Kuper
a334adaab9
Thread "self" through the stack. Backwarding! Closes #702 .
2011-08-09 10:59:13 -07:00
Graydon Hoare
b2cac5afa3
Implement typestate checking for move-mode args. Un-XFAIL compile-fail/move-arg.rs.
2011-08-08 19:41:54 -07:00
unknown
44bef5f2cb
Introduced task handles.
...
This is the new way to refer to tasks in rust-land. Currently all they
do is serve as a key to look up the old rust_task structure. Ideally
they won't be ref counted, but baby steps.
2011-08-08 16:55:38 -07:00
Graydon Hoare
b54e7e4506
Add new arg-passing mode 'move' denoted with '-T'. Translate as pass-by-value, doesn't deinit source yet nor get proper analysis in typestate, alias passes.
2011-08-08 15:53:41 -07:00
Eric Holk
d4a4224d1b
Using unsafe chan pointer idiom to make task-comm-16.rs pass again.
2011-08-08 10:48:21 -07:00
Eric Holk
c54d57b4b4
Temporarily disabling chan test to put out linux fire.
2011-08-08 10:05:00 -07:00
Eric Holk
d9b84a546c
Converted the rest of the task-comm-* tests over. Also fixed some
...
channel lifecycle bugs.
2011-08-08 08:57:52 -07:00
Eric Holk
86babab2fe
Added an unsafe way to pass libchans over spawn and chans, and converted task-comm-0 to use libcomm.
2011-08-08 08:57:52 -07:00
Brian Anderson
5f89a4f5f3
XFAIL sio-srv
...
Needs to run on loopback so it doesn't trigger windows firewall, but seems
to be hanging. Giving up for now.
2011-08-05 16:49:43 -07:00
Tim Chevalier
c35bf9ca04
Another test for the occurs check, this one from issue 778
2011-08-05 15:47:17 -07:00
Eric Holk
200bbcf91b
Rewrote receive to return a value. This lets us initialize variables by receiving them.
2011-08-05 15:27:27 -07:00
Tim Chevalier
1c786bcc82
Initialize all constraints to False
...
Previously, typestate was initializing the init constraint for
a declared-but-not-initialized variable (like x in "let x;") to False,
but other constraints to Don't-know. This led to over-lenient results
when a variable was used before declaration (see the included test
case). Now, everything gets initialized to False in the prestate/poststate-
finding phase, and Don't-know should only be used in pre/postconditions.
This aspect of the algorithm really needs formalization (just on paper),
but for now, this closes #700
2011-08-05 15:25:52 -07:00
Brian Anderson
18ef7cc531
Un-XFAIL sio-ctx, sio-srv
...
Seem to work consistently
2011-08-05 11:57:07 -07:00
Brian Anderson
4178e52c8f
XFAIL all the sio tests
...
They have random failures still, sadly.
2011-08-05 11:57:06 -07:00
Rob Arnold
f4b87c749f
Basic async IO module using libuv
2011-08-05 11:57:06 -07:00
Tim Chevalier
d7ee55bfd0
(Almost) Always unify a function tail expr with the function result type
...
typeck::check_fn had an exception for the case where the tail expr
was compatible with type nil -- in that case, it doesn't unify the
tail expr's type with the enclosing function's result type. This
seems wrong to me. There are several test cases in Issue #719
that illustrate why. If the tail expr has type T, for some type
variable T that isn't resolved when this check happens, then T
never gets unified with anything, which is incorrect -- T should
be unified with the result type of the enclosing function. (The
bug was occurring because an unconstrained type variable is
compatible with type nil.)
Instead, I removed the check for type nil and added a check that
the function isn't an iterator -- if it's an iterator, I don't
check the tail expr's type against the function result type,
as that wouldn't make sense.
However, this broke two test cases, and after discussion with
brson, I understood that the purpose of the check was to allow
semicolons to be omitted in some cases. The whole thing seems
rather ad hoc. But I came up with a hacky compromise solution:
instead of checking whether the tailexpr type is *compatible*
with nil, we now just check whether it *is* nil. This also
necessitates calling resolve_type_vars_if_possible before
the check happens, which worries me. But, this fixes the bug
from Issue #719 without requiring changes to any test cases.
Closes #719 but I didn't try every variation -- so reopen the bug
if one of the variations still doesn't work.
2011-08-05 02:21:58 -07:00
Michael Sullivan
c5d55ef918
Prohibit assignment to upvars in lambdas. Closes #805 .
2011-08-04 19:35:44 -07:00
Michael Sullivan
66a255ac92
Add a cleanup for copying closures. Closes #804 .
2011-08-04 17:58:12 -07:00
Michael Sullivan
9a5e9806f3
Don't force resolution of type variables until there is no enclosing function scope. Closes #803 .
2011-08-04 17:33:15 -07:00
Tim Chevalier
e0985c1060
Handle alt on a _|_ - typed value
...
Return the result of the discriminant from trans_alt,
rather than nil, in the _|_ case. This was breaking the
enclosed test case (alt-bot-2) when optimization was disabled.
Closes #769
2011-08-04 16:07:26 -07:00
Tim Chevalier
2baaeab784
Implement the occurs check
...
In the writeback phase, the typechecker now checks that it isn't
replacing a type variable T with a type that contains T. It
also does an occurs check in do_autoderef in order to avoid
getting into an infinite chain of derefs.
I'm a bit worried that there are more places where the occurs
check needs to happen where I'm not doing it now, though.
Closes #768
2011-08-04 15:30:09 -07:00
Michael Sullivan
316bf01e26
Fix the pretty print tests to handle terminal newlines. Sorry!
2011-08-03 19:47:54 -07:00
Michael Sullivan
9bfbb2bf83
Remove an obsolete FIXME in stdtest/deque.rs. Closes #140 .
2011-08-03 17:08:23 -07:00
Brian Anderson
2298a2b29f
Whitespace cleanup
2011-08-03 16:25:38 -07:00
Brian Anderson
89f2c43cf3
Convert line endings when doing exact pretty-print testing
...
For the benefit of windows
2011-08-03 15:37:51 -07:00
Brian Anderson
4ae6c835cb
Add some hacks to get stdin piping working more correctly in windows
...
The way pipes work in windows is not the same as unix, though I'm not
entirely clear on the differences. This patch changes the windows pipe
method to return non-inheritable fds, and the windows rust_run_program
method to duplicate them before spawning the new process.
This allows make-check-pretty to work on windows.
2011-08-03 15:09:00 -07:00
Tim Chevalier
001df3f0ca
Revert "Revert "Handle conditionals on _|_ - typed values correctly""
...
This reverts commit ea81c03960
.
Changed the case in trans_if where the conditional is _|_ - typed
but the block is terminated to return the result of the cond,
instead of nil.
This passes "make check" with optimization disabled as well as
enabled.
2011-08-03 13:07:41 -07:00
Paul Stansifer
513276e595
Add #concat_idents[] and #ident_to_str[]
2011-08-03 12:42:35 -07:00
Michael Sullivan
4a636b06f6
Actually un-xfail the test for put in fns.
2011-08-03 11:59:11 -07:00
Michael Sullivan
c9ae548dae
Reject programs that do a put outside of iterators.
...
Closes #774 .
2011-08-03 11:43:50 -07:00
Michael Sullivan
8871462575
Do a bunch more typechecking for iters and for each loops.
...
Closes #771 .
Closes #772 .
Closes #796 .
2011-08-03 11:07:53 -07:00
Brian Anderson
228422303f
Remove the last remaining xfail-boot directive
2011-08-03 10:55:59 -07:00
Brian Anderson
c53402846e
Remove all xfail-stage0 directives
...
While it is still technically possible to test stage 0, it is not part of any
of the main testing rules and maintaining xfail-stage0 is a chore. Nobody
should worry about how tests fare in stage0.
2011-08-03 10:55:59 -07:00