Commit Graph

699 Commits

Author SHA1 Message Date
Michael Bebenita
988695a96c Added support for task sleeping in the scheduler. 2010-08-11 21:24:04 -07:00
Graydon Hoare
88d9a79ac8 Some ELF correctness issues, but apparently none enough to placate gdb. 2010-08-11 16:57:34 -07:00
Roy Frostig
22719e45b8 Remove commented-out code that slipped in during last commit. 2010-08-11 16:10:44 -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
c56ecc1d56 Added a -v(algrind) option to run.py. 2010-08-11 16:08:45 -07:00
Michael Bebenita
18beb7a33d Increment ref counts of objects sent along channels. 2010-08-11 16:08:45 -07:00
Michael Bebenita
8ac15c6844 Added test cases. 2010-08-11 16:08:45 -07:00
Michael Bebenita
d584de7a37 Made ref_count a word sized value. 2010-08-11 16:08:45 -07:00
Michael Bebenita
ff93e5e196 Print domain and task names in log prefix. 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
Roy Frostig
8e02a2bcb5 Fix reverse-indexing bug in _vec.init_fn. 2010-08-11 15:56:19 -07:00
Graydon Hoare
9faaf9eaf4 Tidy up run script. 2010-08-11 14:28:01 -07:00
Graydon Hoare
bf341f829b Change dwarf output on linux to switch from relative to absolute addresses based on library-mode-ness, might help fight ASLR-induced confusion. 2010-08-11 14:27:47 -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
5b5bcf9cfb Merge commit 'tohava/master'
Conflicts:
	src/boot/fe/ast.ml
2010-08-10 14:46:24 -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
Roy Frostig
75e46cc4d0 Fix a deque size bookkeeping bug. 2010-08-10 11:40:33 -07:00
Roy Frostig
fd0750b218 Get object's captured typarams when querying for an object method's typarams in Trans. Together with commit 982dcc29bf this... Closes #138. 2010-08-09 19:19:32 -07:00
Roy Frostig
982dcc29bf Get object's captured typarams when calculating sizes in the backend's fn-prologue-generation for object methods. 2010-08-09 15:45:08 -07:00
Michael Bebenita
76e03be459 XFailed some tests. 2010-08-09 08:49:54 -07:00
Michael Bebenita
97d6342bf0 Synthesize a flush_chan upcall right before a channel's ref_count drops to zero. This should only happen in the Rust code and not in the drop glue, or on the unwind path. This change allows the task owning the channel to block on a flush and delete its own channel. This change also cleans up some code around rust_port and rust_chan. 2010-08-09 08:15:34 -07:00
Michael Bebenita
5917ca3519 Fixed deadlock in the scheduler caused by condition variables. 2010-08-09 08:06:08 -07:00
Michael Bebenita
4641fcef61 Added peek() to ptr_vec. 2010-08-09 08:01:40 -07:00
Michael Bebenita
f65c885c83 Made ref_count signed to help detect negative ref_count bugs. 2010-08-09 08:00:04 -07:00
Michael Bebenita
30734a9a7b Some pretty printing in the runtime. 2010-08-09 07:52:07 -07:00
Michael Bebenita
9ff6a3d031 Added class to abstract away platform specific thread primitives. 2010-08-09 07:42:06 -07:00
Michael Bebenita
56cd4e458a Made the runtime keep track of all live domains and print their state. 2010-08-09 07:34:11 -07:00
Michael Bebenita
c5744c8aef Added the RUST_SEED env variable to seed the Rust task scheduler -- helpful when debugging task race conditions within a single thread domain. 2010-08-09 07:30:48 -07:00
Michael Bebenita
768adb3ddd Added a python script to run test cases repeatedly. This helps with debugging race conditions. 2010-08-09 07:27:39 -07:00
Michael Bebenita
0e422c748b Added "none" option to rust_log env string to disable all log output. 2010-08-09 07:07:00 -07:00
Michael Bebenita
d2c2fbe7ca Added timed_wait to condition variables. 2010-08-09 07:04:38 -07:00
Michael Bebenita
8395d46163 Changed seemingly incorrect stk_field_valgrind_id. 2010-08-09 07:01:20 -07:00
Michael Bebenita
76ba8f1d84 Changed array_list::replace() return behavior. 2010-08-09 06:59:46 -07:00
Michael Bebenita
f043ee1d33 Added Eclipse's .project and .cproject to .gitignore. 2010-08-09 06:55:27 -07:00
Michael Bebenita
d647c163fd Updated/added test cases. 2010-08-09 06:53:37 -07:00
Jeffrey Yasskin
b71340552f Add names to tasks and domains. These can either be an explicit literal string
after the "spawn" keyword, or implicitly the call expression used to start the
spawn.
2010-08-09 11:43:16 +02:00
Jeffrey Yasskin
df75a968c5 Fix LLVM translation of modules. 2010-08-08 14:29:53 -07:00
Or Brostovski
4467d7683d Merge branch 'master' of git://github.com/graydon/rust
Conflicts:
	src/boot/fe/ast.ml
2010-08-07 16:43:08 +03:00
Or Brostovski
b1c86beea8 Added AST pretty printing for communication alt statement, closes issue 19. 2010-08-07 13:44:44 +03:00
Graydon Hoare
bd7835effa Add Or to the AUTHORS file. 2010-08-06 17:43:15 -07:00
Or Brostovski
459e860457 Added forgotten handling for alt_type_else, and also for stmt_note 2010-08-06 17:34:31 -07:00
Or Brostovski
122ea68b12 Added AST pretty printing for slice expression 2010-08-06 17:34:31 -07:00
Or Brostovski
a0cc4817e9 Added AST logging, and modified AST for consistent handling of alt stmts.
- Modified the arm types, instead of a single arm type, there are now 2 (soon to be 3) arm types, one for each type of alt statement
- Added AST logging for constrained type (see fmt_constrained)
- Added AST logging for STMT_alt_type
- Created a generic fmt_arm for use with all alt statements
2010-08-06 17:34:31 -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
Roy Frostig
80a1cd3d1e Redo yesterday's buf_writer-wrapper in a less silly and convoluted way. Add integer stringifying functions to _int module. 2010-08-06 15:48:23 -07:00