Patrick Walton
a7b44e847a
rt: Make the builtins no longer take an explicit task parameter
2011-10-03 18:23:30 -07:00
Brian Anderson
b5bb42acfb
XFAIL run-fail/linked-failure4. Deadlocks on mac
2011-10-03 14:46:52 -07:00
Patrick Walton
968b66ad40
rustc: Implement C stack stdcall
2011-10-03 13:59:38 -07:00
Brian Anderson
3a6f3cf275
Move compiletest to src/ and cleanup build rules
2011-10-02 17:28:59 -07:00
Haitao Li
e50371060b
rustc: Fix link error on Ubuntu Oneiric. Issue #903
2011-10-02 21:29:16 +08:00
Patrick Walton
42287d0fd3
rustc: Call LLVM on the C stack
2011-09-30 18:50:07 -07:00
Patrick Walton
4793a02376
rt: Omit leading underscore on symbol names on Linux
2011-09-30 18:50:05 -07:00
Patrick Walton
e9287e55cc
rustc: Stub a --stack-growth option; it's behind a flag for now because it requires patches to LLVM.
2011-09-30 18:21:39 -07:00
Brian Anderson
f525f6e94c
Register new snapshots
2011-09-30 18:03:54 -07:00
Brian Anderson
821dd6c02c
Change the directory for target libs
...
This pushes them down from stageN/lib/rustc/$(target) to
stageN/lib/rustc/$(target)/lib in order to make room for a target bin dir
2011-09-30 17:19:24 -07:00
Patrick Walton
c065280a0b
rustc: Remove some debug code
2011-09-30 14:26:06 -07:00
Patrick Walton
7ab0897ac6
rustc: Track link_args attributes on C stack cdecl natives as well
2011-09-30 14:25:10 -07:00
Patrick Walton
dcf0e807fb
trans: Use inttoptr as appropriate when casting return values of C stack functions
2011-09-30 12:07:50 -07:00
Brian Anderson
de6d07abf9
Register snapshots and finish filesystem reorg
2011-09-29 23:33:44 -07:00
Brian Anderson
80829af872
Remove legacy library search paths
2011-09-29 23:12:31 -07:00
Brian Anderson
b569e9c657
Update snapshot scripts for the new regime
2011-09-29 22:58:34 -07:00
Brian Anderson
196cc6de2e
Teach compiletest to construct the PATH variable correctly on win32
2011-09-29 22:58:34 -07:00
Brian Anderson
ab8338fb5a
Make rustc's host triple agree with the build system's
2011-09-29 22:58:33 -07:00
Brian Anderson
0148daa058
Reorganize structure of build directory
...
Each stage is organized more according to Unix standards and to
accommodate multiple target architectures.
stageN/
bin - rustc lives here
lib - libraries that rustc needs
lib/rustc/$(target_triple/ - target libraries
2011-09-29 22:58:33 -07:00
Patrick Walton
79e4961c7f
rustc: Remove some debug code
2011-09-29 18:53:00 -07:00
Patrick Walton
f9e3a604a6
rustc: Make the generic C stack function signature include a usable return value
2011-09-29 18:52:23 -07:00
Patrick Walton
5b6dbcb030
stdlib: Un-export str::buf; add a comment
2011-09-29 18:36:27 -07:00
Patrick Walton
3be6cf7ab2
vim: Add pure
to the list of keywords
2011-09-29 18:18:37 -07:00
Patrick Walton
dd7ff8dee4
stdlib: Export str::buf
2011-09-29 17:58:51 -07:00
Patrick Walton
a5b422fe6b
rustc: Translate calls on the C stack
2011-09-29 17:34:49 -07:00
Patrick Walton
f22601321f
rustc: Fix call signature for call_c_stack
2011-09-29 17:34:49 -07:00
Patrick Walton
e31849fb79
rt: Fix assembler for C calls to work more like a regular function call
2011-09-29 17:34:49 -07:00
Patrick Walton
6dece91ed3
stdlib: Add vec::eachi to the standard library
2011-09-29 17:34:49 -07:00
Patrick Walton
c04efec87f
rustc: Add upcall stubs for the new C stack upcalls
2011-09-29 17:34:49 -07:00
Patrick Walton
41ab324539
rustc: Generate types in trans for the C-stack native ABI
2011-09-29 17:34:49 -07:00
Marijn Haverbeke
e4436c3a5d
Don't build up results for ignored expressions.
...
Issue #667
2011-09-29 12:02:37 +02:00
Marijn Haverbeke
d74a7a83d7
Fail with an informative error when trying to bind a method
...
Issue #435
2011-09-29 11:55:29 +02:00
Marijn Haverbeke
d243ea57f5
Move last remaining expression types out of trans_expr
...
Issue #667
2011-09-29 11:41:45 +02:00
Marijn Haverbeke
f089f533e8
Move expr_cast and expr_copy to DPS style
...
Issue #667
2011-09-29 10:46:49 +02:00
Marijn Haverbeke
d946e09a72
Move closure construction over to DPS style
...
Issue #667
2011-09-29 10:36:40 +02:00
Marijn Haverbeke
508c48ce10
Reduce move ops to a construct-in-place when possible
2011-09-29 10:36:40 +02:00
Brian Anderson
15e34deba3
Eliminate glue.o. Closes #990
2011-09-28 15:35:21 -07:00
Brian Anderson
e1ba559c03
Test cases for #985
...
Other restrictions on pinned kinds happened to fix this
Closes #985
2011-09-28 15:35:21 -07:00
Brian Anderson
cb4e99b688
Don't allow vectors of pinned kinds
...
Vectors of pinned kinds can't be safe because most interesting uses of vector
perform copies
2011-09-28 15:35:21 -07:00
Brian Anderson
14bac217b0
Make error patterns in some kind tests more specific
2011-09-28 15:35:21 -07:00
Patrick Walton
f7d0c1cec3
rustc: Add a new "C stack cdecl" native ABI
2011-09-28 12:58:33 -07:00
Brian Anderson
657e3ffaf5
xfail-fast run-pass/alt-range.rs
2011-09-28 12:46:29 -07:00
Brian Anderson
381205b747
Revert "Revert "Implement pattern ranges for all numeric types.""
...
This reverts commit a034f87146
.
Conflicts:
src/comp/middle/check_alt.rs
src/comp/middle/trans_alt.rs
src/comp/syntax/ast.rs
src/comp/syntax/ast_util.rs
src/comp/syntax/fold.rs
src/comp/syntax/print/pprust.rs
Conflicts:
src/comp/middle/trans_alt.rs
2011-09-28 12:46:29 -07:00
Patrick Walton
5fac684af8
vim: const
is a keyword
2011-09-28 12:40:34 -07:00
Patrick Walton
d8a80cb31f
rt: Add a call stub that switches to the C stack, untested as of yet
2011-09-28 12:26:36 -07:00
Patrick Walton
1eaaae860f
rt: Add an upcall to allocate space on the C stack. This will be used for native calls on the C stack.
2011-09-28 11:31:44 -07:00
Patrick Walton
e8757ea01f
rt: Expose the C stack inside the Rust scheduler so that C calls can switch to it
2011-09-28 10:22:02 -07:00
Patrick Walton
dbf472b0df
rustc: Switch to cdecl for all calls. This is needed to make stack growth efficient, as I need to use eax and ecx in the function prologue and can't afford to stomp on incoming arguments.
2011-09-28 10:22:02 -07:00
Marijn Haverbeke
512cfb4b83
Remove a few kludges that worked around issue #913
2011-09-28 12:59:44 +02:00
Marijn Haverbeke
c94159652a
Register new snapshot
...
It had been a while. I mostly wanted a fix for #913 in stage0.
2011-09-28 12:56:54 +02:00
Marijn Haverbeke
a3a27374bd
Don't descend into functions from relax_precond_block
...
Closes #913
2011-09-28 12:37:28 +02:00
Marijn Haverbeke
759fc101fb
Get rid of might_not_init kludge in init_local.
...
Initializing something is now safe wrt to cleanups (so the cleanup for the
local is only registered after the initialization.)
2011-09-28 11:12:35 +02:00
Marijn Haverbeke
16d5aaa962
Wait with registering cleanups for locals until after the init code ran
...
Fixes a double-cleanup that was breaking unwind-tup.rs under valgrind.
2011-09-28 10:41:19 +02:00
Marijn Haverbeke
e3626c9405
Use DPS for assignment and local initialization
...
Issue #667
2011-09-28 09:42:04 +02:00
Wade Mealing
f375391cb6
Patch to error instead of crashing when parsing unmatched double quotes
...
Patch to error and fail instead of using all available memory
then crashing to detect the error condition of an unmatched
double quote before the end of a file.
I couldn't get it to show nice error messages, so this may not be
the ideal fix.
A test case for this situation has also been added.
2011-09-27 23:20:31 -07:00
Brian Anderson
a96b16e8c3
Make it again possible to initialize resource locals via assignment
...
Some special cases allow both 'let a <- my_resource(x)' and
'let a = my_resource(x)' to work as expected despite ostensibly being
copies and moves.
2011-09-27 23:20:27 -07:00
Brian Anderson
459353e107
Prevent copies of resources into various things
2011-09-27 21:50:07 -07:00
Patrick Walton
9ba86178ef
rt: Store the task in TLS
2011-09-27 18:12:03 -07:00
Brian Anderson
888e22aacc
Add more comments about kind checking on local move initializers
2011-09-27 16:03:10 -07:00
Brian Anderson
8217e4bd38
Add xfailed tests that resources can't be copied into various things
2011-09-27 16:03:10 -07:00
Brian Anderson
b8bb663df7
Don't ever raise unique kinds of pinned kinds to shared (again)
...
So *resource, ~resource, [resource] are all pinned. This is counter to the
design of the kind system, but this way is a much clearer path to type safety.
Once we've established a good baseline with lots of tests, then we can try to
make raising pinned kinds work.
2011-09-27 16:03:10 -07:00
Brian Anderson
e50580aa66
Revert "Use DPS for assignment and local initialization"
...
This reverts commit b1b202d302
.
2011-09-27 16:03:09 -07:00
Brian Anderson
1097463d96
Add an xfailed test for bogus deep copying of things containing resources
2011-09-27 14:28:20 -07:00
Brian Anderson
4bffa5e13a
Add an xfailed test for bogus vector addition of typarams
2011-09-27 14:24:28 -07:00
Marijn Haverbeke
04f062f9d4
Fix lurking bug in matching of nil
...
Which was somehow made visible by the DPS changes.
2011-09-27 22:49:33 +02:00
Marijn Haverbeke
b1b202d302
Use DPS for assignment and local initialization
...
Issue #667
2011-09-27 20:33:09 +02:00
Marijn Haverbeke
e42f3b8481
Safeguard against self-assignment for unique types
2011-09-27 20:33:09 +02:00
Jesse Ruderman
923aa4744e
Test for #924
2011-09-27 11:05:16 -07:00
Marijn Haverbeke
94db38a530
Move expr_unary to DPS style
...
Issue #667
2011-09-27 17:31:15 +02:00
Marijn Haverbeke
92d63ffa65
Make trans_rec and trans_tup understand overwrite dests
...
Issue #667
2011-09-27 17:31:15 +02:00
Marijn Haverbeke
8282f7fe80
Move expr_binary into trans_expr_dps
...
Issue #667
2011-09-27 17:30:54 +02:00
Marijn Haverbeke
806e74fbf5
Move expr_lit and expr_vec into trans_expr_dps
...
Issue #667
2011-09-27 17:30:45 +02:00
Marijn Haverbeke
8ea72fae99
Move more non-value-returning things to trans_expr_dps.
...
Issue #667
2011-09-27 17:30:45 +02:00
Brian Anderson
b49f4689f5
Add two xfailed tests for invalid copies into vectors
2011-09-26 23:45:51 -07:00
Brian Anderson
1796abc3ef
xfail-win32 -> xfail-fast
2011-09-26 23:34:54 -07:00
Brian Anderson
4f2a0117c7
Try to appease windows by xfail-win32'ing a random test
2011-09-26 23:34:12 -07:00
Brian Anderson
df19b7a13a
Test for issue #980
2011-09-26 23:24:53 -07:00
Brian Anderson
6b42ad5ea0
Enforce copy restrictions on let initializers
2011-09-26 22:00:15 -07:00
Brian Anderson
07e13fe447
Make some nocopy tests a bit more futureproof
...
Turn the let assignment initializers into move initializers since
that assignment is going to become illegal
2011-09-26 22:00:15 -07:00
Jesse Ruderman
20c2d2a999
Distinguish #924
2011-09-26 20:44:57 -07:00
Jesse Ruderman
4ff46a1502
Add a cycle-collection fuzzer
2011-09-26 20:34:07 -07:00
Brian Anderson
3778b6c6a8
Prevent copying of uncopyable things via the copy op
2011-09-26 20:03:30 -07:00
Brian Anderson
755001725a
Prevent copying of uncopyable things via compound assignment ops
2011-09-26 20:03:24 -07:00
Brian Anderson
99cbea51a1
Don't allow vectors of pinned kinds to be copied
2011-09-26 19:57:00 -07:00
Brian Anderson
4bee452221
Don't allow copying of unique boxes of pinned kinds
...
Issue #409
2011-09-26 18:43:49 -07:00
Brian Anderson
2d5e085eb9
Add a test that unique boxes in vectors are copied when the vector is
...
Issue #409
2011-09-26 17:59:58 -07:00
Patrick Walton
a88d9effbc
rt: Don't run arbitrary destructors on cycle collection; that's just broken.
2011-09-26 17:41:22 -07:00
Patrick Walton
5c973142df
rt: Turn on cycle collection at task death; add a test case
2011-09-26 16:59:15 -07:00
Patrick Walton
ad19ab4c6f
rt: Make the logic that moves environments between tasks update the GC alloc chain correctly
2011-09-26 16:59:15 -07:00
Patrick Walton
47e5ab093a
stdlib: Fix typos in comments in lib/test.rs
2011-09-26 16:59:15 -07:00
Brian Anderson
389852b5c0
Fix tags of unique boxes
...
Issue #409
2011-09-26 14:44:08 -07:00
Brian Anderson
223f5be166
Unique vectors and boxes of pinned are unique kinds. Closes #977
2011-09-26 13:38:46 -07:00
Marijn Haverbeke
8c0918ac18
Construct records and tuples in-place
...
Issue #667
Now, {a: {b: 10, c: 20}, d: @30} will simply write the values in the right
places, rather than creating intermediary records and then memmoving them.
Cuts about a megabyte off the unoptimized compiler size.
2011-09-26 22:13:08 +02:00
Marijn Haverbeke
5837975f95
Convert more expression types to use DPS
...
expr_rec, expr_tup, most of the exprs that don't return anything. Make
trans_ret almost trivial by using destination adaptors (trans_save_in,
trans_by_ref).
Issue #667
2011-09-26 21:34:10 +02:00
Marijn Haverbeke
345b5a47bd
Add a workaround hack for issue #913
...
I can't figure out what the real cause of this bug is, but I want
to be able to use blocks inside loops again.
2011-09-26 21:34:10 +02:00
Patrick Walton
37cf7b92c8
test: Fix more typos in weird-exprs.rs.
2011-09-26 10:26:30 -07:00
Patrick Walton
2348858995
test: wierd-exprs -> weird-exprs
2011-09-26 10:24:46 -07:00
Patrick Walton
81f1863de7
rt: Remove obsolete comment
2011-09-26 10:24:21 -07:00
Graydon Hoare
93f0e9bac3
Refine notes in kind.rs some more. Add a fixme to ty.rs.
...
Kinds are still pretty wobbly. See thread starting at
https://mail.mozilla.org/pipermail/rust-dev/2011-September/000807.html
2011-09-25 21:20:17 -07:00
Jesse Ruderman
798b3531a6
Enable hammertime
2011-09-25 21:13:52 -07:00
Jesse Ruderman
73898351d2
Test for #973
2011-09-25 21:01:50 -07:00
Jesse Ruderman
60ec49b121
Test for #942
2011-09-25 20:57:44 -07:00
Jesse Ruderman
56410b2fb6
Remove FIXME test that's covered by run-pass/unreachable-code.rs
2011-09-25 20:56:19 -07:00
Marijn Haverbeke
8911aef798
Make return-by-ref function headers pretty-print safely
...
Closes #972
2011-09-26 04:11:35 +02:00
Marijn Haverbeke
1e988f228d
Don't call trans_bind_thunk in an unreachable context
...
Closes #973
2011-09-26 04:08:45 +02:00
Marijn Haverbeke
4c5e42a139
Make 'fail fail;' compile.
...
Closes #972
2011-09-26 03:57:08 +02:00
Marijn Haverbeke
6164b72402
Fix bug in mutability-checking pass
...
It wasn't properly handling function arguments.
2011-09-26 03:56:39 +02:00
Jesse Ruderman
203bc16e7b
Fuzzer: stop ignoring fixed bugs
2011-09-25 12:24:42 -07:00
Brian Anderson
98db2febd3
Handle ~fail. Closes #968
2011-09-24 23:52:22 -07:00
Brian Anderson
895674b6eb
Add a test for assignment of unique boxes of generics
...
Closes #976
Issue #409
2011-09-24 21:31:28 -07:00
Brian Anderson
4f7ecce7d1
Support non-immediates in trans_uniq::copy_val
...
Issue #409
2011-09-24 21:28:58 -07:00
Jesse Ruderman
2b15aefffe
Fuzzer: ignore more bugs
2011-09-24 21:01:39 -07:00
Lindsey Kuper
822ed2c6d3
Small refactors.
...
Factor out some shared code from the start of process_fwding_mthd and
process_bkwding_mthd; get rid of unneeded temp variable.
2011-09-24 23:38:47 -04:00
Jesse Ruderman
3b5b29c7ec
Reduce and clarify abuse of 'pure' in interner
2011-09-24 16:33:26 -07:00
Jesse Ruderman
0125532106
Don't iloop (future-proof test against improved reachability computations)
2011-09-24 16:13:32 -07:00
Jesse Ruderman
c29f1af17e
Remove irrelevant parts of test
2011-09-24 16:11:50 -07:00
Jesse Ruderman
064f52fa96
Mark some fns as pure so type_is_unique_box doesn't need to be unchecked
2011-09-24 15:36:09 -07:00
Jesse Ruderman
48c2c9b3a7
Mark vec::len as pure
2011-09-24 15:10:03 -07:00
Brian Anderson
9029416e28
Tweak random thing to make windows build succeed. Awesome.
...
So, a recent commit made syntax-extension-fmt fail under check-fast.
This commit disables lots-a-fail under check-fast and voila! *grumble*
2011-09-24 14:44:42 -07:00
Brian Anderson
e804352de4
Move a previous run-pass test for kind-lowered unique boxes to compile-fail
...
This test tries to swap unique boxes containing resources, which is not
allowed.
Issue #409
2011-09-24 12:36:51 -07:00
Brian Anderson
c5877450e6
Tweak the type allocated for unique pointers
...
Seems to be more correctish...
Issue #409
2011-09-24 12:36:51 -07:00
Brian Anderson
777a536313
Support non-immediates in unique-box type glue
...
Issue #409
2011-09-24 12:36:51 -07:00
Brian Anderson
856acbf66d
Vectors containing pinned kinds become pinned
...
Otherwise they could be copied
2011-09-24 12:36:51 -07:00
Brian Anderson
e5d5682065
Unique pointers containing pinned kinds become pinned
...
Issue #409
2011-09-24 12:36:51 -07:00
Brian Anderson
97629727b1
Add tests for swapping unique boxes
...
Issue #409
2011-09-24 12:36:50 -07:00
Jesse Ruderman
fbe00fc236
Add rand_util.rs
2011-09-23 23:24:43 -07:00
Jesse Ruderman
3bac3378ae
Fuzzer: use different exclusions when testing pretty-printer than when testing compiler
2011-09-23 23:23:04 -07:00
Jesse Ruderman
3a7a2943dd
Add vec::filter
2011-09-23 19:10:48 -07:00
Patrick Walton
7979bbbf51
rt: Sweep in cycle collection
2011-09-23 17:57:25 -07:00
Patrick Walton
41082c6b83
rt: Whitespace police
2011-09-23 17:57:25 -07:00
Patrick Walton
b995028c47
rt: Turn off some debug code
2011-09-23 17:57:25 -07:00
Patrick Walton
0c4e0fdfae
rt: Get rid of the hack that looks for captured type descriptors adjacent to the root one for functions and objects
2011-09-23 17:57:25 -07:00
Erick Tryzelaar
6164de90e2
Add libuv upgrade instructions to src/etc/gyp-uv
2011-09-23 16:53:07 -07:00
Erick Tryzelaar
5f066e06b9
Update to libuv commit 3ca382.
...
This patch changes libuv's gyp build system to
make it's own makefiles. To generate them for rust,
run these commands. They requires python 2.x to
work:
$ mkdir -p src/rt/libuv/build
$ svn co http://gyp.googlecode.com/svn src/rt/libuv/build/gyp
$ ./etc/src/gyp_uv
2011-09-23 16:53:06 -07:00
Brian Anderson
d8f6e9f237
Add let destructuring for unique boxes
...
Issue #409
2011-09-23 16:12:04 -07:00
Brian Anderson
122f714fde
Add missing case for pat_uniq to syntax::visit
...
Issue #409
2011-09-23 16:03:35 -07:00
Brian Anderson
27972a6def
Add two tests for sending unique boxes across channels
...
Issue #409
2011-09-23 15:32:31 -07:00
Brian Anderson
68512f2d9d
Actually use unique boxes in run-fail/unwind-unique
2011-09-23 15:23:44 -07:00
Brian Anderson
18b01d5cfe
Create a bunch of test cases for unique boxes by copying box tests
...
XFAIL the ones that don't work
Issue #409
2011-09-23 15:15:30 -07:00
Brian Anderson
2082f67765
Begin to support pattern matching on unique boxes
...
Issue #409
2011-09-23 15:15:30 -07:00
Patrick Walton
87700adb2f
rt: Add missing <stdint.h> in rust_abi.h
2011-09-23 15:14:44 -07:00
Patrick Walton
e036c9d8d2
rt: Add missing const on the Windows path
2011-09-23 15:08:37 -07:00
Patrick Walton
557d641175
rt: Get RUST_TRACK_ORIGINS working. You can now call 'debug::dump_origin' in gdb and get a backtrace saying where a box came from.
2011-09-23 15:06:28 -07:00
Jesse Ruderman
7b1a3bb8e6
Add more unreachable-code tests. Closes #935
2011-09-23 15:01:19 -07:00
Marijn Haverbeke
2c7f21c524
Properly mark unreachable alt bodies as unreachable
2011-09-23 23:37:15 +02:00
Marijn Haverbeke
572a4b71d5
Make AddIncomingToPhi take single values rather than arrays
2011-09-23 23:20:19 +02:00
Marijn Haverbeke
64c69aa7b8
Start on a piecemeal conversion to DPS
...
Issue #667
Wires in a basic framework for destination-passing style, with
backwards-compatibility to the old approach, so that expression types
can be moved over to it one at a time (by moving them from trans_expr
to trans_expr_dps).
2011-09-23 22:49:37 +02:00
Marijn Haverbeke
d114dedf9a
Don't return unused values from zero_alloca and trans_stmt
2011-09-23 22:28:05 +02:00
Marijn Haverbeke
abf002ad60
Fix bug where the type of a function's top-level block wasn't fixed up
2011-09-23 22:28:05 +02:00
Patrick Walton
aabff480c9
rt: Factor out stack walking into rust_abi.cpp
2011-09-23 12:49:20 -07:00
Brian Anderson
d10d23f0ad
xfail-win32 linked-failure and send-iloop
2011-09-23 12:30:36 -07:00
Patrick Walton
82935c2d17
rt: Fix message formatting issues in rust_debug
2011-09-23 12:27:13 -07:00
Patrick Walton
03f0932a6d
rt: ifdef out backtrace() on Windows
2011-09-23 12:26:41 -07:00
Patrick Walton
9226ac9ec5
rt: Fix build bustage due to gcc's format string warnings
2011-09-23 12:09:52 -07:00
Patrick Walton
61afef29a1
rt: Add a RUST_TRACK_ORIGINS debug flag to help track down memory corruption
2011-09-23 11:42:20 -07:00
Patrick Walton
dbdeff659f
rt: Factor out the logic that handles the various magic debug environment variables
2011-09-23 11:04:14 -07:00
Patrick Walton
f8007b5535
rt: Remove the problematic min()/max()/align()/abs() macros from isaac/standard.h, as they're unused
2011-09-23 11:04:14 -07:00
Graydon Hoare
18c6cc6371
More steps to arch-specific target libs ( #474 )
2011-09-23 10:50:16 -07:00
Marijn Haverbeke
5310cf4f30
xfail-pretty unreachable-code.rs
2011-09-23 11:33:27 +02:00
Marijn Haverbeke
348cd86d87
Properly check types of do-while condition expr
...
Closes #956
2011-09-23 11:19:15 +02:00
Marijn Haverbeke
0bbde048a4
Make sure no dynamic allocas are used before they are allocated
...
Closes #965
2011-09-23 11:11:37 +02:00
Marijn Haverbeke
49813cffb1
Use a slightly nicer hack to get zero-length strings in trans_build
...
Wrapping calls in str::by_ref(, ...) heap-allocated an empty string
every time (and looked really bad).
2011-09-23 11:11:37 +02:00
Marijn Haverbeke
420484579d
Better handling of unreachable code in trans
...
The builder functions in trans_build now look at an 'unreachable' flag
in the block context and don't generate code (returning undefined
placeholder values) when this flag is set. Threading the unreachable
flag through context still requires some care, but this seems a more
sane approach than re-checking for terminated blocks throughout the
compiler.
When creating a block, if you use its closest dominator as parent, the
flag will be automatically passed through. If you can't do that,
because the dominator is a scope block that you're trying to get out
of, you'll have to do something like this to explicitly pass on the
flag:
if bcx.unreachable { Unreachable(next_cx); }
Closes #949 . Closes #946 . Closes #942 . Closes #895 . Closes #894 .
Closes #892 . Closes #957 . Closes #958 .
2011-09-23 11:09:57 +02:00
Marijn Haverbeke
b029789f02
Remove backward-compatible support for 'mutable' before type.
...
Closes #966
2011-09-23 09:58:51 +02:00
Brian Anderson
93b9574d32
Remove deprecated mutable type constructor from run-pass/issue-511
...
This was triggering a warning that was making the pretty-print test fail
2011-09-22 23:08:59 -07:00
Brian Anderson
cee7b4caee
Add test for issue #511 . Closes #511
2011-09-22 22:50:12 -07:00
Brian Anderson
dbd2ee015a
Remove is_stateful flag from tydesc. Closes #136
2011-09-22 22:15:25 -07:00
Brian Anderson
33dd7cc854
Add a test for negative constants. Closes #358
2011-09-22 21:59:09 -07:00
Brian Anderson
0e5f76a718
Fix ty_uniq case in maybe_auto_unbox
...
Closes #961
Issue #409
2011-09-22 18:14:18 -07:00
Brian Anderson
1a48023a79
Add take glue for unique boxes
...
Closes #962
Issue #409
2011-09-22 18:05:36 -07:00
Brian Anderson
77fcab043e
Remove nonsensical load and store from trans_uniq::copy_val
...
Issue #409
2011-09-22 17:50:27 -07:00
Brian Anderson
f628003da6
Adda test for returning unique boxes
...
Issue #409
2011-09-22 17:00:53 -07:00
Brian Anderson
7a76323459
Allow vectors to contain unique boxes. Closes #952
...
Issue #409
2011-09-22 17:00:53 -07:00
Patrick Walton
e372f943e2
rustc: Write raw type parameters instead of linearized type parameters in object body shapes
2011-09-22 16:13:03 -07:00
Brian Anderson
dfa5bd1114
XFAIL task-comm
2011-09-22 16:09:10 -07:00
Brian Anderson
30a4eab380
Autoderef indexes and fields of unique boxes
...
Issue #409
2011-09-22 16:06:25 -07:00
Brian Anderson
dff4986f9e
Add tests for moving unique boxes
...
Issue #409
2011-09-22 15:43:08 -07:00
Brian Anderson
d174d917e2
Calculate the correct kind for unique boxes
...
Issue #409
2011-09-22 15:28:49 -07:00
Brian Anderson
61a14f3df0
Add a test for mutable references to unique boxes as function arguments
...
Issue #409
2011-09-22 15:03:44 -07:00
Brian Anderson
1367f2b63e
Add a test for unique boxes as fn args
...
Issue #409
2011-09-22 14:55:08 -07:00
Brian Anderson
3bb7035914
Add a test for unique boxes containing shared boxes
...
Issue #409
2011-09-22 14:39:57 -07:00
Brian Anderson
3f41563cc9
Drop the previous value when copying one unique box local to another
...
Issue #409
2011-09-22 13:53:34 -07:00
Brian Anderson
7c4fe10f02
Add a test that assignment of unique boxes to locals does a copy
...
Issue #409
2011-09-22 13:53:34 -07:00
Brian Anderson
67bac873e0
Add assignment to unique box locals
...
Issue #409
2011-09-22 13:53:33 -07:00
Brian Anderson
268a9fe5fb
Initialize unique box locals from other locals
...
Issue #409
2011-09-22 13:53:33 -07:00
Brian Anderson
5d5136df9f
Convert trans_uniq asserts to preconditions
...
Issue #409
2011-09-22 13:53:33 -07:00
Brian Anderson
c4f02a7925
Sprinkle some asserts through trans_uniq
2011-09-22 13:53:33 -07:00
Brian Anderson
8492eed137
Move uniq trans code to trans_uniq module
...
Issue #409
2011-09-22 13:53:30 -07:00
Brian Anderson
0f0ba33d82
Factor alloc_uniq from trans_uniq
...
Issue #409
2011-09-22 13:52:30 -07:00
Brian Anderson
f6ab12a3b1
Don't unify unique boxes with different mutability
...
Issue #409
2011-09-22 11:10:48 -07:00
Brian Anderson
5ab0840353
XFAIL spawnfail and task-comm-15
2011-09-22 11:06:26 -07:00
Brian Anderson
ea67099234
Add support for mutable unique boxes
...
Issue #409
2011-09-22 10:26:34 -07:00
Brian Anderson
1b3023e4d0
Convert ty::ty_uniq to contain a mutable type
...
Issue #409
2011-09-22 10:26:34 -07:00
Brian Anderson
4d088bd528
Call drop glue on the thing in a unique box
...
Issue #409
2011-09-22 10:26:34 -07:00
Marijn Haverbeke
aad1342e13
Fix long line
2011-09-22 09:23:07 +02:00
Marijn Haverbeke
5e3d0e304f
Fix missing cast in do_cc
...
Apparently not needed on Mac (clang?), but breaking the win and linux boxes.
2011-09-22 09:17:26 +02:00
Patrick Walton
8c02adc630
rustc: Port the fn and obj traversal logic over from the GC branch. Doesn't actually do anything yet due to lack of support in trans.
2011-09-21 19:08:26 -07:00
Patrick Walton
ad3b9c41b4
rt: Implement cycle collection marking. Simple cycles can now be detected.
2011-09-21 18:14:23 -07:00
Brian Anderson
a993621e43
Log and compare unique boxes
...
Issue #409
2011-09-21 17:08:40 -07:00
Brian Anderson
42fd2a9d89
Remove unused arg from revoke_clean
2011-09-21 15:39:46 -07:00
Brian Anderson
92af552956
Add an unwind test for failure during unique box construction
2011-09-21 14:45:08 -07:00
Brian Anderson
2cc01e2ca2
Add ability to deref unique boxes. Make unique boxes immediates.
...
Issue #409
2011-09-21 14:40:55 -07:00
Brian Anderson
956bc69330
Add more unwind tests for failure during construction of allocated things
2011-09-21 14:14:17 -07:00
Marijn Haverbeke
80778f642f
Revert "rustc: Make bottom types immediates. Add a |log ret| testcase. Closes #935."
...
This reverts commit f19ab1ff3c
.
2011-09-21 21:39:31 +02:00
Patrick Walton
f19ab1ff3c
rustc: Make bottom types immediates. Add a |log ret| testcase. Closes #935 .
2011-09-21 10:55:28 -07:00
Patrick Walton
fcd17731cf
rustc: Don't try to spill bottom types, since we can't make any assumptions about the type of the ValueRef
2011-09-21 10:55:27 -07:00
Marijn Haverbeke
a034f87146
Revert "Implement pattern ranges for all numeric types."
...
This reverts commit ce0f054f9d
.
2011-09-21 18:42:09 +02:00
Marijn Haverbeke
410f73fdb2
Don't write to retptr when returning nil, pass undef for unused params
2011-09-21 17:57:19 +02:00
Graydon Hoare
68d50b5928
Add target_triple to session::options. Use host triple by default, accept --target on command line.
2011-09-21 08:46:44 -07:00
Marijn Haverbeke
07eb29dbce
Revert "rustc: Make bottom types immediates. Add a |log ret| testcase. Closes #935."
...
This reverts commit e6a84f252a
.
2011-09-21 11:05:54 +02:00
Josh Matthews
ce0f054f9d
Implement pattern ranges for all numeric types.
2011-09-21 09:36:12 +02:00
Patrick Walton
e6a84f252a
rustc: Make bottom types immediates. Add a |log ret| testcase. Closes #935 .
2011-09-20 22:52:26 -07:00
Jesse Ruderman
f7b67944cd
Add another testcase for #910
2011-09-20 20:00:34 -07:00
Jesse Ruderman
01ea880196
Re-wrap long line
2011-09-20 19:40:47 -07:00
Patrick Walton
eafb70072a
rt: Zero out allocations so that the CC won't die if it happens to run while a box is being constructed.
...
This is kind of unfortunate.
2011-09-20 19:15:46 -07:00
Patrick Walton
a63cc03a07
rt: Add some debug code (ifdef'd out) for diagnosing marking problems
2011-09-20 19:15:13 -07:00
Patrick Walton
ab76305cb9
rt: Skip over the reference count properly before walking the contents of the box when determining internal reference counts
2011-09-20 19:14:58 -07:00
Patrick Walton
74194df7dd
rt: Remove obsolete comment
2011-09-20 19:14:18 -07:00
Patrick Walton
b39c7c4c45
rt: Increase the tolerance of the vector range sanity check
2011-09-20 19:13:45 -07:00
Patrick Walton
e27279d7db
rt: Clean up debugging print statements in rust_obstack.cpp
2011-09-20 18:26:09 -07:00
Brian Anderson
f809e22697
Represent unique creation as a unop in the AST instead of its own expr
...
Like the box unop.
Issue #409
2011-09-20 18:06:47 -07:00
Brian Anderson
7ae251789c
Make creation of unique boxes work again
...
Issue #409
2011-09-20 17:51:17 -07:00
Brian Anderson
865dcb663d
Parse unique box types
...
Issue #409
2011-09-20 17:51:17 -07:00
Patrick Walton
be1feaa918
rt: First stab at computing internal reference counts
2011-09-20 17:49:49 -07:00
Graydon Hoare
aa7d624c15
Revert trivial commit.
2011-09-20 17:20:14 -07:00
Graydon Hoare
ff6f444de2
Another trivial commit.
2011-09-20 17:19:51 -07:00
Graydon Hoare
936e0311b0
Trivial commit to test reporting to IRC.
2011-09-20 17:18:43 -07:00
Patrick Walton
e26b1883dd
rt: Stub code for the cycle collector
2011-09-20 16:49:31 -07:00
Patrick Walton
c61691110a
rt: Make rust_shape.h able to be included in more contexts
2011-09-20 16:49:31 -07:00
Jesse Ruderman
35016d3147
Ignore #949
2011-09-20 16:42:58 -07:00
Jesse Ruderman
571ff0c84a
Add @true to common_exprs and fix some exclusions
2011-09-20 16:32:27 -07:00
Patrick Walton
77f0101edb
rt: Add an on-the-side GC chain
2011-09-20 15:35:14 -07:00
Patrick Walton
5209b19255
rt: Rename rand() to isaac_rand() since the former prevents lots of standard headers from being included
2011-09-20 15:34:47 -07:00
Patrick Walton
307957710c
rt: Remove the GC alloc chain
2011-09-20 14:20:16 -07:00
Patrick Walton
45086b7bfd
rt: Remove #include "rust_box.h"
2011-09-20 14:07:10 -07:00
Patrick Walton
9a8b4a1be6
Revert "rt: Rename rust_box to rust_box_legacy, as they're about to become self-describing"
...
This reverts commit f6871e832c
.
2011-09-20 13:57:04 -07:00
Patrick Walton
d73a8606c9
rt: Remove rust_box.h; I'm going to switch to an external map.
2011-09-20 13:55:23 -07:00
Patrick Walton
e981abdb01
rt: Remove upcall_malloc_box and upcall_free_box; I don't think they'll be necessary after all
2011-09-20 13:50:15 -07:00
Patrick Walton
d607316b2f
rustc: Pass actual tydescs to upcall_malloc
2011-09-20 13:48:22 -07:00
Patrick Walton
78147452b8
rustc: Remove trans_raw_malloc, as it's only called from one place
2011-09-20 13:38:54 -07:00
Jesse Ruderman
d882f8ee2f
Fuzzer: add common_exprs, but comment out its use for now. Update lists of known bugs.
2011-09-20 12:04:12 -07:00
Brian Anderson
13f57dfbea
Remove bogus comments from run-pass/task-comm-3
2011-09-20 12:01:48 -07:00
Brian Anderson
a609da7c15
Rehabilitate run-fail/trivial-message2
2011-09-20 11:59:51 -07:00
Jesse Ruderman
58d812f0f8
Fix syntax error
2011-09-20 11:58:33 -07:00
Brian Anderson
12d7363469
Remove a bogus comment from run-fail/spawnfail
2011-09-20 11:51:15 -07:00
Brian Anderson
e3b1397097
Actually un-xfail task-comm-14
2011-09-20 11:49:13 -07:00
Brian Anderson
c6d460d4e3
Rehabilitate task-comm-14
2011-09-20 11:47:22 -07:00
Brian Anderson
564bdacece
Add an assert to run-fail/unwind-alt
...
Jesse reported not being able to reproduce this without the assert. May have
to do with optimtizations.
2011-09-20 11:26:01 -07:00
Brian Anderson
de1b394c32
Move linker invocation from driver::rustc to back::link
2011-09-20 11:10:03 -07:00
Brian Anderson
870117f44e
Zero locals that are inited via alt expressions. Closes #945
2011-09-20 10:28:16 -07:00