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
7647b838a1
Remove reserved word tests (since reserved words were removed)
...
Ping me if you disagree, but I think that in a language that's as
in-flux as rust currently is, it is silly to try and enforce a single
future-compatibility. The reserved words didn't work well with the
parser refactor, so I dropped them for the time being. We can,
eventually, bring them back as type-only reserved words.
2011-05-13 22:00:13 +02:00
Marijn Haverbeke
ae26b775b4
Implement module namespaces
...
Module names no longer clash with type and value names. The
tokenizer/parser still needs to be taught to be more careful in
identifying keywords, so that we can use 'str' and 'vec' and so as
module names.
2011-05-13 17:20:46 +02: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
58ec5d1654
Move capture checking into resolve.rs
...
Drops capture.rs. The new algorithm also checks for captures function
arguments and obj fields.
2011-05-13 12:44:05 +02:00
Marijn Haverbeke
9419c5df77
Fix mistaken replacements in error-pattern comments in tests
2011-05-12 21:45:29 +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
Marijn Haverbeke
5bea22d75c
Add a missed xfail-stage0
2011-05-11 16:44:42 +02:00
Marijn Haverbeke
e9c12ab1d0
Rewrite comp/middle/resolve.rs
...
* Cleans up the algorithm
* Move first pass to walk (second still folds)
* Support part of a type/value namespace split
(crate metadata and module indices still need to be taught about this)
* Remove a few blatant inefficiencies (import tables being recreated for
every lookup, most importantly)
2011-05-11 12:32:37 +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
Brian Anderson
92471efff4
Un-XFAIL compile-fail export tests for stage0
2011-05-10 19:18:38 -04:00
Patrick Walton
70c759030c
rustc: Alias fix part 2 -- Check that the aliasness of function parameters matches. Add a test case.
2011-05-09 14:00:50 -07:00
Marijn Haverbeke
d39ca857fc
Remove a few more superfluous 'mutable' keywords
2011-05-06 22:52:02 +02: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
6b742aec91
Enforce in typechecker that preds return a bool
...
as well as a test case
2011-05-05 11:26:07 -07:00
Tim Chevalier
acf9bd7909
Test cases for pred / check stuff
2011-05-05 11:26:07 -07:00
Tim Chevalier
3060eadcba
Check well-formedness of constraints
...
Check that the operand in a constraint is an explicit name,
and that the operands are all local variables or literals. Still need
to check that the name refers to a pure function.
2011-05-05 11:26:07 -07:00
Tim Chevalier
bc5650a9d0
Change checks to asserts in test/bench files
2011-05-05 11:26:07 -07:00
Tim Chevalier
4f892dd9d7
Check that the operand in a check is a call
...
In addition, fix bug in fold that was turning asserts into checks.
More typechecking still needs to be done.
2011-05-05 11:26:07 -07:00
Tim Chevalier
59a0e98096
Un-XFAILed not-a-pred in stage0 (it fails correctly)
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
Brian Anderson
bd34770a92
Add missing ret statements to check_mod
...
Un-XFAIL compile-fail export tests
2011-05-04 19:29:27 -04:00
Graydon Hoare
b73a640ce0
More export XFAILs.
2011-05-04 15:35:41 -07:00
Graydon Hoare
978e3d0f4a
XFAIL some compile-fail tests mysteriously failing on win32 tinderbox.
2011-05-04 14:44:57 -07: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
456398a403
Change two compile-fail patterns to match rustc output.
2011-05-04 11:20:47 -07:00
Graydon Hoare
c36645b358
Assume xfail-stage0 implies stage1 and stage2 in tests, for now.
2011-05-03 18:14:02 -07:00
Patrick Walton
2bc17adc29
Revert "Rename the "llvm" API to "llvm-intrinsic"" due to tinderbox bustage
...
This reverts commit 6871c245a6
.
2011-05-03 17:50:37 -07:00
Patrick Walton
6871c245a6
Rename the "llvm" API to "llvm-intrinsic"
2011-05-03 15:55:01 -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
a5ccead3fd
Add a test that imports can't circumvent exports
2011-05-01 17:22:20 -04:00
Brian Anderson
f25e678365
Add a regression test for use of unexported fully-qualified paths
...
An unexported foo.baz can't be resolved from inside foo when called as foo.baz
instead of just baz. This behavior may want to change eventually.
2011-05-01 16:57:36 -04:00
Brian Anderson
a697210234
Hide unexported tag variants
2011-05-01 16:57:36 -04: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
26e177a97a
Enable typestate_check
...
Enable typestate checking (just for uninitialized vars) and un-XFAIL the
relevant tests for stage0.
2011-04-28 13:26:19 -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
0190ebfe07
Support all expression forms in typestate
...
Added support for self_method, cont, chan, port, recv, send, be,
do_while, spawn, and ext; handled break and cont correctly.
(However, there are no non-xfailed test cases for ext or spawn in
stage0 currently.)
Although the standard library compiles and all test cases pass with
typestate enabled, I left typestate checking disabled as rustc
terminates abnormally when building the standard library if so,
even though it does generate code correctly.
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
Tim Chevalier
b7dd75c904
Handle nested items correctly in typestate_check
...
Summary says it all. Actually, only nested objects and functions
are handled, but that's better than before. The fold that I was using
before to traverse a crate wasn't working correctly, because annotations
have to reflect the number of local variables of the nearest enclosing
function (in turn, because annotations are represented as bit vectors).
The fold was traversing the AST in the wrong order, first filling in
the annotations correctly, but then re-traversing them with the bit
vector length for any outer nested functions, and so on.
Remedying this required writing a lot of tedious boilerplate code
because I scrapped the idea of using a fold altogether.
I also made typestate_check handle unary, field, alt, and fail.
Also, some miscellaneous changes:
* added annotations to blocks in typeck
* fix pprust so it can handle spawn
* added more logging functions in util.common
* fixed _vec.or
* added maybe and from_maybe in option
* removed fold_block field from ast_fold, since it was never used
2011-04-19 14:56:28 -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
Rafael Ávila de Espíndola
cca6335c26
Implement the "attempted dynamic environment-capture" error in rustc.
2011-04-11 15:35:01 -04:00
Brian Anderson
1f04c3dcef
Un-XFAIL expr-block-fn.rs
...
It mysteriously works now.
2011-04-10 16:25:09 -04:00
Marijn Haverbeke
6109dba305
Disable effect checking in rustboot
2011-04-08 18:44:58 +02: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
Graydon Hoare
540d29f641
Move all allocas to dedicated basic block at top of function, to keep frames finite. Un-comment next size in nbody.rs.
2011-03-28 18:07:29 -07:00
Patrick Walton
1cb3ce89dd
shootout: Hoist out the movement too; switch square root to an LLVM intrinsic
2011-03-28 08:24:58 -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
Patrick Walton
9c5affda1a
shootout: Hoist out the vector indexing on nbody; don't rely on LICM, which isn't working for some reason (insufficient alias info?) Speeds up nbody a bit.
2011-03-26 23:10:28 -07:00
Lindsey Kuper
2650487120
Got the nbody demo working, and hopefully faster, too!
2011-03-26 17:51:54 -07:00
Lindsey Kuper
1c1c67229a
Updates to the nbody demo.
2011-03-26 17:51:42 -07: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
bcc104ce79
A first stab at the 'nbody' demo, with support for calling C sqrt().
2011-03-25 00:15:56 -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
c5721759bb
Add fannkuchredux shootout benchmark
2011-03-14 15:52:48 -07:00
Brian Anderson
cba00ac2a1
Rename binary trees benchmark to match the original shootout source
2011-03-14 15:52:48 -07:00
Brian Anderson
467b9f3908
Implement the rest of the binary trees shootout benchmark
2011-03-14 15:52:48 -07:00
Brian Anderson
922f69387d
Add _int.pow
2011-03-14 15:52:48 -07:00
Brian Anderson
595c4862ab
Remove broken 99-bottles makefile and run script
2011-03-14 15:52:48 -07:00
Brian Anderson
8438eca45c
Integrate shootout benchmarks into testsuite
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