Marijn Haverbeke
458ac89894
Back out copy-glue
...
This wasn't a good idea after all.
2011-09-01 22:37:23 +02:00
Brian Anderson
8f531e769a
Convert rust_file_is_dir from estrs to cstrs. Issue #855
2011-09-01 13:16:44 -07:00
Brian Anderson
baa1e8790d
Check error code in rust_file_is_dir. Prevent comparison of uninitialized mem
2011-09-01 13:16:44 -07:00
Brian Anderson
d0c509ad1b
Remove a bunch of string builtins. Issue #855
2011-09-01 12:14:33 -07:00
Patrick Walton
cc08fd1ef9
rt: Allow iteration over the dynastack
2011-09-01 11:47:59 -07:00
Patrick Walton
9d00ef9a46
rt: Make logging more resilient to null vector pointers (useful when debugging GC)
2011-09-01 11:47:58 -07:00
Patrick Walton
bbac2dd768
rt: Make debug string in rust_obstack slightly prettier
2011-09-01 11:47:58 -07:00
Patrick Walton
83ac32e8aa
rt: Zero out dynamic allocas for now
2011-09-01 11:47:58 -07:00
Patrick Walton
a6c14964c8
rt: Include rust_shape.h in rust_obstack.cpp and remove the duplicate DPRINT() macro
2011-09-01 11:47:58 -07:00
Patrick Walton
156bc7f012
rt: Add a missing FIXME to rust_obstack.cpp for segmented stacks
2011-09-01 11:47:58 -07:00
Patrick Walton
876142f051
rt: Remove duplicate DPRINT() macro from rust_gc.cpp
2011-09-01 11:47:58 -07:00
Patrick Walton
60137273d2
rt: Disable debug spew in rust_shape
2011-09-01 11:47:58 -07:00
Erick Tryzelaar
b199e9da92
Expose STDERR to rust.
2011-08-31 20:40:00 -07:00
Patrick Walton
614a930c51
rt: Make the dynamic stack self-describing
2011-08-31 19:19:05 -07:00
Patrick Walton
729437d2c0
rt: Set n_params appropriately in upcall_get_type_desc
2011-08-31 18:03:12 -07:00
Patrick Walton
dc6f78561c
rt: Prevent trailing commas from showing up when logging oddly aligned arrays
2011-08-31 16:22:19 -07:00
Patrick Walton
dfcbfa61f3
rt: Introduce "end_dp" bailouts in order to avoid marching past the end of oddly aligned vectors
2011-08-31 16:02:17 -07:00
Patrick Walton
143569fce4
rt: Make |align| a member of the shape glue class instead of threading it through every function
2011-08-31 15:25:32 -07:00
Brian Anderson
be2ad97a61
Allow main to take istrs. Issue #855
2011-08-30 23:57:09 -07:00
Patrick Walton
fc0212a63b
rt: Override the character interpretation of u8/i8 values when logging
2011-08-30 19:34:27 -07:00
Patrick Walton
b722dc36a5
rt: Fix logging of type-parametric resources
2011-08-30 15:56:42 -07:00
Patrick Walton
05d96f155f
rustc: Allow non-type-parametric resources to be logged
2011-08-30 13:50:48 -07:00
Patrick Walton
f1ed03dfa5
rt: Have data::walk_fn be defensive regarding whether the derived implementation of walk_fn moves the data pointer
2011-08-29 16:50:06 -07:00
Patrick Walton
0a4d43379e
rt: Move to a custom alignof since __alignof__ returns the "preferred" alignment rather than the one that gets used in structs
2011-08-29 16:24:03 -07:00
Patrick Walton
b16a9a984a
rt: Don't dereference a null pointer when traversing a function with no environment
2011-08-29 15:27:55 -07:00
Brian Anderson
3d26665e60
Rename upcall_istr_push to rust_istr_push in rustrt.def.in
2011-08-29 14:18:46 -07:00
Marijn Haverbeke
b099b1e3f7
Make std::istr::push_byte efficient
...
It used to allocate two (!) heap values per pushed byte. It now goes through
a runtime function that simply grows the istr and writes the byte.
2011-08-29 22:46:49 +02:00
Marijn Haverbeke
14567c5eb0
Factor vector reserve code in runtime into its own function
2011-08-29 22:35:29 +02:00
Marijn Haverbeke
c9c5ee252a
Implement non-internal ivecs
...
Vectors are now similar to our old, pre-internal vectors, except that
they are uniquely owned, not refcounted.
Their name should probably change too, then. I've renamed them to vec
in the runtime, will do so throughout the compiler later.
2011-08-29 09:07:53 +02:00
Patrick Walton
5fe80a0d48
rt: Allow closures to be logged
2011-08-26 17:05:59 -07:00
Patrick Walton
4dd23f24d6
rt: Null check in walk_obj_contents. Prevents marking from crashing when calling object constructors.
2011-08-25 17:14:54 -07:00
Patrick Walton
8bd019bdc8
rt: Remember the number of captured type descriptors for objects in the type descriptor crate cache
2011-08-25 14:21:05 -07:00
Patrick Walton
880fd788eb
rustc: Add an extra flag to object tydescs so that shapes know how to find the captured subtydescs
2011-08-25 12:01:10 -07:00
Eric Holk
2f7c583bc1
Cleaning up task and comm exports, updating all the test cases.
2011-08-25 11:21:25 -07:00
Patrick Walton
b371891c7c
rt: Fix walk_obj_contents for type-parameteric objects. Hash tables can be logged now.
2011-08-24 16:54:10 -07:00
Patrick Walton
72d78e6a93
rt: Factor out type param construction into from_tydesc and from_obj_shape. (The latter is unimplemented at the moment.)
2011-08-24 15:19:59 -07:00
Patrick Walton
b07968dda4
rt: Print out fields of objects when logging them
2011-08-24 12:09:06 -07:00
Brian Anderson
a0208e3899
Return an error code after fail under win32
2011-08-24 12:03:07 -07:00
Marijn Haverbeke
fa97793139
Revert "Back out copy-glue"
...
This reverts commit 629ee94a0b360e2df1a1bbf7bf61ef346adf36ad.
2011-08-24 20:30:20 +02:00
Marijn Haverbeke
629ee94a0b
Back out copy-glue
...
This wasn't a good idea after all.
2011-08-24 17:05:53 +02:00
Marijn Haverbeke
054914712e
Remove rust_start_ivec
2011-08-24 13:59:22 +02:00
Marijn Haverbeke
e58c48bdda
Optimize += [x] into a simple push operation
...
This is a preparation for making vectors always-on-the-heap again,
which would cause way too much malloc traffic for this idiom. I will
add an efficient std::vec::push in the future, and migrate += [x] to
that instead.
Reduces compiler code size by 3%
2011-08-24 13:57:27 +02:00
Marijn Haverbeke
cd5e4c21ee
Add skeleton of copy glue that actually copies
2011-08-22 11:41:49 +02:00
Marijn Haverbeke
7588a89553
Rename copy_glue back to take_glue
2011-08-22 10:42:56 +02:00
Marijn Haverbeke
35c962e9a1
Pass structural types by pointer, not by value
...
If we lose tail calls, this is possible. It simplifies things a lot.
Direct motivation: We want ivecs with pointers pointing into
themselves. When copying those, the pointers have to be adjusted. It
is impossible to this when copying them with Load/Store.
2011-08-22 10:16:09 +02:00
Brian Anderson
6ad5b71ad9
Conditionally define CDECL and FASTCALL on windows
...
These may already be defined by other includes. Hopefully puts out the windows
fire.
2011-08-20 16:31:38 -07:00
Brian Anderson
7dad31d11c
Fix comment typos
2011-08-20 16:30:27 -07:00
Brian Anderson
abdb6cd71b
Rewrite reap_dead_tasks to never grab the sched lock before a task lock
...
Doing so contradicts the locking order used everywhere else and causes
deadlocks.
Un-XFAIL task-perf-spawnalot
Closes #854
2011-08-20 16:21:27 -07:00
Patrick Walton
25416bfae1
rustc: Introduce ABI versioning so we can change value representations without breaking the compiler
2011-08-20 14:22:09 -07:00
Patrick Walton
2f650038ad
rt: Move the GetProcAddress/dlsym stuff out of rust_gc.cpp into rust_abi.h
2011-08-20 14:06:04 -07:00