Graydon Hoare
8ecbe49a8f
Add -minimal mode to rustboot that skips emitting code that's broken or unneeded for rustc. Shrink rustc by 300kb. Back under 1mb.
2010-10-05 18:44:39 -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
913882de7f
Make deps via temps, to avoid syntax errors wedging deps.
2010-09-22 15:27:24 -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
Graydon Hoare
5536af3d48
Beginnings of post-resolve simplify pass.
2010-09-16 16:59:37 -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
91b4a0c9f8
Add beginnings of a fuzzer to rustboot.
2010-09-16 00:26:19 -07:00
Graydon Hoare
a4a0c6ad1e
XFAIL const test on LLVM, of course.
2010-09-14 11:13:24 -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
Michael Bebenita
a493350eb5
Cleanup, refactoring, and some runtime tests.
2010-09-10 14:38:31 -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
Graydon Hoare
616b7afb72
Tidy up the sync dir, remove dead or mis-designed code in favour of OS primitives, switch rust_kernel to use a lock/signal pair and wait rather than spin.
2010-09-08 19:13:49 -07:00
Graydon Hoare
13d6f87431
XFAIL many.rs since it crashes on win32, and add a time-slice sleep to the kernel message loop to get tests to finish in a sane time.
2010-09-08 15:48:18 -07:00
Graydon Hoare
37cc139607
XFAIL task-comm-8, see if this helps burning-tree.
2010-09-08 10:40:33 -07:00
Michael Bebenita
de611a3090
Lots of design changes around proxies and message passing. Made it so that domains can only talk to other domains via handles, and with the help of the rust_kernel.
2010-09-07 18:44:12 -07:00
Michael Bebenita
a6aebdaedd
Started work on a framework for writing runtime tests, added some simple test cases.
2010-09-07 18:41:08 -07:00
Michael Bebenita
066c14009b
Added a .cpp file for rust_proxy to help avoid .h file dependencies in the future.
2010-09-07 18:41:08 -07:00
Michael Bebenita
f8ff013e3c
Added a few utility classes, cleaned up the include order of .h files, and started to make the Rust kernel own domain message queues rather than the Rust domains themselves.
2010-09-07 18:41:07 -07:00
Patrick Walton
615b1774a4
Turn native OCaml code generation on for the Mac
2010-08-27 18:06:16 -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
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
c3c3e03649
un-XFAIL lib-map.rs now that rust stacks are large and it passes on linux.
2010-08-26 13:15:46 -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
Michael Bebenita
3ab8cc6018
Fixed the location of the failing XFailed test.
2010-08-24 21:27:47 -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
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
8097a10c36
XFAIL _io test because darwin and winnt are burning.
2010-08-20 13:29:19 -07:00
Roy Frostig
af64e4f305
Allow every test to make a .tmp file that is cleaned up before execution.
2010-08-20 12:48:45 -07:00
Graydon Hoare
34e5e98cf7
Re-XFAIL destructor-ordering.rs. Valgrind doesn't like it (though oddly, doesn't make the tbox burn).
2010-08-20 11:48:31 -07:00
Patrick Walton
4c28d9a54a
Un-XFAIL some tests that (seem to) rely on large task stacks
2010-08-20 11:11:39 -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
Patrick Walton
61156ea714
Fail during build if we can't determine the current Git revision
2010-08-18 12:57:23 -07:00
Michael Bebenita
2c1ec6771b
Lots of changes around memory managment in the Runtime. Added memory regions and fixed race caused by calling rust_srv::malloc() from multiple threads when sending messages.
2010-08-17 23:49:57 -07:00
Michael Bebenita
560d7b4983
Re-xfailed tests because Windows is still complaining.
2010-08-16 23:28:01 -07:00
Michael Bebenita
14f5b5750d
Un-xfailed working tests.
2010-08-16 15:05:57 -07:00
Michael Bebenita
b40a9fa787
Pulled rust_srv in its own file. Some cleanup, and added varargs to assertion macros.
2010-08-16 15:05:57 -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
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
60e5ad384e
Put out burning tinderbox on OSX.
2010-08-10 16:49:36 -07:00
Graydon Hoare
5d2e94838e
un-XFAIL lib-deque.rs, as it seems to have been waiting on something recently fixed.
2010-08-10 16:35:40 -07:00
Graydon Hoare
9f6dec9e13
Always bounce mul/div/mod ops. Closes #131 harder.
2010-08-10 16:03:58 -07:00
Graydon Hoare
dbe8760af3
Merge commit 'jyasskin/work'
...
Conflicts:
src/rt/rust_dom.cpp
src/rt/rust_upcall.cpp
2010-08-10 13:26:00 -07:00
Michael Bebenita
76e03be459
XFailed some tests.
2010-08-09 08:49:54 -07:00
Michael Bebenita
9ff6a3d031
Added class to abstract away platform specific thread primitives.
2010-08-09 07:42:06 -07:00
Jeffrey Yasskin
df75a968c5
Fix LLVM translation of modules.
2010-08-08 14:29:53 -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
Jeffrey Yasskin
fdb842f9e6
Fix LLVM translation of modules.
2010-08-06 17:14:59 -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
Graydon Hoare
cbe68d4ccb
Add a CHECK_XFAILS target that inverts the sense of check: it tries to compile and run the tests marked as XFAILs.
2010-08-04 15:29:59 -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
ac4c5ae19b
Bah. xfail arithmetic-interference for now; linux tinderbox is burning on it and it's late.
2010-08-04 00:37:25 -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
Graydon Hoare
1fc4e9fcc6
Add tests and fix pexp bug. Closes #141 .
2010-08-03 12:20:29 -07:00
Graydon Hoare
c7714b86ea
XFAIL all task-related tests for now; yesterday's work on notification proxies broke inter-task shutdown.
2010-07-29 12:47:37 -07:00
Michael Bebenita
74a79fff3a
Add a bunch of comm tests.
2010-07-28 20:30:30 -07:00
Michael Bebenita
e1264ac59c
Add some missing headers to the Makefile's RUNTIME_HDR list.
2010-07-28 20:30:29 -07:00
Michael Bebenita
4246d567b7
Move ports out into their own file, add data_message and make communication system use it (and proxies) instead of existing token scheme.
2010-07-28 20:30:29 -07:00
Michael Bebenita
4ff8e15128
Move notification-messages out into their own file and unify into notify_message, make them use proxies, cache task proxies in dom.
2010-07-28 20:30:29 -07:00
Roy Frostig
3c22e79b77
Burn the mac and win trees less. Deque test is XFAILed, despite doing fine on Linux.
2010-07-28 17:50:07 -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
6662aeb779
Calm some LLVM indigestion of last change.
2010-07-27 17:23:41 -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
fe82978980
Modify testcase to match new syntax and un-XFAIL mutable-vec-drop.rs.
2010-07-23 12:32:12 -07:00
Graydon Hoare
6668595ebf
Include all lval-writing statements in stmt_is_init calculation, not just "copy-like". Un-XFAIL generic-tag-alt.rs
2010-07-23 12:21:06 -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
c6af9dda69
Un-XFAIL stuff that started working when pcwalton's new typechecker landed.
2010-07-22 15:40:04 -07:00
Graydon Hoare
a61be2d74a
XFAIL task-comm-5, it's burning the tinderboxes.
2010-07-22 12:26:09 -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
Jeffrey Yasskin
2c24f70cf4
Fix simple generic type parameters in LLVM.
2010-07-23 00:42:51 +08:00
Jeffrey Yasskin
09885b5b87
Implement tuple access for LLVM.
...
This involved adding an Ast.ty return to trans_lval.
I also included the code for record and box access, but their tests don't
completely pass yet.
2010-07-23 00:42:51 +08:00
Graydon Hoare
c070c11248
Nothing change, to tickle tinderboxes.
2010-07-21 15:10:16 -07:00
Graydon Hoare
5cebace3d8
XFAIL comm-2 for now; there's an assertion trappping in rust_task::wakeup.
2010-07-21 12:22:50 -07:00
Jeffrey Yasskin
215060b72b
Teach the makefile to generate .ll files,
...
which are helpful in debugging the llvm backend. Also tell git to ignore
LLVM's intermediate files.
2010-07-22 01:11:34 +08:00
Graydon Hoare
53f787e0b3
Fix more bad tabs in Makefile.
2010-07-20 15:15:36 -07:00
Graydon Hoare
01353b2a7f
Extend compile-check for llvm case.
2010-07-20 14:00:03 -07:00
Graydon Hoare
0bd33ad4b0
Re-XFAIL stuff that is definitely still unsupported in LLVM-land (like, throws Not_implemented).
2010-07-20 12:16:34 -07:00
Graydon Hoare
27c3af0d91
Fix whitespace in Makefile.
2010-07-20 12:15:44 -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
Jeffrey Yasskin
e6fa75a124
Fix argv.rs under the LLVM compiler.
...
The call to rust_start was assuming that all rust main() functions have the
same signature, but the compiler doesn't actually canonicalize them. So
instead just match the C signature of rust_start, and cast.
2010-07-19 17:52:31 -07:00