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
Rafael Ávila de Espíndola
ffcb461370
Parse the abi in native modules.
2011-02-23 14:06:37 -05:00
Brian Anderson
eac75b7648
Teach rustc about reserved keywords
2011-02-22 21:52:23 -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
Brian Anderson
f17a3421e0
Cleanup for 'be' statement and comments about future typestate
2011-02-10 12:12:10 -08:00
Brian Anderson
6461cf30de
Add compile-fail tests for tail calls
2011-02-10 12:12:10 -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
Rafael Ávila de Espíndola
70c129f79b
Fix test now that we look at the full error-pattern. Also enable it for rustc.
2011-01-26 12:06:19 -05:00
Rafael Ávila de Espíndola
1b82060c5e
Print an error if we try to refer to a module in an expr_path.
2011-01-25 18:16:52 -05:00
Rafael Ávila de Espíndola
9e2324ad1e
Small first step in expr_path. Call find_final_def just to detect
...
unresolved names. find_final_def is going to be extended to return the
final expr.
2011-01-25 17:54:38 -05: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
9f3caed8a0
Enable more tests.
2011-01-17 18:13:55 -05: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
c1f2e29596
Produce better errors for invalid imports.
2011-01-12 12:27:31 -08: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
Graydon Hoare
e96414a6f0
Further corrections to the Makefile rules covering failing tests.
2011-01-10 14:53:20 -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
Graydon Hoare
de9fc72cb4
Add test for non-exhaustive match failure.
2010-12-02 14:50:00 -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
Graydon Hoare
3e9be14757
Add a check for binding an alias. Good thing, as we had two instances in our library.
2010-11-08 15:45:30 -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
Patrick Walton
c7ab80f743
Typecheck tags in "alt" patterns
2010-10-14 15:08:19 -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
Peter Hull
f6e3e6903b
Initial check-in of 99 Bottles Of Beer
...
using different methods (simple, iterator, tail-call, pattern match)
2010-09-30 13:50:25 -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
Or Brostovski
74cb9508cd
Closed issue 154 - prevents compiler from compiliing a line to zero statements
2010-09-30 13:40:34 -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
Patrick Walton
bc03c82c79
Check for infinitely sized tags. Un-XFAIL test/compile-fail/infinite-tag-type-recursion.rs.
2010-09-16 16:24:19 -07:00
Graydon Hoare
cd1a765c6f
Add Peter Hull's contributed translation of the fasta shootout benchmark (integer-only version).
2010-09-15 18:22:10 -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