Roy Frostig
4a7aa75b5d
Make _io.buf_reader read more than 0 bytes at a time.
2010-08-19 17:37:22 -07:00
Patrick Walton
b6b348a13c
Export all item code to stabs on Windows (including e.g. object methods)
2010-08-19 16:50:18 -07:00
Patrick Walton
31aceda09e
Export glue as stabs on Windows as well
2010-08-19 16:15:37 -07:00
Patrick Walton
09ebda7ce5
Add some mangled stabs to help debugging on Windows
2010-08-19 15:38:57 -07:00
Patrick Walton
cd6be20caa
Use "/usr/bin/env python" per the prevailing style
2010-08-19 10:25:58 -07:00
Patrick Walton
64be30936b
Don't complain about \r when core.autocrlf is on in Git... and work in Python 2.4, 2.6, and 3.x.
2010-08-18 16:14:44 -07:00
Patrick Walton
1d10582d62
Revert "Don't complain about \r when core.autocrlf is on in Git"
...
This reverts commit 828afaa2fa
.
2010-08-18 16:04:50 -07:00
Graydon Hoare
4727532e95
Simplify lexer/parser structure to use stdio_reader.
2010-08-18 15:41:24 -07:00
Graydon Hoare
f0d4e6c511
Add stdio_reader to io, just use FILE* values for now. We have things to do.
2010-08-18 15:41:24 -07:00
Patrick Walton
b4f92774d0
Don't complain about \r when core.autocrlf is on in Git (now working with Python 2.6).
2010-08-18 15:30:31 -07:00
Patrick Walton
724d7235e5
Revert "Don't complain about \r when core.autocrlf is on in Git"
...
This reverts commit 828afaa2fa
.
2010-08-18 15:24:44 -07:00
Patrick Walton
828afaa2fa
Don't complain about \r when core.autocrlf is on in Git
2010-08-18 15:19:36 -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
Graydon Hoare
51412cb5fa
Add do-nothing obj type for lexer to rustc.
2010-08-18 11:35:34 -07:00
Graydon Hoare
a1b57e69cd
Add mod token to rustc.
2010-08-18 11:35:12 -07:00
Graydon Hoare
49f668dff3
Add mod common to rustc.
2010-08-18 11:34:47 -07:00
Graydon Hoare
b5ad78f316
Change indent on rustc.rc.
2010-08-18 11:34:22 -07:00
Graydon Hoare
102ec16877
Flesh out the ast module in rustc a little.
2010-08-18 09:00:10 -07:00
Graydon Hoare
9db70bfc42
Add test code that exercises LLVM in rustc. Works.
2010-08-18 00:19:45 -07:00
Graydon Hoare
3f2c39b3d8
Fix symbol names on LLVM C library binding and library-name for LLVM.
2010-08-18 00:19:25 -07:00
Graydon Hoare
9277f551d3
Add support for casting native types.
2010-08-18 00:18:46 -07:00
Michael Bebenita
a4b8c74f9f
Added simple deadlock detection in the scheduler.
2010-08-17 23:49:57 -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
9fa2b53d8c
Add a "special" rust_log flag to be used for debugging in cases where the full log output prevents races from occurring.
2010-08-17 23:49:57 -07:00
Michael Bebenita
e20752de68
Added labels to blocking conditions.
2010-08-17 23:49:57 -07:00
Michael Bebenita
7ff39ea448
Fixed deadlock by removing channel flushing.
2010-08-17 23:49:57 -07:00
Michael Bebenita
6e9f0f952d
Made the lock_free_queue lock (temporarily, until fixed).
2010-08-17 23:49:57 -07:00
Michael Bebenita
028702a798
Updates to run.py. You can now pass in the rust_log and a flag to terminate on the first failure.
2010-08-17 23:49:57 -07:00
Graydon Hoare
766b91d88b
Add support for a reserved-words list and reserve the various not-supported-but-plausible IEEE datatypes.
2010-08-17 14:48:00 -07:00
Michael Bebenita
560d7b4983
Re-xfailed tests because Windows is still complaining.
2010-08-16 23:28:01 -07:00
Michael Bebenita
5d98a311e4
Putting out the burning tree on Windows. Turns out you can completely starve threads by not yielding on windows/vmware, really weird.
2010-08-16 18:44:26 -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
Graydon Hoare
7e62aa6801
Absent any deep overhauls to syntax or constant-handling, hack in the ability to project a cexp var binding to a token in the parser. Use it in comp/rustc.rc and comp/lib/llvm.rs.
2010-08-16 13:02:46 -07:00
Patrick Walton
176899a970
Evil solution to the problem of importing the same opaque from two different files. Closes #145 .
2010-08-13 16:33:04 -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
Graydon Hoare
8149bb1411
Zero LMA/VMA of debug sections in elf. Closes #148 .
2010-08-12 18:45:41 -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
Roy Frostig
6bce296d9f
Address FIXME in _vec waiting on closed issue #108 .
2010-08-12 13:18:10 -07:00
Roy Frostig
445d3fe39c
Add vec debugging utility to _vec module.
2010-08-12 13:11:49 -07:00
Graydon Hoare
5267b77d3b
Add more LLVM library bindings to rustc.
2010-08-12 12:10:36 -07:00
Graydon Hoare
bc0d1fbae5
Add modelines and related emacs chatter to rustc.
2010-08-12 10:29:23 -07:00
Graydon Hoare
c599b32646
Kill old parser support for type-parametric modules. We don't support those.
2010-08-12 10:28:23 -07:00
Graydon Hoare
5297582ba2
Add mostly-empty AST module to rustc.
2010-08-12 10:27:50 -07:00
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
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
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
Roy Frostig
514fb4b321
Accept uint literals as literal patterns.
2010-08-06 15:44:09 -07:00
Tohava
7d38caf9c3
Added forgotten handling for alt_type_else, and also for stmt_note
2010-08-06 17:15:55 +03:00
Tohava
4bc173fd3c
Added AST pretty printing for slice expression
2010-08-06 16:11:15 +03:00
Graydon Hoare
db561b52ff
Degrade emitter size cache to just a flat hashtable with regular flushes (sigh) and re-introduce horrible bounce-off-spill hack for DIV, MUL, etc.
2010-08-05 17:44:35 -07:00
Graydon Hoare
9da8101cc8
Something is wrong with the emitter size cache; disable for now, possibly put out flaming tinderboxes.
2010-08-05 13:28:43 -07:00
Patrick Walton
53b01dc006
Add a valgrind suppression for Snow Leopard dyld
2010-08-05 12:00:34 -07:00
Graydon Hoare
935b4347e2
Mop up workarounds in stdlib no longer required as issue #93 is closed.
2010-08-05 10:10:39 -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
Tohava
ce79b0e492
Merge branch 'master' of git://github.com/graydon/rust
2010-08-05 04:19:46 +03:00
Graydon Hoare
6e98a3b64f
Thread argument-types down to internal_check_outer_lval in type.ml, in preparation for trying to infer type params from call args.
2010-08-04 17:50:57 -07:00
Tohava
0f53d03139
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-05 03:44:29 +03:00
Roy Frostig
c17ea956a2
Add per-platform file-open flags to std.os. Open buffers as desired in std._io.
2010-08-04 17:14:17 -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
Roy Frostig
1a8d609e89
Add a buffered writer to stdlib _io module.
2010-08-04 12:59:48 -07:00
Roy Frostig
b9075c23c0
Address _io.new_buf FIXME now that issue #93 is closed.
2010-08-04 11:24:09 -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
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
Graydon Hoare
22c0776247
Merge branch 'master' of git@github.com:graydon/rust
2010-08-03 19:02:09 -07:00
Graydon Hoare
d1a67574c6
Factor append_quad out of IL.emit_full, for use elsewhere.
2010-08-03 18:59:26 -07:00
Roy Frostig
299657550e
Have hashmap's insert method overwrite on existing-key insertion and return true iff overwrite did not occur.
2010-08-03 18:57:54 -07:00
Graydon Hoare
c014748c01
Remove dead implicit-destinations logic from IL.
2010-08-03 18:52:49 -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
Roy Frostig
5796ebb1e7
Address _vec.grow FIXME, as issue #89 has been closed.
2010-08-03 18:10:18 -07:00
Roy Frostig
d5fd81174e
Pass parametric types by-alias in various stdlib spots.
2010-08-03 18:06:31 -07:00
Roy Frostig
085790a73a
More stdlib hashmap bits (plus some drive-by extras).
2010-08-03 17:52:35 -07:00
Roy Frostig
7b91933eed
Avoid mem cmp mem in trans even though it's an X86ism becase we don't always catch it later on.
2010-08-03 17:42:22 -07:00
Graydon Hoare
a1ecdb103d
Fix some naughtiness of handling newlines in bracequotes and multi-line comments. Closes #142 .
2010-08-03 16:28:50 -07:00
Graydon Hoare
1fc4e9fcc6
Add tests and fix pexp bug. Closes #141 .
2010-08-03 12:20:29 -07:00
Patrick Walton
559e1e7e01
Use a better heuristic to determine whether we're on a Mac, issue 69
2010-08-02 13:26:35 -07:00
Graydon Hoare
e85f6ca4d3
Patch up another place where the newly-expanded 'closure-ptr' implicit arg needs to be passed. Amazingly, it mostly-worked without this. On some platforms.
2010-07-30 19:14:42 -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
Graydon Hoare
0b9c882d66
Log join-wait count under rust_log::TASK bits, not ::ALL.
2010-07-29 10:41:22 -07:00
Michael Bebenita
74a79fff3a
Add a bunch of comm tests.
2010-07-28 20:30:30 -07:00
Michael Bebenita
fa70212c86
Log dead tasks when dom is just waiting for refcounts to drop.
2010-07-28 20:30:29 -07:00
Michael Bebenita
a5b7a5202c
Note that we keep running the main loop until all task refcounts are zero.
2010-07-28 20:30:29 -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
Michael Bebenita
defd8a66ea
Rename rust_proxy_delegate to maybe_proxy, flesh out logic in it. Add strong-ref distinction on rust_proxy.
2010-07-28 20:30:29 -07:00
Michael Bebenita
30b3f8a117
Add rust_dom::log_state, for logging the running/blocked/dead vectors per scheduling iteration.
2010-07-28 20:30:29 -07:00
Michael Bebenita
5db5eb0c55
Null rust_task::cond on wakeup, add asserts and logging to block/wakeup.
2010-07-28 20:30:29 -07:00
Michael Bebenita
e327aa5093
Teach task_owned and dom_owned to find their dom via consistent interface.
2010-07-28 20:30:29 -07:00
Michael Bebenita
9fe4b0d404
Add modeline / file-local emacs var blocks.
2010-07-28 20:30:29 -07:00
Michael Bebenita
6c0ce25dbf
Move rust_cond.
2010-07-28 20:30:29 -07:00
Michael Bebenita
06b52b70db
Fix typos in comments, delete obsolete comments and dead commented code.
2010-07-28 20:30:29 -07:00
Michael Bebenita
cc4906ba79
Wrap long lines.
2010-07-28 20:30:29 -07:00
Michael Bebenita
436efdcb4f
Add C++ wrapper around uthash.
2010-07-28 20:30:29 -07:00
Michael Bebenita
dbcc9b36b1
Let circular buffers actually grow to max sz, reset _next when resizing.
2010-07-28 20:30:29 -07:00
Michael Bebenita
c1795a1046
Change unread-on-destroy condition for circular buffer to merely a warning.
2010-07-28 20:30:29 -07:00
Michael Bebenita
c5e0ea7276
Add comment explaining NULL case in circular_buffer::enqueue and add logging to ::dequeue.
2010-07-28 20:30:29 -07:00
Michael Bebenita
d6cba83322
Add peek method to circular buffer.
2010-07-28 20:30:29 -07:00
Michael Bebenita
17fa6bfd9a
Change _unit_sz to unit_sz and make public in circular_buffer.
2010-07-28 20:30:28 -07:00
Michael Bebenita
60b0486c11
Make circular buffer use only power-of-two sizes, cheaper arithmetic.
2010-07-28 20:30:28 -07:00
Michael Bebenita
d786469785
Add a warning interface to rust_srv.
2010-07-28 20:30:28 -07:00
Michael Bebenita
6afb6c767e
Move allocation-tracking into rust_srv.
2010-07-28 20:30:28 -07:00
Michael Bebenita
712249d6b8
Log a separator when logging switches between threads.
2010-07-28 20:30:28 -07:00
Michael Bebenita
7ead107290
array_list improvements.
2010-07-28 20:30:28 -07:00
Roy Frostig
dfcf21ca82
Another deque test commented out.
2010-07-28 18:14:33 -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
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
a9ad2e98e3
Refer to issue #136 at the offending source point.
2010-07-28 14:11:56 -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
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
Graydon Hoare
b7d7f70d09
Slight shaving on RA, no more optimizing today. It's fast enough for now.
2010-07-26 16:55:54 -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
Graydon Hoare
3d69407b51
Fix numerous non-linearities and O(sizeof(crate)) issues in typestate system's dataflow algorithm. No longer substantial in profile.
2010-07-26 15:44:29 -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
Graydon Hoare
ec5efd2577
Note the typestate dataflow timing. The culprit is revealed.
2010-07-26 12:31:43 -07:00
Graydon Hoare
c4897f849c
Add a cumulative timer count to be sure we're getting everything.
2010-07-26 12:31:08 -07:00
Graydon Hoare
1b41d7be1a
Change ctxt_crate_main to an Ast.name.
2010-07-26 12:30:43 -07:00
Graydon Hoare
025b1e4133
Do some more iflog-guarding.
2010-07-26 12:30:02 -07:00
Roy Frostig
085cd2ee7d
vec_alloc takes four arguments these days, not three.
2010-07-25 22:21:07 -07:00
Roy Frostig
beca62e2e3
Attempt 2. This time actually reading my own diffs before committing.
2010-07-25 22:07:21 -07:00
Roy Frostig
b9f82d85f9
Attempt number 1 at extinguishing the windows tree remotely (apologies to those hacking on Sunday evening PST).
2010-07-25 22:05:39 -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
Roy Frostig
7ef9e82f51
Don't write to NULL after calling C natives returning void.
2010-07-25 21:27:28 -07:00
Graydon Hoare
3ce18d88c5
Another quick fix from jmuizelaar for that "some ocaml versions dont't notice wrong wildcard count in patterns" bug.
2010-07-23 15:38:34 -07:00
Graydon Hoare
44e2dc2789
Improve mutability checking. Closes #118 .
2010-07-23 15:29:17 -07:00
Graydon Hoare
8bd8413906
Add test for writing-through-uninit bug (reported on IRC by jrmuizel), plus fix in typestate system.
2010-07-23 13:52:46 -07:00
Graydon Hoare
62b69503d5
Stop using project_lval_ty_from_slot for lval_ty; cover residual un-caught cases in type.ml.
2010-07-23 13:51:56 -07:00
Graydon Hoare
ac228a59ce
Widen write mutability check to cover all writing stmts.
2010-07-23 13:51: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
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
Graydon Hoare
7d44ee7c3c
Add pretty-printing for alt-tag statements.
2010-07-23 12:20:20 -07:00
Graydon Hoare
4d4fa99b31
Rename STMT_init_* to STMT_new_*; former name was confusing.
2010-07-23 11:37:38 -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
7ff2094496
Back out too-platform-fussy bits in preempt-test work. I hate this test.
2010-07-22 15:39:41 -07:00
Graydon Hoare
1cb4a57b7b
Re-classify some err / bug cases as unimpl. Ideally rustboot should never produce a backtrace.
2010-07-22 15:25:29 -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
Roy Frostig
1ae13b3fdd
Source FIXME annotations for issue #81 and a correction to STMT_bind fmt.
2010-07-22 12:45:58 -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