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
Patrick Walton
3e08609ed7
rustc: Add some value names to the vec append glue function. Un-XFAIL vec-growth.rs.
2011-04-28 18:45:56 -07:00
Patrick Walton
96d4577376
test: Add a test case for vec growth
2011-04-28 18:23:39 -07:00
Graydon Hoare
e300b8047f
Consider unop deref as an lval. Un-XFAIL vec-push.
2011-04-28 16:37:18 -07:00
Patrick Walton
f2fe26a821
rustc: Add a testcase for vector push (mutable aliases with *, really)
2011-04-28 16:22:13 -07:00
Graydon Hoare
f0e1bb75d1
Change vec-ref-count to handle 1 or 2, so long as non-leaky and non-creeping. un-XFAIL.
2011-04-28 14:50:03 -07:00
Patrick Walton
ffbbf42edd
test: Add a test for vector reference counts, XFAIL'd in rustc
2011-04-28 14:35:22 -07:00
Tim Chevalier
844fe20720
Fix some nested patterns in rustc
...
In rustc, nested patterns were potentially matching when they shouldn't
match, because a loop index wasn't being incremented. Fixed it and added
one test case.
2011-04-28 13:26:19 -07:00
Tim Chevalier
25694582d9
Fix bug in handling of expr_alt (postcond for alts was being intersected with postcond for scrutinee)
2011-04-28 13:26:19 -07:00
Tim Chevalier
7c4f8cb459
Further work on typestate_check
...
Lots of work on typestate_check, seems to get a lot of the way
through checking the standard library.
* Added for, for_each, assign_op, bind, cast, put, check, break,
and cont. (I'm not sure break and cont are actually handled correctly.)
* Fixed side-effect bug in seq_preconds so that unioning the
preconditions of a sequence of statements or expressions
is handled correctly.
* Pass poststate correctly through a stmt_decl.
* Handle expr_ret and expr_fail properly (after execution of a ret
or fail, everything is true -- this is needed to handle ifs and alts
where one branch is a ret or fail)
* Fixed bug in set_prestate_ann where a thing that needed to be
mutated wasn't getting passed as an alias
* Fixed bug in how expr_alt was treated (zero is not the identity
for intersect, who knew, right?)
* Update logging to reflect log_err vs. log
* Fixed find_locals so as to return all local decls and exclude
function arguments.
* Make union_postconds work on an empty vector (needed to handle
empty blocks correctly)
* Added _vec.cat_options, which takes a list of option[T] to a list
of T, ignoring any Nones
* Added two test cases.
2011-04-28 13:26:19 -07:00
Brian Anderson
8216b5fc10
Fix the interaction between various flags in #fmt
2011-04-26 20:49:03 -04:00
Brian Anderson
2e12fbfc06
Support octal #fmt conversions
2011-04-26 20:20:17 -04:00
Brian Anderson
66b59e4b05
Make #fmt char conversions behave like printf
2011-04-26 20:20:17 -04:00
Graydon Hoare
912c1fc81c
Fix busted iter/put code. Un-XFAIL foreach-box-drop.rs.
2011-04-23 14:22:10 -07:00
Graydon Hoare
3b047bad6e
New minimal test for current stage2 blocker.
2011-04-22 02:07:41 +00:00
Patrick Walton
c78b73b71d
test: Un-XFAIL drop-parametric-closure-with-bound-box.rs, oops.
2011-04-21 17:36:10 -07:00
Patrick Walton
11c359962e
test: XFAIL lib-box on stage0. Upstream LLVM doesn't have the library reading patch yet.
2011-04-21 17:35:25 -07:00
Patrick Walton
735435bf96
stdlib: Add a pointer equality function to the standard library and a test case
2011-04-21 16:44:17 -07:00
Graydon Hoare
9034a8fbd6
Fix #335 , log context needs to be a scope to capture cleanups.
2011-04-20 04:55:55 +00:00
Graydon Hoare
d1b9ddc8d4
Add testcase for bootstrap blocker and fix for each result type to nil.
2011-04-19 16:53:12 -07:00
Graydon Hoare
928b25c9fb
Un-XFAIL a few recently passing tests.
2011-04-19 15:41:45 -07:00
Patrick Walton
0ee997cee6
rustc: Make structured comparison glue instead of emitting it inline
2011-04-19 15:29:27 -07:00
Graydon Hoare
d2bd07dcb0
Remove effect system from src.
2011-04-19 13:35:49 -07:00
Brian Anderson
7f90000ab6
Precision overrides 0-padding in #fmt
2011-04-18 22:53:26 -04:00
Brian Anderson
869b28e393
Left-justification overrides 0-padding in #fmt
2011-04-18 21:36:04 -04:00
Brian Anderson
d4f1a48111
Support 0 flag in #fmt
2011-04-18 21:36:04 -04:00
Graydon Hoare
8a6590a75f
Remove use of 'use' from type-params-in-for-each.rs, put out darwin fire.
2011-04-18 12:20:50 -07:00
Brian Anderson
9976bb93d6
Support the space flag in #fmt
2011-04-17 19:50:58 -04:00
Brian Anderson
86a43c24d6
Support + flag in #fmt
2011-04-17 18:19:26 -04:00
Brian Anderson
1bec738c56
Support #fmt precision for bools, with same rules as strings
...
Not totally confident this is desirable. The alternative would be to make it a
compile error.
2011-04-17 17:24:17 -04:00
Brian Anderson
da996d6e6b
Fix indentation in syntax-extension-fmt.rs
2011-04-17 17:12:20 -04:00
Brian Anderson
685e820465
Treat char #fmt conversions just like str conversions
...
Add missing tests
2011-04-17 17:06:55 -04:00
Brian Anderson
8f6603f58e
Support #fmt precision for signed types
2011-04-17 16:51:17 -04:00
Brian Anderson
4c0aea69da
Support #fmt precision for unsigned types
2011-04-17 16:18:25 -04:00
Brian Anderson
c7edcb3a72
Support #fmt precision for string types
2011-04-17 13:10:02 -04:00
Brian Anderson
96e3e29e88
Support left-justification in #fmt conversions
2011-04-16 19:43:29 -04:00
Brian Anderson
f7b68e9edd
Add another test for #fmt conversion widths
2011-04-16 18:22:14 -04:00
Brian Anderson
dcfdb02fab
Make #fmt support explicit conversion widths
2011-04-16 18:01:17 -04:00
Brian Anderson
07e820089f
More tests for #fmt
2011-04-16 18:01:17 -04:00
Patrick Walton
0c288720b6
rustc: Capture type parameters into for-each blocks. Add a test case.
2011-04-15 18:14:29 -07:00
Graydon Hoare
232c450957
Work on destructors, not entirely functional yet (no tydesc integration).
2011-04-14 16:50:59 -07:00
Patrick Walton
55ab187c9c
rustc: Add a test case for previous commit
2011-04-14 12:51:27 -07:00
Brian Anderson
99a697b56a
Add support for upper-case hex and binary output to #fmt.
...
Only works for uints at present. Necessitated the addition of _str.to_upper.
2011-04-13 22:14:54 -04:00
Brian Anderson
4844e1c08a
Add support for printing uints as lower-case hex to ExtFmt.
...
Begin passing an ExtFmt.RT.conv parsed format description to each of the
ExtFmt.RT.conv* functions.
2011-04-13 22:14:24 -04:00
Brian Anderson
44aed626bf
Add ExtFmt test for unsigned type
2011-04-13 22:13:04 -04:00
Brian Anderson
330fdd2b04
Fix a typo in test expr-alt-generic-box1.rs
2011-04-13 21:46:20 -04:00
Graydon Hoare
eb33a5307b
Remove gc() call from end of lib-map.rs, works on stage0 otherwise (stage0 produces no gc info)
2011-04-13 15:47:05 -07:00
Graydon Hoare
afeb3a417c
Fix temporary-spilling logic in trans_args, uncomment most of lib-deque.rs (which now passes on stage0).
2011-04-13 15:21:54 -07:00
Graydon Hoare
0910a7323c
Add generic-temporary.rs minimal test showing cause of lib-deque.rs failure on stage0.
2011-04-13 13:21:06 -07:00
Graydon Hoare
2c65e10a9f
Fix lib-deque.rs to pass typarams by alias.
2011-04-13 12:29:34 -07:00
Graydon Hoare
80a4b1ba53
Slight updates to match API drift in io, lib-io.rs passes.
2011-04-13 12:05:15 -07:00
Graydon Hoare
5f6abdc0e8
Un-XFAIL generic-tag-corruption.rs.
2011-04-12 12:58:43 -07:00
Brian Anderson
bba245f3e6
Add support for bool, char to extfmt.
...
XFAIL syntax-extension-fmt in rustboot.
2011-04-11 21:54:03 -04:00
Graydon Hoare
d218df02bf
Add new minimal testcase showing generic tag memory corruption.
2011-04-11 15:00:18 -07:00
Brian Anderson
1f04c3dcef
Un-XFAIL expr-block-fn.rs
...
It mysteriously works now.
2011-04-10 16:25:09 -04:00
Brian Anderson
0abccc6370
Add a test case for calling generic functions taking alias args with box types
2011-04-07 22:23:07 -04:00
Brian Anderson
a4f8de382a
Add an XFAILed test for blocks that result in functions
2011-04-07 22:13:39 -04:00
Brian Anderson
d2d42fd4c7
Make block results work for generic types
...
I think just about every type can be used as a block result now. There's quite
a proliferation of tests here, but they all test slightly different things and
some are split out to remain XFAILed. The tests of generic vectors are still
XFAILed because generic aliased boxes still don't work in general.
2011-04-07 21:58:36 -04:00
Lindsey Kuper
21b31a350a
Updated test to use 'check' rather than just logging results.
2011-04-07 15:22:34 -07:00
Lindsey Kuper
1092bbfff0
Support for self-calls that take arguments.
...
Nicer parsing of self-calls (expr_self_method nodes inside expr_call
nodes, rather than a separate expr_call_self) makes typechecking
tractable. We can now write self-calls that take arguments and return
values (see: test/run-pass/obj-self-*.rs).
2011-04-07 14:26:34 -07:00
Patrick Walton
08bf4d1f19
"xfail-stage0", not "XFAIL-stage0"
2011-04-07 13:53:11 -07:00
Patrick Walton
3236e6008c
XFAIL lib-option.rs in stage0 due to crash on Darwin on tinderbox
2011-04-07 13:44:20 -07:00
Patrick Walton
a97a200413
Fix effect on deref-lval
2011-04-07 13:30:50 -07:00
Patrick Walton
015c0d0d59
rustc: Allow dereference expressions to be used as lvalues. Add a test case.
2011-04-07 12:51:27 -07:00
Patrick Walton
cd6962f29d
rustc: Link to external tag discriminants. Un-XFAIL test/run-pass/lib-option.rs.
2011-04-07 11:42:40 -07:00
Graydon Hoare
36d75d6391
Minimal testcase for next bootstrap blocker.
2011-04-06 08:33:24 -07:00
Graydon Hoare
52abd912c0
Brute force and ignorance workaround for tag-and-generic-obj; un-XFAIL it.
2011-04-05 21:08:13 -07:00
Graydon Hoare
8382990627
Add new minimal test for current blocker on bootstrapping.
2011-04-05 17:27:55 -07:00
Brian Anderson
1326d424c9
Add more tests for alt expressions
2011-04-02 20:35:51 -04:00
Brian Anderson
21fb49ad95
Join the results of alt arms so alt can be used as an expression.
...
Un-XFAIL expr-alt.rs.
2011-04-02 20:35:50 -04:00
Brian Anderson
1bc06bc59b
Cleanup typos and newlines
2011-04-01 00:05:13 -04:00
Brian Anderson
efb738153c
Add an XFAILed test for treating alts as expressions
2011-03-31 23:23:27 -04:00
Brian Anderson
dcf04ffbad
Un-XFAIL expr-if-box.rs
2011-03-31 23:15:11 -04:00
Brian Anderson
cf16f4f7e5
Add a test for block expressions of generic types. XFAILed
2011-03-31 23:15:11 -04:00
Brian Anderson
c27b72e323
Add another test for blocks as expressions
2011-03-31 23:15:11 -04:00
Brian Anderson
19a949c15e
Un-XFAIL expr-block-box.rs
2011-03-31 23:15:11 -04:00
Brian Anderson
bd1c61548e
Move str test from expr-if.rs to expr-if-box.rs in preperation for breaking that code path.
2011-03-31 23:15:11 -04:00
Brian Anderson
2490cd3275
Add a test for block expressions that have results. XFAILed.
2011-03-31 23:15:11 -04:00
Graydon Hoare
b5a4336487
Re-XFAIL lib-int.rs and lib-uint.rs.
2011-03-29 23:10:28 -07:00
Graydon Hoare
61e5587eab
Re-XFAIL lib-bitv.rs harder
2011-03-29 22:58:50 -07:00
Graydon Hoare
51807ad628
Re-XFAIL lib-bitv.rs
2011-03-29 22:08:35 -07:00
Patrick Walton
b09e09c673
rustc: Un-XFAIL lib-uint.rs
2011-03-29 18:16:53 -07:00
Patrick Walton
601cf8c97f
rustc: Un-XFAIL lib-int.rs.
2011-03-29 17:31:48 -07:00
Patrick Walton
626bdaaa1f
rustc: Parse parameter IDs in external crate metadata. Un-XFAIL lib-bitv.rs.
2011-03-29 17:25:55 -07:00
Lindsey Kuper
55fbed3d8d
Beginnings of support for magical self prefix; nothing profound happening yet.
2011-03-29 15:59:15 -07:00
Brian Anderson
8f2a97a562
Add partial support for if expressions resulting in generic types
2011-03-28 21:14:08 -07:00
Brian Anderson
38d5453584
Add an XFAILed test for if expressions resulting in boxes
2011-03-28 21:14:06 -07:00
Brian Anderson
aced4ce145
Handle structural types as the result of if expressions
2011-03-28 21:14:04 -07:00
Brian Anderson
a5a319fa04
Teach rustc to use the result of if expressions
2011-03-28 21:14:03 -07:00
Graydon Hoare
268b2140dc
Add long-while.rs to check on frame growth.
2011-03-28 18:07:29 -07:00
Marijn Haverbeke
6ecdc04788
Add support for break and cont to rustc
...
Testing proper cleanup is hampered by
https://github.com/graydon/rust/issues/293
2011-03-27 14:11:23 +02:00
Graydon Hoare
49d9d5688e
Switch xfail system to use comments embedded in source files.
2011-03-25 12:19:20 -07:00
Tim Chevalier
a47cd50dfb
Parse FP literals without coercing to int. This allows parsing 64-bit
...
floats. However, if someone writes a literal that can't be represented
precisely in 64 bits, the front-end will accept it while the back-end
will (presumably) complain.
2011-03-25 11:20:30 -07:00
Brian Anderson
ef1bcdea70
Add test for local declarations with receive. XFAIL in rustc.
2011-03-25 11:01:52 -07:00
Marijn Haverbeke
a045514477
Start making the standard-lib utf-8 aware
...
Finally implements _str.is_utf8, adds from_chars, from_char, to_chars,
char_at, char_len, (push|pop|shift|unshift)_char. Also, proper
character I/O for streams.
2011-03-25 08:22:52 -07:00
Lindsey Kuper
0b63512f4c
Support for 'float' in type signatures.
2011-03-23 16:01:29 -07:00
Tim Chevalier
23e23bd762
Further support for floating-point. Literals with exponents work
...
and literals with the 'f32' or 'f64' suffixes work as well. In
addition, logging things with the f32 or f64 type works. (float is
still assumed to be a synonym for f64).
2011-03-22 17:31:27 -07:00
Patrick Walton
804771510e
Add a test case for empty mutable vector literals, XFAIL'd in rustboot
2011-03-22 16:48:00 -07:00
Tim Chevalier
8556b2c1ad
Added test case for floats
2011-03-22 09:42:31 -07:00
Brian Anderson
1689d99965
Add some nesting to the else-if test case
2011-03-22 08:11:38 -07:00
Brian Anderson
0bcf49305c
Add test for sending strings over channels
2011-03-22 08:04:51 -07:00
Brian Anderson
3dcb79dac9
Add a regression test for channels of nil, which happens to work in rustc, but not in rustboot
2011-03-22 08:04:47 -07:00
Brian Anderson
c02cdc32a8
Generalize send/recv to work for more types
2011-03-22 08:04:45 -07:00
Patrick Walton
082e5a5e5d
rustc: Fix inference for auto slots. Add a test case.
2011-03-18 17:43:56 -07:00
Patrick Walton
2ef9c01ffc
rustc: Implement "mutable?". Add a test case and XFAIL it in rustboot for now.
2011-03-18 11:49:47 -07:00
Patrick Walton
ea7197e2cf
rustc: Add str_from_cstr() and str_from_buf() functions to the standard library, as well as a test case
2011-03-16 18:42:08 -07:00
Graydon Hoare
54587bdccb
Switch all vases of vec += elt to vec += vec. Prohibit former in rustboot. Tweak std lib vec fns in process.
2011-03-16 14:58:02 -07:00
Brian Anderson
922f69387d
Add _int.pow
2011-03-14 15:52:48 -07:00
Rafael Ávila de Espíndola
3436979b17
Split trans' collection in two passes. This allows us to handle tags
...
that are defined after use in a block.
This is really inefficient, but for now it lets us compile the included test.
2011-03-14 16:56:03 -04:00
Graydon Hoare
5f29988a2c
Add failing test for tag-leaking case.
2011-03-10 14:15:02 -08:00
Graydon Hoare
8e8c336f93
Implement deep structural comparison through boxes and sequences.
2011-03-09 20:14:19 -08:00
Patrick Walton
ff15a93d95
rustc: Make test/run-pass/generic-tag-alt.rs valid Rust; it was passing a dynamically-sized value by value instead of by alias
2011-03-09 14:12:08 -08:00
Patrick Walton
603d820b85
rustc: Have demand_pat() extract type parameters from tags. Add a test case.
2011-03-09 14:09:02 -08:00
Patrick Walton
2986ed43e9
rustc: Substitute type parameters in type_of_variant(). Add a test case.
2011-03-09 13:31:25 -08:00
Patrick Walton
fcd195bb4c
rustc: Don't try to load dynamically-sized types when translating tag variants. Add a test case for this.
2011-03-09 12:53:12 -08:00
Graydon Hoare
01bfc3ae8b
Fix generic-bind support for bound aliases and generics.
2011-03-08 16:32:39 -08:00
Graydon Hoare
0d60918855
Most of the way through genericizing bind properly with new malloc path. Still getting the thunk call wrong.
2011-03-07 18:13:56 -08:00
Patrick Walton
3869b3bfe4
Modernize test/run-pass/generic-recursive-tag.rs. Un-XFAIL it in rustboot.
2011-03-07 15:12:41 -08:00
Graydon Hoare
abbcc0385d
Poison ty_param values in trans; fix buggy parametric obj and box malloc paths. Add generic-box test.
2011-03-07 14:05:16 -08:00
Brian Anderson
bed457d3a7
Change io.fileflag to a tag type. Remove FIXME
2011-03-06 15:13:30 -08:00
Graydon Hoare
5c7db0cde1
Rewrite rustboot's flow-graph wiring passes to be less awful. Add test for nested control-flow constructs.
2011-03-03 15:19:26 -08:00
Brian Anderson
7350b7ff23
Add more #fmt tests
2011-03-02 10:28:14 -08:00
Brian Anderson
fe5de6bfff
Parse parameter types for fmt extension
2011-03-02 10:28:14 -08:00
Brian Anderson
f1500e5872
Add fold, typecheck and trans for expr_ext
2011-03-02 10:28:14 -08:00
Brian Anderson
1c60399257
Begin work on #fmt parsing
2011-03-02 10:28:14 -08:00
Brian Anderson
9528c34774
Begin implementing #fmt in rustc
2011-03-02 10:28:14 -08:00
Patrick Walton
6c24d0403b
Revert "rustc: Push type parameters down through alt tag patterns; add a test" due to valgrind failures
...
This reverts commit 7a1d01effc
.
2011-02-25 15:49:35 -08:00
Patrick Walton
7a1d01effc
rustc: Push type parameters down through alt tag patterns; add a test
2011-02-25 13:44:08 -08:00
Patrick Walton
dcd65fac19
Cast more aggressively to the callee type when calling generic functions. Add a test-case for this, and XFAIL it in rustboot.
2011-02-24 14:24:32 -08:00
Patrick Walton
5332250d3b
Revert "Cast more aggressively to the callee type when calling generic functions. Add a test-case for this, and XFAIL it in rustboot." due to test failures
...
This reverts commit 0a65283c5e
.
2011-02-24 13:51:18 -08:00
Patrick Walton
0a65283c5e
Cast more aggressively to the callee type when calling generic functions. Add a test-case for this, and XFAIL it in rustboot.
2011-02-24 12:33:08 -08:00
Rafael Ávila de Espíndola
ffcb461370
Parse the abi in native modules.
2011-02-23 14:06:37 -05:00
Brian Anderson
c4df39609c
Rename std._io to std.io since 'io' is no longer a keyword
2011-02-22 21:52:23 -05:00
Brian Anderson
cbe8d222a8
Implement sha-1 in standard library. Closes #228
2011-02-21 01:00:43 -05:00
Patrick Walton
10befcd9a4
Add type parameters to tag types
2011-02-17 16:23:31 -08:00
Brian Anderson
0ebfb8227c
Add support for unsigned binops. Closes #57
2011-02-14 08:31:52 -08:00
Graydon Hoare
277334890d
Add alt-pattern-lit.rs test.
2011-02-10 19:13:39 -08:00
Graydon Hoare
b7dfbc9db0
Fix bug in test and un-XFAIL 4 tests now passing on rustc.
2011-02-09 13:19:20 -08:00
Rafael Avila de Espindola
ff6864aa5c
Fix expressions with paths with more than one element.
2011-02-07 14:57:34 -05:00
Rafael Avila de Espindola
8122e0c542
Add support for
...
native mod foo = "bar" ...
2011-02-07 12:50:04 -05:00
Rafael Ávila de Espíndola
57bb9d809b
Parse function declarations.
2011-02-04 11:10:04 -05:00
Rafael Ávila de Espíndola
dd3ed6139a
Add most of the plumbing for native items and add support for parsing native type declarations.
2011-02-02 10:43:57 -05:00
Rafael Ávila de Espíndola
4b06dc574b
Add very minimal support for native modules. For now they must be empty.
2011-02-01 16:57:33 -08:00
Brian Anderson
a2789363e1
Reenable xfailed tests for rustboot that pass with trivial or no modifications
2011-01-30 15:55:27 -05:00
Rafael Ávila de Espíndola
3cac20dae3
Correctly handle "import foo = bar.zed;".
2011-01-28 11:54:59 -05:00
Graydon Hoare
99106e4029
Fix bug in box-unbox.rs test.
2011-01-27 13:52:02 -08:00
Rafael Ávila de Espíndola
c170e7edfd
Resolve type paths.
2011-01-27 16:39:31 -05:00
Rafael Ávila de Espíndola
21208f2343
Handle paths correctly. This lets us handle one more test :-)
2011-01-27 15:56:10 -05:00
Graydon Hoare
11da656402
Fix bug in generic-obj.rs testcase.
2011-01-26 11:39:48 -08:00
Graydon Hoare
b361b1ee8c
Un-XFAIL 7 tests that have begun working on rustc lately. Fix one bug in mlist.rs.
2011-01-21 15:56:42 -08:00
Graydon Hoare
9d3ebd6a57
Implement dynamic GEP enough to permit expr_field to work on tup(T,T,T).
2011-01-19 16:29:14 -08:00
Rafael Ávila de Espíndola
35d53b7eb1
Look at the type params of an item_ty when resolving.
2011-01-19 16:13:33 -05:00
Graydon Hoare
e8d266c614
Change generic-drop-glue.rs to be meaningful again, and un-XFAIL on rustc.
2011-01-18 17:20:13 -08:00
Graydon Hoare
156e1b363f
Make legal and un-XFAIL generic-fn-infer.rs (on both compilers).
2011-01-17 16:03:38 -08:00
Rafael Ávila de Espíndola
58490d7fa0
Fix the last known (to me) bug in import resolution. We were not properly
...
dropping the inner part of the environment when an intermediate item resolved
in an outer scope.
2011-01-17 13:33:13 -08:00
Rafael Ávila de Espíndola
5b9eda4a41
Fix the import handling in "complex" cases. When looking a.b.c and 'a' is a
...
module, we should look for 'b' *just* in the module 'a' and then continue
resolving b.c in the environment created by updating *with* a.
Still not 100% correct, but getting there.
2011-01-14 17:34:00 -05:00
Rafael Ávila de Espíndola
3722326cd7
Add or enable some tests.
2011-01-13 18:52:06 -05:00
Rafael Ávila de Espíndola
34643eeac8
Fix another import case we got wrong: The local environment should not
...
interfere with the import statements.
2011-01-11 13:59:52 -08:00
Rafael Ávila de Espíndola
c5a766f133
Fix two invalid import cases we were not detecting:
...
* If an import was unused we would never print any errors for it.
* We would keep the existing environment in scope when descending 'foo.bar'
and would find 'bar' in the global environment if there was no 'bar' in
'foo'.
2011-01-11 13:58:39 -08:00
Graydon Hoare
a8eeec1dbd
Sketch support for reading multi-file crates in rustc. Add test, not yet working.
2011-01-10 18:18:16 -08:00
Brian Anderson
295c54e10f
Remove the assumption that circular_buffer's buffer has a power of two size
...
It was not obvious how to make this implementation work when the unit size
was not also a power of two, so for now just make the buffer size a multiple
of the unit size so it can pass all the tests.
2011-01-10 11:31:33 -08:00
Brian Anderson
a077400d4c
Remove unused variable in circular_buffer tests
2011-01-10 11:31:33 -08:00
Brian Anderson
6c6c9acd96
Rename test to reflect that the circular_buffer runtime class is what's being tested
2011-01-10 11:31:33 -08:00
Brian Anderson
97aa599b0d
Fix circular_buffer growth when _next != 0
2011-01-10 11:31:33 -08:00
Brian Anderson
f1df1d1a51
Don't allow circular_buffer to shrink below its original size when unit_sz is not a power of two
2011-01-10 11:31:33 -08:00
Brian Anderson
5f05ae68e5
Don't allow circular_buffer to shrink below it's initial size
2011-01-10 11:31:32 -08:00
Brian Anderson
04056d89c8
Fix the check for growing the circular_buffer
2011-01-10 11:31:32 -08:00
Brian Anderson
32c1c9f55c
Simplify the test for circular_buffer initialization
2011-01-10 11:31:32 -08:00
Rafael Ávila de Espíndola
2fb09eb585
Add sufficient import support to compile some simple single-crate programs.
...
This is likely not the final solution. It does repetitive work and doesn't produce
errors for invalid but unused imports. In any case, I think it is a useful step.
2011-01-07 15:17:18 -08:00
Brian Anderson
a9994a2963
Correctly initialize circular_buffer to a power-of-two bytes
2011-01-07 11:34:14 -08:00
Graydon Hoare
919d5f1c0d
New test, bind-interior.rs.
2011-01-06 12:56:30 -08:00
Graydon Hoare
26817cbb08
Add testcase I meant to add in 9ee3475e09
.
2011-01-03 13:54:55 -08:00
Brian Anderson
73fd87baf5
Don't attempt to wake tasks that aren't blocked.
...
It's possible for a supervised task to kill and wake its supervising
task then immediately try to wake it again if the supervising task
has joined the supervised. This is the easiest way to prevent that.
2011-01-03 10:59:00 -08:00
Rafael Ávila de Espíndola
f900792fa3
Parse 'import' directives in rustc.
2010-12-24 21:06:14 -08:00
Rafael Ávila de Espíndola
8d2fdac93b
Parse 'use' directives in rustc.
2010-12-24 17:03:46 -08:00
Graydon Hoare
6443179bca
Add std.sort, with a simple mergesort.
2010-12-21 00:44:06 -08:00
Graydon Hoare
734c190918
Syntax tweak: move 'mutable' from pseudo-ty-param on vec ctor to low-precedence prefix inside paren.
2010-12-13 09:25:19 -08:00
Graydon Hoare
df5f8f3e37
Add minimal test for box/deref.
2010-12-02 15:02:17 -08:00
Patrick Walton
f55f46af64
rustc: Typecheck whiles and do-whiles. Add a workaround to complex.rs pending a solution to the one-armed-if problem.
2010-11-23 17:02:08 -08:00
Graydon Hoare
44a0c7225d
Isolate while-header bug to minimal testcase, fix in rustboot, remove workaround in rustc.
2010-11-19 14:59:58 -08:00
Patrick Walton
3e482d5f69
Implement a map2() function in std._vec
2010-11-09 15:38:42 -08:00
Graydon Hoare
89946609f2
Support a special const-value refcount, use it for const strings.
2010-11-09 14:15:07 -08:00
Patrick Walton
199ff196aa
test_init_fn() in lib-vec.rs doesn't seem to segfault anymore. Un-XFAIL it.
2010-11-05 11:25:23 -07:00
Patrick Walton
adb1754e4d
Move the option type to its own module
2010-11-05 11:18:40 -07:00
Graydon Hoare
16faef2218
Fix buggy while and do-while translation in rustc. Add test.
2010-11-04 07:55:33 -07:00
Graydon Hoare
7db115834f
Split out stratum-checking pass, implement more-strict (overly aggressive) impure-effect checking.
2010-11-02 15:24:46 -07:00
Graydon Hoare
da13c508d8
First pass on splitting stratum and opacity off of effects. WIP.
2010-11-02 11:11:58 -07:00
Patrick Walton
67bcc70754
rustboot: Emit an error instead of asserting in trans when a T is passed by value
2010-10-28 15:07:05 -07:00
Graydon Hoare
05c9d885dd
Change vec slice to use uint, add push/pop/shift/unshift.
2010-10-22 11:46:04 -07:00
Dave Herman
dbe27199b8
line length police; moved comp.util.bits to std.bitv
2010-10-21 11:39:53 -07:00
Graydon Hoare
f234750d80
Fix crasher in rustc.
2010-10-14 12:41:48 -07:00
Graydon Hoare
52c2a1549c
Fetch typarams from the outermost item frame, when inside an iter-block. One less crash in rustc.
2010-10-13 15:53:38 -07:00
Graydon Hoare
caaf8679d8
Teach bind to actually bind typarams, as it claims to.
2010-10-10 00:14:26 -07:00
Graydon Hoare
d07f7533b0
Sketch out #fmt syntax extension in rustboot.
2010-10-01 14:54:40 -07:00
Graydon Hoare
2e0d075407
Fix bug in bind thunks failing top drop unbound args; add test and adjust rustc to use bind again.
2010-09-30 17:39:37 -07:00
Graydon Hoare
62c224ffe4
Drop slots on block exits even when blocks have no statements. Part way to fixing bind leakage in rustc.
2010-09-30 16:10:30 -07:00
Or Brostovski
4a3404803b
implemented break for while-loop case
...
ast.ml - added break and cont statements
item.ml - added break and cont statements
lexer.mll - added break and cont statements
token.ml - added break and cont statements
trans.ml - implemented the break statement for the while-loop case
- replaced hash table accesses with get_stmt_depth where needed
type.ml = added break and cont statements
typestate.ml - implemented the break statement for the while-loop case
- added shorthand filter_live_block_slots
walk.ml - added break and cont statements
while-with-break.rs - code for testing while loops
2010-09-30 13:45:57 -07:00
Graydon Hoare
e0f682e5fb
Add some basic string functions: index, rindes, find, substr, split, concat, connect.
2010-09-22 15:27:40 -07:00
Graydon Hoare
fc6f307787
Fix linear for loops on strings to not hit trailing null.
2010-09-22 15:27:35 -07:00
Graydon Hoare
9f0a6c21b2
Implement preliminary form of structured compare. No boxes, vectors or strings yet.
2010-09-21 11:47:10 -07:00
Graydon Hoare
c5f4789d5b
Bind pattern slots with ?, drop parens from 0-ary tag constructors, translate 0-ary constructors as constants. Rustc loses ~300kb.
2010-09-20 23:56:43 -07:00
Roy Frostig
dda16f807c
Add issue #163 testcase to str-append testcase.
2010-09-20 17:42:14 -07:00
Graydon Hoare
6cfeac162d
Translate const uses via runtime expression evaluation.
2010-09-14 11:44:25 -07:00
Graydon Hoare
7287d3aaa0
Teach front-end about simple, first-cut version of const items.
2010-09-14 10:52:32 -07:00
Graydon Hoare
bc646d01c5
Fix leaking arg slots on tail calls. Closes #160 .
2010-09-13 13:37:24 -07:00
Graydon Hoare
67aa39e1ef
Fix a leak when box types are used via type descriptors.
2010-09-12 01:05:56 -07:00
Graydon Hoare
a9e2327a18
Switch tags to purely nominal, removing TY_iso and TY_idx. Seems to mostly work, possibly a little bumpy. Changes a lot.
2010-09-09 15:59:29 -07:00
Michael Bebenita
7f6d8b95bd
Fixed race in the rust kernel.
2010-09-07 23:37:51 -07:00
Michael Bebenita
79e3856d7d
Small updates to test cases.
2010-09-07 18:41:07 -07:00
Roy Frostig
ca1475382e
Add hashmap tests exercising strings as keys and values. No longer leaks on linux.
2010-09-07 01:21:18 -07:00
Roy Frostig
974092c526
Test multi-ref'ed vec growth more seriously than before.
2010-09-03 16:25:56 -07:00
Roy Frostig
47e86a05ae
Fix rust_vec constructor assertion failure caused by slow path of upcall_vec_grow. Add testcase.
2010-08-31 13:01:57 -07:00
Roy Frostig
0d15ae4f7a
Modify alt-pattern-drop.rs to also insure the slot bound in the pattern doesn't also get dropped (again) at the end of the block containing the alt.
2010-08-27 13:48:45 -07:00
Roy Frostig
ecb7fc2038
Tiny change to tighten up alt-pattern-drop.rs test.
2010-08-27 13:29:53 -07:00
Roy Frostig
5e77e784f0
Have alt-pattern drop the slots it initializes when binding slot patterns. Add a testcase for this as well.
2010-08-27 13:29:53 -07:00
Roy Frostig
927b2f7ef4
Comment out hashmap tests exercising maps with str as key or value type, as they appear to cause leaks.
2010-08-27 11:16:49 -07:00
Roy Frostig
4c1c8460f9
Add simple hashmap tests exercising maps with str as key type, value type, and both.
2010-08-27 11:01:51 -07:00
Roy Frostig
1035ad93dd
Pinching myself for certainty. ;p
2010-08-26 20:02:07 -07:00
Roy Frostig
66b5b9567c
Test the hashmap more, exercising hash collision, element removal, and a forced rehashing that actually causes elements to change buckets. In the process, find a bug in hashmap's remove() and fix it.
2010-08-26 19:44:38 -07:00
Graydon Hoare
7cfa7bdd23
Make vreg constrs per-quad, regfence on nontrivial constrs, back out workaround to _uint, add regression test. Closes #152 .
2010-08-26 16:27:47 -07:00
Patrick Walton
a7eeeb596a
Add automatic parameter instantiation. Closes #45 .
2010-08-26 14:47:18 -07:00
Roy Frostig
8559a85cca
When copying function values, null out the destination's binding iff the source's binding is null.
2010-08-26 14:44:11 -07:00
Roy Frostig
5cf83dcc1a
Test the hashmap for growth and rehashing.
2010-08-26 13:03:28 -07:00
Roy Frostig
c3c5e6c773
Workaround issue #152 in _uint.next_power_of_two
2010-08-26 11:57:48 -07:00
Roy Frostig
6b053f24c7
Insure bools remain 0x1 or 0x0 by having boolean-NOT not just be a simple bit-NOT.
2010-08-25 17:17:14 -07:00
Graydon Hoare
91d640f90f
Merge obj-drop and closure-drop code, handles freeing bound exteriors now.
2010-08-25 16:21:50 -07:00
Graydon Hoare
c2b6c27d65
Fix edge case in uint->string conversion.
2010-08-25 13:54:27 -07:00
Graydon Hoare
af6e1d2c2b
Fix ghastly typestate bug breaking nested functions.
2010-08-25 12:08:05 -07:00
Michael Bebenita
64ff82ecf9
Implemented an lock free queue based on this paper http://www.cs.rochester.edu/~scott/papers/1996_PODC_queues.pdf , the "lock free queue" we had before wasn't lock free at all.
2010-08-24 21:07:14 -07:00
Graydon Hoare
2dc3a37f93
First successful hashmap lookups. Yay.
2010-08-24 17:38:04 -07:00
Graydon Hoare
e846643d23
Fix mod-bug in std.map, work around bug in closure typaram capture, enable insert-tests in lib-map.rs.
2010-08-24 17:23:09 -07:00
Graydon Hoare
14262c7311
Rename lib tests, enable lib-int.rs using _str.eq for now.
2010-08-24 09:09:04 -07:00
Graydon Hoare
6e3a77c3a3
Merge remote branch 'tohava/master'
...
Conflicts:
src/boot/fe/ast.ml
2010-08-23 18:19:42 -07:00
Or Brostovski
0830b5bf24
Modified parser to handle alt type andadded a few tests
...
ast.ml - modified arm types for easier polymorphism
- fixed a bug in fmt_type_arm
dead.ml - modified arm types for easier polymorphism
common.ml - added 'either'
- added some useful auxiliary functions
item.ml - modified arm code to be more polymorphic and handle both alt-tag and alt-type, also fixed the problematic case in bad-alt.rs
Makefile - added XFAIL for new alt-type test
bad-alt.rs - added test for invalid alt syntax
alt-type-simple.rs - added simple test for alt type
2010-08-21 02:41:43 +03:00
Roy Frostig
2da4fecacd
Test the buffered reader and writer in _io.
2010-08-20 12:57:38 -07:00
Graydon Hoare
ddd8feea31
Support single-element append on vec, str. Closes #44 .
2010-08-20 09:58:22 -07:00
Graydon Hoare
b34cb1b631
Fix a bunch of typestate bugs in handling if and while statement wirings.
2010-08-19 18:42:32 -07:00
Michael Bebenita
14f5b5750d
Un-xfailed working tests.
2010-08-16 15:05:57 -07:00
Roy Frostig
abe307cf45
Uncomment recently-no-longer-failing std.deque tests. Add a few arbitrary-access checks.
2010-08-13 11:55:25 -07:00
Roy Frostig
73ee16b1a4
A little tidy-up that should have gone in with 4e376852e7
.
2010-08-12 19:20:29 -07:00
Roy Frostig
4e376852e7
Fix max_sz bug that ended up causing us to index incorrectly into a vec of tag types. Add a testcase.
2010-08-12 16:21:08 -07:00
Michael Bebenita
988695a96c
Added support for task sleeping in the scheduler.
2010-08-11 21:24:04 -07:00
Michael Bebenita
74e12fcef6
Ignore upcall_flush for channels that are disassociated from ports. This makes task-comm-10 break a little less hard, but it still leaks because messages pending in the channel are never freed.
2010-08-11 16:08:45 -07:00
Michael Bebenita
8ac15c6844
Added test cases.
2010-08-11 16:08:45 -07:00
Roy Frostig
f307688bf4
Add native vec[u8] to str converter. Put in workaround for leak in str to vec[u8] converter. Add testcase exercising both. Drive-by fix a potential array-out-of-bounds write on rust_str buffers.
2010-08-11 16:06:45 -07:00
Graydon Hoare
9f6dec9e13
Always bounce mul/div/mod ops. Closes #131 harder.
2010-08-10 16:03:58 -07:00
Michael Bebenita
d647c163fd
Updated/added test cases.
2010-08-09 06:53:37 -07:00
Jeffrey Yasskin
3f6e8ffe64
Implement _str.len() to return the number of bytes, rename it to byte_len(),
...
and add a test.
2010-08-06 17:29:21 -07:00
Jeffrey Yasskin
581a95a804
Add an int->str conversion function.
...
The test currently fails because string equality isn't implemented.
2010-08-06 17:25:27 -07:00
Jeffrey Yasskin
987589e946
Change the destructor-ordering test to use channels instead of a shared mutable object.
...
This test used to take advantage of a hole in the type system that allows
objects with destructors to refer to stateful objects.
2010-08-06 17:17:04 -07:00
Graydon Hoare
29987b56e1
Move 'as' precedence up to just above relational; support indexing str and vec by all integral types. Closes #94 .
2010-08-05 10:04:11 -07:00
Roy Frostig
718c0b5963
Add to std._io some formatter/type-specific-writer mechanism. Make a few type-specific buffered writers as wrappers of buf_writer.
2010-08-04 23:09:33 -07:00
Graydon Hoare
815424c2ec
Fix pexp parser to do left-associativity, not right. Closes #130 .
2010-08-04 13:44:22 -07:00
Graydon Hoare
7595aca5e3
Kill the preallocator, install a sane replacement. Closes #131 . And probably a lot of others.
2010-08-04 00:27:36 -07:00
Roy Frostig
6277b462e9
More stdlib hashmap work. Add a simple test and XFAIL it due to a valgrind-spotted UMR.
2010-08-03 18:43:57 -07:00
Roy Frostig
5b2451c231
Address _vec.map allocation FIXME. Add test.
2010-08-03 18:18:19 -07:00
Graydon Hoare
1fc4e9fcc6
Add tests and fix pexp bug. Closes #141 .
2010-08-03 12:20:29 -07:00
Michael Bebenita
74a79fff3a
Add a bunch of comm tests.
2010-07-28 20:30:30 -07:00
Roy Frostig
dfcf21ca82
Another deque test commented out.
2010-07-28 18:14:33 -07:00
Roy Frostig
c489af8e1a
Test the deque some more.
2010-07-28 17:31:41 -07:00
Roy Frostig
237b9d4a64
Test the deque more and fix uncovered off-by-one bug.
2010-07-28 16:34:22 -07:00
Roy Frostig
f282c5ccc0
Get slots in trans_tag using Semant tables. Closes #133 .
2010-07-28 15:04:58 -07:00
Roy Frostig
596d19e2ea
Test the deque a bit. Give it a get-by-index method. Fix two uncovered state-calculation bugs --- one decently, the other with an ugly hack. Bug on the latter coming right up.
2010-07-28 14:00:44 -07:00
Graydon Hoare
8030757624
Switch machine-type lexemes to use suffixes. Remove support for foo(bar) as a cast notation. Closes #129 .
2010-07-27 19:21:51 -07:00
Graydon Hoare
4d31cf1dc5
Distill semantics of use-def maps to fewer and more-obvious words.
...
- Remove redundant uses of 'resolve' and 'referent' in semant.
- Use defn, defn_id, lval, lval_base more consistently.
- Make associated query functions more consistent.
- Closes #127 .
2010-07-27 11:19:43 -07:00
Roy Frostig
1a61fb8eb7
Adjust testcase to cover issue #91 , which was actually fixed back in commit f02f9cbf29
. Closes #91 .
2010-07-26 15:52:59 -07:00
Patrick Walton
4b97b4e79d
Move the test suite to the "as" form for casts. XFAIL a few tests for LLVM.
2010-07-26 15:22:21 -07:00
Roy Frostig
5b6e714d05
Expose an RNG (the one used by our runtime) to Rust via std.
2010-07-25 21:45:09 -07:00
Graydon Hoare
44e2dc2789
Improve mutability checking. Closes #118 .
2010-07-23 15:29:17 -07:00
Graydon Hoare
fe82978980
Modify testcase to match new syntax and un-XFAIL mutable-vec-drop.rs.
2010-07-23 12:32:12 -07:00
Graydon Hoare
b5e46ac2a0
Two more testcases for overwriting already-live box-like fields in structures, without leaking.
2010-07-23 12:22:31 -07:00
Roy Frostig
1730d2e037
Notify copy glue of dst-initialization and fix _vec.alloc issues in lib and runtime. Closes #109 .
2010-07-22 17:47:32 -07:00
Graydon Hoare
ede42cf931
A certain incomplete quantity of wrestling with "INIT" statements that don't actually initialize. Should probably rename them to MAKE. Anyway, WIP, but two steps forward (and one back). More later.
2010-07-22 17:05:45 -07:00
Graydon Hoare
0f220ecae9
Beat up on the preempt test a bit more, as it keeps hanging under valgrind.
2010-07-22 15:05:35 -07:00
Roy Frostig
3708865906
Re-introduce bits of vec-lib test that blocked on now-fixed issue #108 .
2010-07-22 12:49:11 -07:00
Graydon Hoare
eaa35611dc
Add XFAIL'ed test for return-in-iter, call unimpl when we find it. Closes #100 .
2010-07-22 12:24:55 -07:00
Graydon Hoare
c96634af4b
Fix mem op= mem bug in trans.ml (via not terribly good fix). Closes #111 .
2010-07-22 12:11:39 -07:00
Roy Frostig
c69ec53dc5
Remove explicit deref workaround in dtor-order test. No longer necessary.
2010-07-20 09:15:23 -07:00
Roy Frostig
ae515c017c
ctxt_auto_deref_lval decides whether to autoderef the entire lval, not its base.
2010-07-19 19:06:55 -07:00
Roy Frostig
fde9ca0937
Autoderef objects when passing them as implicit (indirect) arg upon vtbl-dispatch. Add testcase and XFAIL it on LLVM. Closes #112 .
2010-07-19 18:25:26 -07:00
Michael Bebenita
c80483d582
Fixed circular buffer resizing bug.
2010-07-19 17:33:50 -07:00
Michael Bebenita
00d1465d13
Added a message passing system based on lock free queues for inter-thread communication. Channels now buffer on the sending side, and no longer require blocking when sending. Lots of other refactoring and bug fixes.
2010-07-19 14:05:18 -07:00
Jeffrey Yasskin
c3c425e9f1
Work around auto-dereference crash in rustboot.
2010-07-18 14:25:18 +08:00
Patrick Walton
1ac01e16cf
Ensure that functions that should return a value do; issue 41
2010-07-16 15:34:25 -07:00
Patrick Walton
8b00ab1a48
Feed the correct return type to the typechecker when typechecking objects, and add a testcase.
2010-07-16 14:54:47 -07:00
Graydon Hoare
de8a7dc7dc
Merge branch 'contrib'
2010-07-15 23:58:13 -07:00
Jason Orendorff
7671828d45
Support nested for-each loops. Closes #79 .
2010-07-16 14:53:49 +08:00
Graydon Hoare
f300ca4ed7
XFAIL the new destructor tests; collided with new typechecker; add test for issue #109 .
2010-07-15 18:57:21 -07:00
Patrick Walton
c96f0bf738
Implement the "simple typechecker", which avoids HM inference
2010-07-15 18:27:09 -07:00
Jeffrey Yasskin
b3ca7522bb
More destruction ordering tests.
2010-07-16 08:13:08 +08:00
Jeffrey Yasskin
7dd464fdb5
Initial test that the compiler runs destructors in the right order.
2010-07-16 08:13:08 +08:00
Jeffrey Yasskin
765a2b3ecf
Add a _vec.slice function that'll hold us over until .(a,b) syntax is
...
implemented. This could actually replace .(a,b) syntax if the language grows
optional function parameters.
2010-07-16 08:13:08 +08:00
Jeffrey Yasskin
c866672a99
Add a test for std._vec.init_elt, and an XFAILed test for std._vec.init_fn.
2010-07-16 08:13:08 +08:00
Graydon Hoare
c218d06601
Merge branch 'contrib'
2010-07-15 16:49:02 -07:00
Adam Bozanich
b096b0e308
permit use before import. closes #48
2010-07-16 07:19:14 +08:00
Patrick Walton
0b675a021a
Make mutability no longer a type constructor
2010-07-15 15:20:04 -07:00
Graydon Hoare
2eba370aa2
Fix the next typo in mlist-cycle.rs; still doesn't work.
2010-07-13 14:27:23 -07:00
Graydon Hoare
b3cf793bd9
Fix post-stmt drop calculations. Closes #106 .
2010-07-11 22:31:56 -07:00
Matt Brubeck
244ea68082
Issue 66: Multi-line comments
2010-07-08 22:43:15 +08:00
Graydon Hoare
115e14a32c
Some more typestate tests.
2010-07-08 07:33:25 -07:00
Graydon Hoare
3175c83ff0
Un-XFAIL mutable-alias-vec.rs. Was only failing due to a typo, but a more thorough test revealed more bugs.
2010-07-05 14:43:02 -07:00
Graydon Hoare
f360d222c8
Uint-ify various bits of _str and _vec, enrich _vec a bit.
2010-07-05 14:42:12 -07:00
Graydon Hoare
6014384a5d
Log completion on the many.rs test.
2010-07-04 22:41:57 -07:00
Graydon Hoare
8660ce50a1
Merge branch 'master' of git@github.com:graydon/rust into exterior_and_mutable_types
2010-07-02 16:27:39 -07:00
Graydon Hoare
4d00333b1e
New test of explicit deref operator.
2010-07-02 12:55:12 -07:00
Graydon Hoare
74775eff7e
Box the args entering the vec-drop test.
2010-07-02 12:32:28 -07:00
Graydon Hoare
60c6ae3ad5
Box arguments that are supposed to be boxed.
2010-07-01 23:50:58 -07:00
Graydon Hoare
f72774db7a
Correct existing reliance on auto-box / unbox behavior in tests.
2010-07-01 18:37:30 -07:00
Graydon Hoare
792d96474e
Box the integer passed to the handle in obj-drop.rs. No more implicit arg-boxing.
2010-07-01 18:04:21 -07:00
Graydon Hoare
6a0b06e562
Rename 'exterior' to 'box' and 'interior' to 'local' (at least wrt. slots; keep MEM_interior for describing interior-parts-of-allocations)
2010-06-30 22:45:54 -07:00