Commit Graph

23 Commits

Author SHA1 Message Date
Brian Anderson
8d932160d9 rt: Remove box annihilator 2012-10-23 12:14:46 -07:00
Patrick Walton
2f451a7bd7 rustc: Only allow imports marked with "pub" to be imported from other modules 2012-10-02 18:15:19 -07:00
Tim Chevalier
b18320446e Move over to calling ptr::addr_of
Everything should now call ptr::addr_of instead of
ptr::p2::addr_of. Only the pipes macro code when compiled
by stage0 will call ptr::p2::addr_of. Needs a snapshot to get
rid of that.
2012-10-01 15:12:09 -07:00
Tim Chevalier
3639d38d5c Add a demoded version of ptr::addr_of
Currently, the new version is ptr::p2::addr_of and the old one is
ptr::addr_of. This is kind of cheesy, but I need a snapshot before I
can ditch the old version, since the pipe compiler generates calls to
addr_of.

core is converted over to use the new version, std is not.
2012-09-28 22:19:01 -07:00
Patrick Walton
c91821d356 libcore: De-export cleanup, cmath, future, gc, hash, iter-trait, mutable, and private 2012-09-26 17:21:09 -07:00
Brian Anderson
4a78f9b166 core: Demode option 2012-09-23 17:15:00 -07:00
Graydon Hoare
dffe188991 Install new pub/priv/export rules as defaults, old rules accessible under #[legacy_exports]; 2012-09-21 18:11:43 -07:00
Brian Anderson
19ad88c2b8 core: Mark gc and stackwalk as demoded 2012-09-20 17:29:20 -07:00
Brian Anderson
c115b82238 core: Clean up crate docs and give all mods a brief description 2012-09-19 16:52:59 -07:00
Brian Anderson
2906f2de31 core: Rename 'unsafe' mod to 'cast' 2012-09-18 19:36:25 -07:00
Brian Anderson
298eb8c726 Convert 'import' to 'use'. Remove 'import' keyword. 2012-09-10 19:04:26 -07:00
Brian Anderson
2810ea9a68 Convert 'again' to 'loop'. Remove 'again' keyword 2012-09-07 17:39:03 -07:00
Brian Anderson
2572e80355 Remove 'let' syntax for struct fields 2012-09-07 14:02:33 -07:00
Elliott Slaughter
cb53623341 gc: Add early abort when GC is disabled. 2012-09-07 09:21:22 -07:00
Elliott Slaughter
244b95490b gc: Refactoring. 2012-09-07 09:21:22 -07:00
Elliott Slaughter
d22b7ca39a gc: Documentation. 2012-09-07 09:21:22 -07:00
Elliott Slaughter
961bd48724 gc: Fix for GC missing stack frames across segment boundaries. 2012-09-07 09:21:22 -07:00
Elliott Slaughter
578b036f9b gc: Don't expect sentinel when core is compiled without GC. 2012-09-07 09:21:22 -07:00
Elliott Slaughter
7823ad8586 gc: Avoid walking stack above caller frame.
Mark the base GC stack frame with a sentinel value so we know when to
start collecting.
2012-09-07 09:21:21 -07:00
Elliott Slaughter
88f5ab3163 gc: Fix for deallocating resources on the shared heap while cleaning stack. 2012-09-07 09:21:21 -07:00
Elliott Slaughter
3405c548e8 gc: Avoid freeing null pointers. 2012-09-07 09:21:21 -07:00
Elliott Slaughter
9ea4afe5da gc: Avoid double free when pointer appears on stack multiple times. 2012-09-07 09:21:21 -07:00
Elliott Slaughter
3f0d207b32 gc: Add stack walker for new garbage collector.
Safe points are exported in a per-module list via the crate map. A C
runtime call walks the crate map at startup and aggregates the list of
safe points for the program.

Currently the GC doesn't actually deallocate memory on malloc and
free. Adding the GC at this stage is primarily of testing value.

The GC does attempt to clean up exchange heap and stack-allocated
resource on failure.

A result of this patch is that the user now needs to be careful about
what code they write in destructors, because the GC and/or failure
cleanup may need to call destructors. Specifically, calls to malloc
are considered unsafe and may result in infinite loops or segfaults.
2012-09-07 09:21:21 -07:00