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
Graydon Hoare
8b8186db87
No more "transplant" behavior in "let @x = y", gotta box explicitly.
2010-06-30 21:17:45 -07:00
Graydon Hoare
8e4a10790f
rewrite 'mutable &' as '& mutable', corresponding to grammar shift.
2010-06-30 02:30:17 -07:00
Roy Frostig
e692ccfb0c
Add (XFAILed) testcase for typechecker issue where fns-in-mods appear to lose their type parameters over the course of the typechecking pass.
2010-06-29 16:13:26 -07:00
Roy Frostig
0d6aaec493
Work-around and un-XFAIL generic-obj.rs test. The problem uncovered in the original XFAIL is more generally that of issue #92 .
2010-06-29 00:48:49 -07:00
Roy Frostig
d5ff6e133c
Add to generic-obj.rs testcase a method that takes an argument of the object type-param type. XFAIL the test since it no longer passes.
2010-06-28 21:45:48 -07:00
Roy Frostig
5b5b334c24
Testcase (XFAILed) for fn item given as lval.
2010-06-28 21:18:09 -07:00
Roy Frostig
a27cbd4ee8
Testcase (XFAILed) for mutable alias vec weirdness.
2010-06-28 16:36:24 -07:00
Graydon Hoare
7ea416f4c3
Add callable gc method exposed to user code, use it in mlist-cycle.rs test (still not quite working; some memory corruption in the recursive tag constructors, not the GC)
2010-06-25 23:57:30 -07:00
Graydon Hoare
c06ea8f944
Add test of recursive object types (ha, work by default) and fix effect-walker bug revealed by it.
2010-06-25 12:15:40 -07:00
Roy Frostig
85a701c8f6
Add testcases for item name conflict at the same path level.
2010-06-25 01:26:44 -07:00
Roy Frostig
241305caab
Resolve and typecheck patterns in pattern alt redux. This time featuring way more correctness.
2010-06-25 00:47:23 -07:00
Graydon Hoare
1c60be2f32
Fix bad output-slot logic in tag constructors.
2010-06-24 18:25:10 -07:00
Graydon Hoare
24d5ff75c3
Fix output-slot handling for real. It's been broken for a long time.
2010-06-24 16:19:55 -07:00
Graydon Hoare
af44ec2856
Issue 24, drop output slot when not initializing. Un-XFAIL generic-tag.rs. Add test for output slot modes with several broken cases.
2010-06-24 13:32:59 -07:00
Graydon Hoare
0364a801bb
Clean up trans_alt_tag to use slots, not assume interior words. Also remove record-based destructuring (hard on eyes). Add execution parts to generic-tag-alt.rs and un-XFAIL it.
2010-06-24 11:15:22 -07:00
Graydon Hoare
935442babc
Fix hg dependency in testsuite.
2010-06-24 08:44:14 -07:00
Roy Frostig
bc286c7f2c
Resolve and typecheck patterns in pattern alt.
2010-06-24 08:13:32 -07:00
Graydon Hoare
d6b7c96c3e
Populate tree.
2010-06-23 21:03:09 -07:00