Marijn Haverbeke
86f16b90cd
Support type parameters in resources
...
Some rather dodgy code was added to trans in the process. I'd love to
discuss it with someone who knows more about types during translation.
2011-06-30 18:36:12 +02:00
Eric Holk
63dcd325b9
Adding support for pinning tasks to the currently running thread. Closes #598 .
2011-06-29 18:47:47 -07:00
Tim Chevalier
1ba85932b1
Add a runtime flag to enable/disable claims en masse
...
Now, if the environment variable CHECK_CLAIMS is set, then all
claims turn into checks. Otherwise, claims are no-ops.
2011-06-29 14:28:02 -07:00
Graydon Hoare
750dcc05e4
Make tests a little more friendly to combine.
2011-06-29 12:14:29 -07:00
Patrick Walton
b18cefdfd7
rustc: Fix a leak that resulted from copying a structural interior type containing interior vectors. Add a test case.
2011-06-29 12:16:07 -07:00
Patrick Walton
a2ce532337
rt: Remove the lock around upcall_vec_append. Add a test case. Closes #156 .
2011-06-29 10:33:51 -07:00
Brian Anderson
6832f75f0b
Support attaching attributes to modules via the crate file. Issue #487
2011-06-28 18:39:34 -07:00
Patrick Walton
74f8eb51ae
rustc: Move duplicate_heap_parts to copy glue; add a test case
2011-06-28 17:59:30 -07:00
Graydon Hoare
5059c5f8fd
Actually notice xfail-stage2 as different from xfail-stage2. Fix affected tests.
2011-06-28 17:36:51 -07:00
Tim Chevalier
9f1444c701
Implement "claim"
...
Implement "claim" (issue #14 ), which is a version of "check" that
doesn't really do the check at runtime. It's an unsafe feature.
The new flag --check-claims turns claims into checks automatically --
but it's off by default, so by default, the assertion in a claim
doesn't execute at runtime.
2011-06-28 16:41:06 -07:00
Eric Holk
866ee6ecb4
Re-enabling some tests.
2011-06-28 16:12:34 -07:00
Eric Holk
49a8cb34d2
Removed dom_owned, splitting things between task_owned and kernel_owned. Had to re-xfail a few tests brson recently un-xfailed.
2011-06-28 16:12:33 -07:00
Eric Holk
64596e6583
Teach the parser and typechecker to understand port[int](). Closes #588
2011-06-28 16:11:04 -07:00
Brian Anderson
a83b64d15d
Rework how linkage attributes are determined
...
The meta items within a crate's link attribute are used in linkage:
#[link(name = "std",
vers = "1.0",
custom = "whatever")];
Name and vers are treated specially, and everything else is hashed together
into the crate meta hash.
Issue #487
2011-06-28 15:25:47 -07:00
Brian Anderson
0608e277b6
Add some helper functions for attributes. Issue #487
2011-06-28 15:25:47 -07:00
Brian Anderson
cab73f8897
Write metadata for more meta_item types. Issue #487
2011-06-28 10:12:05 -07:00
Marijn Haverbeke
9561def209
Use 'resource' rather than 'res' as a keyword
...
Resources are now defined like...
resource fd(int n) { close(n); }
Calling fd with an int will then produce a non-copyable value
that, when dropped, will call close on the given int.
2011-06-28 18:00:39 +02:00
Marijn Haverbeke
fb14afd5eb
Add test cases for resources
2011-06-28 18:00:38 +02:00
Paul Stansifer
b3443eb049
'#simplext' -> '#macro'
2011-06-28 15:02:12 +00:00
Paul Stansifer
c3901cdf8e
Add simple syntax extension (#simplext)
2011-06-28 15:02:12 +00:00
Rafael Ávila de Espíndola
ecc080ed0b
Use "" in the native_name as an indication that no extra options have to
...
be passed to the "linker". Use that for libc.
2011-06-28 08:21:13 -04:00
Tim Chevalier
85b5b2a8e4
Tests for while loops that may invalidate constraints
...
Wrote some small test cases that use while loops and moves, to
make sure the poststate for the loop body gets propagated into the
new prestate and deinitialization gets reflected.
Along with that, rewrite the code for intersecting states. I still
find it dodgy, but I guess I'll continue trying to add more tests.
Also, I'll probably feel better about it once I start formalizing
the algorithm.
2011-06-27 18:14:23 -07:00
Michael Sullivan
12d9d07a84
Improve the tests for vector self appending.
2011-06-27 12:34:45 -07:00
Michael Sullivan
ec80918865
Add a test written by jdm that tests repeated vector self appending.
2011-06-27 12:34:45 -07:00
Rafael Ávila de Espíndola
ac081c30be
Record and link with used native libraries.
2011-06-27 15:24:44 -04:00
Tim Chevalier
1656fa19ef
Implement move for scalar values
...
Before, something like:
let int y = 42;
let int x;
x <- y;
would cause an LLVM assertion failure. Fixed it.
2011-06-27 11:32:06 -07:00
Eric Holk
4bc773465f
Basic multithreading support. The infinite loops test successfully maxes out the CPU.
2011-06-27 09:58:39 -07:00
Brian Anderson
cfaa0f4b91
Fail typechecking for bad binop/type combinations
...
Includes assignment operations. Add regression tests for lots of less useful,
less used or unexpected combinations, as well as a selection of compile-fail
tests. Closes #500 (again!)
2011-06-25 19:42:59 -07:00
Marijn Haverbeke
781a265b88
Remove variable name 'res' from test suite
2011-06-25 21:15:04 +02:00
Paul Stansifer
142ff011da
Make a test compile faster.
2011-06-24 14:47:36 -07:00
Brian Anderson
1e7f06b17a
test: Improve ternary operator tests
2011-06-23 23:27:32 -07:00
Brian Anderson
05c0216654
rustc: Add ternary operator. Closes #565
...
The implementation is so simple it might be considered cheating: at almost
every step the expr_ternary is just converted to expr_if.
2011-06-23 22:16:11 -07:00
Michael Sullivan
5495ad17d1
Fix type inference inside of anonymous functions.
2011-06-23 21:36:10 -07:00
Eric Holk
98dee91f25
Wrote swap_context in assembly. Closes #548 . This also allows us to re-enable optimization on OSX for both gcc and clang. Also, re-enamed task-comm-1.rs, which was previously broken by optimization.
2011-06-23 18:49:29 -07:00
Lindsey Kuper
5bd65de289
Typo fix in test case.
2011-06-23 10:47:29 -07:00
Brian Anderson
7105cd1761
test: Add test for string matching in pattern alts. Closes #53
2011-06-22 22:05:11 -07:00
Brian Anderson
8746b84eec
rustc: Handle valueless ret expressions as block results. Closes #521
2011-06-22 17:20:01 -07:00
Paul Stansifer
b4c3b83f26
Fix bug: globbed imports were importing everything visible from the other
...
module, not just everything exported.
2011-06-22 15:41:39 -07:00
Brian Anderson
adc18bb24a
rustc: Introduce and parse additional meta_item forms
...
Examples: #[test], #[link(name = "vers")]
Issue #487
2011-06-22 13:55:58 -07:00
Brian Anderson
cc2a514cdc
test: Enable more tests
2011-06-22 08:35:02 -07:00
Lindsey Kuper
efd8ff4647
Comments for all the anon obj tests.
2011-06-21 16:35:21 -07:00
Tim Chevalier
7fb35ecf84
Serialize constraints in types (literal arguments still not supported)
...
This involved, in part, changing the ast::def type so that a def_fn
has a "purity" field. This lets the typechecker determine whether
functions defined in other crates are pure.
It also required updating some error messages in tests. As a test
for cross-crate constrained functions, I added a safe_slice function
to std::str (slice(), with one of the asserts replaced with a
function precondition) and some test cases (various versions of
fn-constraint.rs) that call it. Also, I changed "fn" to "pred" for
some of the boolean functions in std::uint.
2011-06-21 14:37:33 -07:00
Lindsey Kuper
84005fadbf
Some progress on support for extending objects with new fields (issue
...
into four separate issues (#538 , #539 , #540 , #543 ) with corresponding
tests.
2011-06-21 13:31:27 -07:00
Lindsey Kuper
718ee98f43
More descriptive identifiers.
2011-06-21 13:31:27 -07:00
Brian Anderson
34040be580
test: Add a test for distinguishing attributes from extensions
...
Issue #487
2011-06-21 11:50:55 -07:00
Brian Anderson
23d6a6bde1
rustc: Remove unused slice call from extfmt. Closes #532
2011-06-21 07:49:40 -07:00
Eric Holk
a2dcd08cc2
Added string duplication to deep_copy. Closes #520 .
2011-06-20 13:47:02 -07:00
Eric Holk
992153672b
Removed duplicated ret_ty_of_fn. This also means the native function branch is working now, so this commit closes #506 .
2011-06-20 12:04:33 -07:00
Eric Holk
ce50ae3212
Added a test case for #506
2011-06-20 12:04:33 -07:00
Patrick Walton
7bb6733f2c
test: Add a test case for derived-tydescs-before-dynamic-allocas
2011-06-18 18:44:21 -07:00
Patrick Walton
ca2ff9c50d
stdlib: Add ivec::grow_set()
2011-06-18 16:41:09 -07:00
Patrick Walton
5d90b1df4b
stdlib: Add ivec::grow() and ivec::grow_fn()
2011-06-18 16:29:45 -07:00
Patrick Walton
ef65542b1d
test: Add test cases for ivec::init_elt, ivec::last, and ivec::slice
2011-06-18 16:05:44 -07:00
Tim Chevalier
7fc89f573d
Restructure the "checking" pass in typestate
...
I noticed that typestate was being lazier than it should be,
because it was only checking typestate for statements and
top-level expression (that is, the expression in a stmt_expr, but
not any subexpressions). So I rewrote the checks in tstate/ck.rs
to use walk, which exposed a few bugs in typestate that I fixed.
Also added some more test cases for if-check.
2011-06-17 19:09:18 -07:00
Patrick Walton
a4eb6630f3
rustc: Increment by the dynamically-computed size in ivec::trans_append. Uncomment init_fn test in lib-ivec.
2011-06-17 19:01:14 -07:00
Patrick Walton
e0afcb400b
test: Comment out the init-fn line in lib-ivec. Puts out burning tinderbox.
2011-06-17 17:53:43 -07:00
Patrick Walton
5fb9325848
rustc: Fix a bunch of memory management bugs relating to generic interior vectors. Uncomment all tests in lib-ivec.
2011-06-17 17:31:24 -07:00
Eric Holk
9adacfb26a
Adding a test case for getcwd and related functions.
2011-06-17 15:53:20 -07:00
Eric Holk
71e1db596c
Added a test case for #507
2011-06-17 15:17:46 -07:00
Brian Anderson
2a69db5b76
test: Fix mismatched types in prep for typechecker fixes
...
Issue #500
2011-06-17 11:35:00 -07:00
Patrick Walton
982f51aa95
stdlib: Fix reserve on zero-length interior vectors; uncomment test_unsafe_ptrs()
2011-06-16 18:01:57 -07:00
Patrick Walton
d47101703e
stdlib: Sketch out ivec::init_fn, currently segfaulting
2011-06-16 17:48:59 -07:00
Brian Anderson
a68a5c9b5e
Disable lib-ivec's test_unsafe_ptrs. Not working here
2011-06-16 17:34:39 -07:00
Brian Anderson
e83a115d79
rustc: Parse crate attributes in standalone .rs files
...
Issue #487
2011-06-16 17:23:20 -07:00
Brian Anderson
ffae642663
rustc: Parse attributes in crate files
...
Issue #487
2011-06-16 17:23:20 -07:00
Brian Anderson
62939e41b2
rustc: Parse inner items of file-level modules linked from crate files
...
Issue #487
2011-06-16 17:23:20 -07:00
Patrick Walton
40746fa447
rustc: Implement conversions from interior vector data to unsafe pointers and vice-versa
2011-06-16 17:07:02 -07:00
Graydon Hoare
eb9969f546
Add support for marking files no-reformat.
2011-06-16 16:42:29 -07:00
Patrick Walton
050f62983d
stdlib: Introduce an ivec module into the standard library; add a minimal test case
2011-06-16 16:08:26 -07:00
Patrick Walton
d90ad442b4
rustc: Work around leak when translating interior vectors. Un-XFAIL interior-vec.rs.
2011-06-16 15:07:21 -07:00
Patrick Walton
5b341443da
test: Add an interior-vec test case, XFAIL'd for now because of leaks in the compiler
2011-06-16 14:30:10 -07:00
Brian Anderson
99301ff830
test: Add a test for outer attributes on the first module in a file
...
Issue #487
2011-06-16 14:21:43 -07:00
Brian Anderson
f3996d32b0
rustc: Parse inner attributes of modules
...
Issue #487
2011-06-16 14:21:42 -07:00
Lindsey Kuper
efc55b2a3d
Simple anonymous objects compile with stage0.
2011-06-16 12:21:49 -07:00
Tim Chevalier
219924e669
Bring back if-check
...
Add "if check" (expr_if_check), a variation on check that executes
an "else" clause rather than failing if the check doesn't hold.
2011-06-16 12:13:20 -07:00
Tim Chevalier
94ae4590c5
if-check test case
2011-06-16 12:13:20 -07:00
Michael Sullivan
a9d62e5a90
Write some tests for swap.
2011-06-16 11:47:54 -07:00
Eric Holk
67360ae618
Fixed a problem where spawn arguments were getting lost again. Also, fixed up stack alignment, which closes #496
2011-06-15 18:16:59 -07:00
Eric Holk
c4f9bd9470
Re-enabled join.
2011-06-15 18:16:59 -07:00
Brian Anderson
2772a29e92
rustc: Support outer attributes on items that are defined as statements
...
Issue #487
2011-06-15 16:01:35 -07:00
Brian Anderson
b8a5440b2d
stdlib: Add an either module
...
Like Haskell's, with left and right tags, various conversion functions
2011-06-15 15:45:41 -07:00
Brian Anderson
95bdedf12d
test: Add missing fn test cases to run-pass/item-attributes.rs
...
Issue #487
2011-06-15 15:45:41 -07:00
Lindsey Kuper
fa5a7e7453
Simple anonymous objects get through translation.
2011-06-15 12:18:52 -07:00
Graydon Hoare
766d54df93
Fix a bunch of compile-command lines to use RBUILD
2011-06-15 12:01:19 -07:00
Graydon Hoare
ce72993488
Reformat source tree (minus a couple tests that are still grumpy).
2011-06-15 11:19:50 -07:00
Brian Anderson
6c6d7c3916
test: Add tests for multiple outer attributes on items
...
Issue #487
2011-06-15 09:48:59 -07:00
Brian Anderson
697fdaac24
test: Add test cases for outer attributes on all item types
2011-06-15 09:46:38 -07:00
Brian Anderson
0eefa5f9d3
rustc: Parse module attributes
...
Issue #487
2011-06-15 09:46:37 -07:00
Marijn Haverbeke
c7ab88cc35
Implement checking against assignments to immutable obj fields
2011-06-15 14:59:51 +02:00
Marijn Haverbeke
5fb518abc9
Fix assignments to immutable fields throughout the code
2011-06-15 14:10:07 +02:00
Graydon Hoare
b7f043eeb7
Add new testcase to show the nature of our exciting block-expr / trailing unop interaction.
2011-06-14 17:07:48 -07:00
Tim Chevalier
7532681612
Add xfail-stage0 to some tests (not sure if it matters...)
2011-06-14 12:27:23 -07:00
Marijn Haverbeke
471436a299
Implement function expressions/anonymous functions
...
Looks like 'fn(..arg..) -> ret {body;}. They don't support type
parameters or upvars yet.
2011-06-14 18:22:46 +02:00
Eric Holk
d1857d30fc
This is the mega-ucontext commit. It replaces the task switching mechanism with a new one inspired by ucontext. It works under Linux, OS X and Windows, and is Valgrind clean on Linux and OS X (provided the runtime is built with gcc).
...
This commit also moves yield and join to the standard library, as requested in #42 . Join is currently a no-op though.
2011-06-13 18:14:13 -07:00
Brian Anderson
1595c9d767
rustc: Assignment expressions have nil type. Closes #483
2011-06-13 17:57:43 -07:00
Graydon Hoare
9671d21408
Implement meta tag matching in creader. Start using it in rustc.rc. Close #459 . Close #457 .
2011-06-10 15:54:41 -07:00
Patrick Walton
d8b271e3b1
test: Change bitwise.rs to use ! instead of ~. Should put out burning tinderbox.
2011-06-10 11:34:07 -07:00
Marijn Haverbeke
f28796ed99
Fix unsafe uses of mutable references
2011-06-10 16:44:32 +02:00
Patrick Walton
2f853ddb8d
test: Add a test case for issue #362 , "ret none".
2011-06-08 12:52:36 -07:00
Josh Matthews
df9cf0be9b
Add multiline, whitespace-eating strings.
2011-06-07 11:21:10 +02:00
Rafael Ávila de Espíndola
ee54fa5c7d
Implement enough support for pointer to get an identity function working.
2011-06-06 16:36:01 -04:00
Rafael Ávila de Espíndola
18b63865ce
Accept *foo as a pointer to foo.
...
This is accepted everywhere, since just passing a pointer is safe.
2011-06-03 14:34:19 -04:00
Tim Chevalier
76bcbfd269
Un-XFAIL break-value
...
It passes thanks to the previous two commits.
2011-06-02 17:52:04 -07:00
Marijn Haverbeke
fd5428a95e
Re-xfail lib-io test. Seems to only work on Linux
2011-06-02 17:58:49 +02:00
Marijn Haverbeke
5144f790fe
Fix and un-xfail vec-append test
2011-06-02 16:45:26 +02:00
Marijn Haverbeke
75ffe657db
Un-xfail multi test
2011-06-02 16:21:14 +02:00
Marijn Haverbeke
8ac94d59e8
Un-xfail lib-io test
2011-06-02 16:19:30 +02:00
Marijn Haverbeke
830c58b651
Un-xfail obj-dtor-2
2011-06-02 16:12:20 +02:00
Paul Stansifer
9f5dddf08c
Now imports are not re-exported unless 'export' is explicitly used.
2011-05-31 18:43:26 -07:00
Michael Sullivan
78b0d33c35
More tests for <-.
2011-05-31 17:39:14 -07:00
Michael Sullivan
68b4688875
Add some simple tests for move.
2011-05-31 17:39:14 -07:00
Brian Anderson
9daa00bf83
rustc: Teach rustc to use block results as fn return values. Closes #372
2011-05-31 19:18:55 -04:00
Brian Anderson
c7e3f88c93
rustc: Pushdown type params for tag patterns. Closes #363
2011-05-31 00:00:04 -04:00
Tim Chevalier
18883fea3a
In pre/postcondition computation, failing calls should set the postcondition
...
A non-returning call should have a postcondition in which all predicates
are true -- not just a poststate. Otherwise, alt expressions where
one or more branches terminate in a non-returning call and others
initialize a variable get rejected.
Includes a test case.
2011-05-27 20:43:51 -07:00
Graydon Hoare
85a2b0bfb9
Re-XFAIL, not valgrind-clean.
2011-05-27 15:52:00 -07:00
Eric Holk
8cfc388d40
Switched calling conventions so that spawn with multiple arguments works.
2011-05-27 15:20:58 -07:00
Eric Holk
d49998f0ed
Switching over to wrappers for spawning functions of multiple arguments. Doesn't quite work yet.
2011-05-27 15:20:58 -07:00
Eric Holk
842bf7cad1
Un-XFAILing spawn tests.
2011-05-27 15:20:58 -07:00
Eric Holk
a88af906c5
Programs using spawn terminate
2011-05-27 15:20:58 -07:00
Eric Holk
dad426419c
Working on 2 argument spawn. The arguments seem to be copied correctly once, but then they get lost.
2011-05-27 15:20:58 -07:00
Eric Holk
bb4c7a9c68
Arguments seem to be correctly passed to child processes now.
2011-05-27 15:20:58 -07:00
Lindsey Kuper
867e9fb030
Test case showing that issue 324 is resolved.
2011-05-27 12:45:01 -07:00
Michael Sullivan
a7a42c24be
Change the syntax for RECV from "var <- port" to "port |> var".
2011-05-27 12:01:20 -07:00
Michael Sullivan
ea16e582eb
Remove parser support for recv as an initializer in preparation for changing the recv syntax.
2011-05-27 12:01:20 -07:00
Tim Chevalier
147b088125
Test for use of break as an expression
...
The test was meant to verify that the typechecker correctly
allows a _|_ value (break, here) to be used in any context.
However, the compiler fails with an LLVM assertion failure.
I xfailed it, but wanted it to be on the record anyway.
2011-05-26 20:52:05 -07:00
Tim Chevalier
1a96e79fe0
Make _|_ unify with anything
...
The typechecker had a number of special cases for unifying types
with _|_ (as with checking if and alt). But, a value of type _|_
should be usable in any context, as such a value always diverges,
and will never be used by its immediate context. Changed unify
accordingly, removed special cases.
2011-05-26 20:50:25 -07:00
Paul Stansifer
af6b4821c1
Handle circularity in glob imports in a more elegant fashion.
2011-05-27 02:42:33 +00:00
Paul Stansifer
54ca8565c9
Fix bugs: make sure glob imports show up in the right module,
...
and make sure that circular glob imports don't diverge.
2011-05-27 02:42:33 +00:00
Paul Stansifer
3375b8fba2
Add list function 'has'.
2011-05-27 02:42:33 +00:00
Paul Stansifer
40fe44d23e
"import module::*;" now works.
2011-05-27 02:42:33 +00:00
Paul Stansifer
22953f52fa
Added filter_map.
2011-05-27 02:42:33 +00:00
Graydon Hoare
8e945dcd81
Remove native glues. All calls to C are direct now.
2011-05-26 16:45:01 -07:00
Brian Anderson
763380a2cc
test: xfail vector-no-ann-2 in stage0
2011-05-24 22:08:08 -04:00
Kelly Wilson
31de8e15c0
Add quick_sort3 function based on 'QuicksortIsOptimal.pdf' (see comments in file). Cleanup the quick_sort function a little, as well. Add test file.
2011-05-24 18:38:41 -04:00
Brian Anderson
776977b755
test: Un-xfail some working tests
2011-05-23 22:41:37 -04:00
Tim Chevalier
b620be9cd2
Typecheck @[] correctly
...
Previously, if you wrote
let @vec[int] foo = @[];
that would be a type error. That didn't seem right, so I changed
pushdown to unify the inner type in an unop application with the
argument type of the operator type.
2011-05-23 17:17:49 -07:00
Marijn Haverbeke
edf95efae8
Un-xfail test/run-pass/mlist
2011-05-23 23:25:55 +02:00
Marijn Haverbeke
dc2cdbf4a1
Un-xfail test/run-pass/use-import-export
2011-05-23 23:25:54 +02:00
Brian Anderson
10c904bc6a
stdlib: Add regression tests for std::str
2011-05-22 12:28:27 -04:00
Brian Anderson
f6777db615
stdlib: Add regression tests for std::map
2011-05-22 12:28:20 -04:00
Brian Anderson
bac68e4af3
stdlib: Add regression tests for std::list
2011-05-22 02:10:10 -04:00
Brian Anderson
b4c9f782e4
stdlib: Add list::from_vec
2011-05-22 02:10:10 -04:00
Brian Anderson
a0f855e488
stdlib: Report an error when getopts is given an argument to a flag option
2011-05-22 02:10:09 -04:00
Brian Anderson
079711d5f6
stdlib: Add regression tests for std::getopts
2011-05-22 02:10:09 -04:00
Brian Anderson
85bcf75da1
stdlib: Add regression test for fs::connect and a FIXME
2011-05-22 02:10:09 -04:00
Brian Anderson
d7d387171c
test: Un-xfail alias-uninit-value.rs. Closes #374 .
...
This started working correctly at some point.
2011-05-22 02:03:07 -04:00
Brian Anderson
8102926b4b
test: Use more sensible cases in expr-alt-fail-all.
...
Thanks for the review, Jesse.
2011-05-21 20:01:38 -04:00
Brian Anderson
420d18a448
test: Adda test that all arms of an alt may result in fail
2011-05-21 18:31:40 -04:00
Brian Anderson
e24d7ae967
rustc: If all if branches are _|_, then the entire if is _|_
2011-05-21 18:18:48 -04:00
Brian Anderson
b62bf8cede
rustc: Allow if expressions to fail
2011-05-21 14:22:01 -04:00
Brian Anderson
6824f119fc
rustc: Allow alt expressions to fail
2011-05-21 13:22:01 -04:00
Tim Chevalier
7b4eec215c
Some tests for ! annotations
2011-05-20 19:54:14 -07:00
Tim Chevalier
a1b440baaa
Un-XFAIL some tests that now pass.
2011-05-20 19:54:14 -07:00
Lindsey Kuper
c3410bf927
More work on anonymous objects.
2011-05-20 17:59:56 -07:00
Eric Holk
51e1ce292d
Added a couple of test cases for sending messages. One works as expected, the other succeeds unexpectedly.
2011-05-20 16:51:08 -07:00
Brian Anderson
b6d2fe4d74
rustc: Translate else if blocks the same as other blocks. Closes #388
2011-05-19 23:32:09 -04:00
Brian Anderson
879a952a37
rustc: Find the correct outer scope in trans_block
2011-05-19 23:32:08 -04:00
Eric Holk
5d09e12e15
Added two version of reverse and a swap function to the standard library.
2011-05-19 17:25:37 -07:00
Lindsey Kuper
38b37fcbdb
Checking to make sure we know what 'self' is in nested objects.
2011-05-19 11:52:27 -07:00
Brian Anderson
a98ea4f3ef
rustc: Run block cleanups on else if blocks
...
With the scheme used to translate 'else if' currently the if expression is
translated in a new (else) scope context. If that if expression wants to
result in a value that requires refcounting then it will need to drop the
refcount in the cleanups of the else block.
2011-05-17 22:25:24 -04:00
Marijn Haverbeke
09d8ef8d51
Finally rename std::_xxx to std::xxx
...
Except for _task, which is still a keyword.
2011-05-17 20:41:41 +02:00
Paul Stansifer
1fdc75ee7c
Parser fix: 'fail' was eating the next token that came after it.
2011-05-17 05:40:17 +00:00
Brian Anderson
fbfd8552ab
Return a better result from blocks. Closes issue #377
...
Blocks return in a copy of the result of their ending expression, not the
direct result of the ending expression, as that may be a local variable which
gets zeroed by drop_slot.
2011-05-17 00:46:56 -04:00
Graydon Hoare
cc27e0f8c6
Update a couple tests that slipped through.
2011-05-16 19:08:59 -07:00
Graydon Hoare
a2e2e78103
Merge remote branch 'origin/master' into HEAD
...
Conflicts:
src/comp/middle/trans.rs
2011-05-16 19:04:45 -07:00
Graydon Hoare
fbbc1a77d2
Rewrite everything to use [] instead of vec() in value position.
2011-05-16 18:21:22 -07:00
Tim Chevalier
971b5d5151
Started adding support for return checking and non-returning function annotations
...
* Reorganized typestate into several modules.
* Made typestate check that any function with a non-nil return type
returns a value. For now, the check is a warning and not an error
(see next item).
* Added a "bot" type (prettyprinted as _|_), for constructs like be, ret, break, cont, and
fail that don't locally return a value that can be inspected. "bot"
is distinct from "nil". There is no concrete syntax for _|_, while
the concrete syntax for the nil type is ().
* Added support to the parser for a ! annotation on functions whose
result type is _|_. Such a function is required to have either a
fail or a call to another ! function that is reached in all control
flow paths. The point of this annotation is to mark functions like
unimpl() and span_err(), so that an alt with a call to err() in one
case isn't a false positive for the return-value checker. I haven't
actually annotated anything with it yet.
* Random bugfixes:
* * Fixed bug in trans::trans_binary that was throwing away the
cleanups for nested subexpressions of an and or or
(tests: box-inside-if and box-inside-if2).
** In typeck, unify the expected type arguments of a tag with the
actual specified arguments.
2011-05-16 16:59:25 -07:00
Brian Anderson
f33d490032
Remove xfail-boot lines from tests
2011-05-14 21:05:22 -04:00
Brian Anderson
ec30c71296
Add a regression test for issue #374 (XFAILed)
2011-05-14 13:29:49 -04:00
Brian Anderson
fb76c25729
WIP
2011-05-14 13:11:37 -04:00
Lindsey Kuper
5679f5c55e
'with' no longer a token; whitespace police.
...
Plus renaming the anonymous objects test to a more descriptive name,
and XFAILing it because it doesn't work yet.
2011-05-13 17:37:01 -07:00
Lindsey Kuper
d3242b9644
Bug fixes.
...
Fixed infinite loop on anonymous objects in parser; added
expr_anon_obj to walk.rs; fixed syntax of test case.
2011-05-13 17:35:13 -07:00
Lindsey Kuper
6c1c5b3948
More progress on anonymous objects.
...
Still segfaulting on the method-overriding.rs test, though.
2011-05-13 17:35:13 -07:00
Lindsey Kuper
7c2979e26f
Starting on support for anonymous objects. Just syntax so far.
2011-05-13 17:35:12 -07:00
Marijn Haverbeke
1a12a7b04b
Make module indices hold a list of items
...
This way, they can support having both a type and a value
of the same name.
2011-05-13 13:34:59 +02:00
Marijn Haverbeke
3816e57fd2
Downcase std modules again, move to :: for module dereferencing
...
This should be a snapshot transition.
2011-05-12 21:30:44 +02:00
Brian Anderson
e4c3287367
Reuse a single work buffer every time the SHA1 message block is processed.
...
This finally allows the full lib-sha1 test to run in a reasonable amount of
time. Was 30s, now 3s. Trims a second or two from stage2/rustc. XFAIL lib-sha1
in stage0 since it will be very slow until the next snapshot.
2011-05-11 01:38:17 -04:00
Brian Anderson
e35984b6c6
Introduce str_slice runtime function
...
This reduces the time to execute the new lib-str tests from 1:40ish to a few
seconds and will eventually allow the full lib-sha1 test to run in a
reasonable amount of time. XFAIL lib-str in stage0 - it will run very slowly
until the next snapshot.
2011-05-11 01:38:16 -04:00
Brian Anderson
4c70ddb162
Un-XFAIL syntax-extension-fmt.rs
2011-05-10 19:46:22 -04:00
Marijn Haverbeke
a3ec0b1f64
Rename std modules to be camelcased
...
(Have fun mergining your stuff with this.)
2011-05-06 22:51:19 +02:00
Kelly Wilson
850dff486e
Add quick sort function to the std lib.
2011-05-05 16:40:57 -07:00
Tim Chevalier
acf9bd7909
Test cases for pred / check stuff
2011-05-05 11:26:07 -07:00
Marijn Haverbeke
1f45dda9d2
Remove 'deprecated mutable...' from our code
...
This should make compilation a bit less noisy.
2011-05-05 20:19:43 +02:00
Marijn Haverbeke
3d738e9e06
Return a fresh, unreachable context after ret, break, and cont
...
This ensures we don't get compile errors on unreachable code (see
test/run-pass/artificial-block.rs for an example of sane code that
wasn't compiling). In the future, we might want to warn about
non-trivial code appearing in an unreachable context, and/or avoid
generating unreachable code altogether (though I'm sure LLVM will weed
it out as well).
2011-05-05 20:19:43 +02:00
Graydon Hoare
4642d7a355
extend xfail-stage0 to stage1, stage2 on obj-dtor-2.rs
2011-05-04 11:23:05 -07:00
Graydon Hoare
c36645b358
Assume xfail-stage0 implies stage1 and stage2 in tests, for now.
2011-05-03 18:14:02 -07:00
Brian Anderson
3014a5887d
Add some tests of tag-export interaction
2011-05-02 22:06:35 -04:00
Brian Anderson
2fc58fc6a0
Revert "Use check instead of assert in export-unexported-dep"
...
This reverts commit 480eda0f10
. The commit
adding the assert keyword has been restored.
2011-05-02 20:56:46 -04:00
Patrick Walton
a833f152ba
rustc: Remove the artificial block in ty.rs. Fixes self-hosting. Add a test case for this, XFAIL'd.
2011-05-02 17:50:46 -07:00
Patrick Walton
147a2d655f
Un-revert "Use different syntax for checks that matter to typestate", fixing the problem.
...
This reverts commit d08b443fff
.
2011-05-02 17:50:46 -07:00
Brian Anderson
480eda0f10
Use check instead of assert in export-unexported-dep
2011-05-02 20:48:52 -04:00
Graydon Hoare
d08b443fff
Revert "Use different syntax for checks that matter to typestate"
...
This reverts commit aa25f22f19
. It broke stage2, not sure why yet.
2011-05-02 17:35:33 -07:00
Brian Anderson
764de078e7
Add a regression test that exports can expose unexported items
...
While those unexported items can't be used by name outside the module in which
they are defined, they can be used as a sort of ADT.
2011-05-02 19:42:00 -04:00
Tim Chevalier
aa25f22f19
Use different syntax for checks that matter to typestate
...
This giant commit changes the syntax of Rust to use "assert" for
"check" expressions that didn't mean anything to the typestate
system, and continue using "check" for checks that are used as
part of typestate checking.
Most of the changes are just replacing "check" with "assert" in test
cases and rustc.
2011-05-02 12:16:29 -07:00
Brian Anderson
459b0ec833
Implement simple module export
2011-05-01 16:57:36 -04:00
Brian Anderson
e75edd5e43
Fix expr-alt-generic-box2.rs and un-XFAIL
2011-05-01 12:21:08 -04:00
Brian Anderson
831b0a7501
Un-XFAIL various tests in stage0
2011-05-01 12:15:42 -04:00
Graydon Hoare
02336e670f
Re-XFAIL lib-io.rs, not quite working yet.
2011-04-29 16:55:45 -07:00
Graydon Hoare
c11d9f4268
Un-XFAIL most library tests.
2011-04-29 15:06:53 -07:00
Patrick Walton
6daf440037
rustc: Fix vec append glue for strings. Add a test case.
2011-04-28 20:16:32 -07:00