Patrick Walton
f405e41d7a
librustc: Implement write guards for borrowing @mut
to &
or &mut
. r=nmatsakis
2013-01-17 11:50:20 -08:00
Patrick Walton
ca71c6ec5b
librustc: Make all external functions unsafe. r=tjc
2013-01-10 21:24:08 -08:00
Patrick Walton
9f387926fc
librustc: Fold rt items into lang items. Shaves another 10% or so off hello world compile time.
2013-01-07 12:21:34 -08:00
Patrick Walton
57c599914a
librustc: Terminate name searches at the nearest module scope for paths that contain at least two components. r=graydon
2012-12-27 10:02:54 -08:00
Brian Anderson
3fcdb7d6a7
Adjust the die macro to only accept ~str and to work in statement position
2012-12-10 18:16:22 -08:00
Graydon Hoare
00c856c0b1
Update license, add license boilerplate to most files. Remainder will follow.
2012-12-03 17:12:14 -08:00
Brian Anderson
b52a4b412e
core: Make core.rc more readable. Cleanup
2012-11-30 01:32:53 -08:00
Patrick Walton
07f4031bb4
libsyntax: Implement a macro die!
to replace the fail
expression. r=brson
2012-11-28 11:28:56 -08:00
Graydon Hoare
c31a88c7f4
De-export the submodules of task. Part of #3583 .
2012-10-02 16:32:00 -07:00
Gareth Daniel Smith
1c76d189c0
When a vec/str bounds check fails, include the bad index and the length of the str/vec in the fail message.
2012-09-30 14:55:56 -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
b776395263
core: Remove old definition of rt_fail
2012-09-13 11:49:55 -07:00
Brian Anderson
8fbe4b5841
Rename core::rt_fail to core::rt_fail_
2012-09-12 11:52:00 -07:00
Brian Anderson
298eb8c726
Convert 'import' to 'use'. Remove 'import' keyword.
2012-09-10 19:04:26 -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
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
Patrick Walton
437073868e
libcore: "import" -> "use"
2012-09-04 11:12:17 -07:00
Brian Anderson
117aa8cfee
core: warn(non_camel_case_types) everywhere, with few exceptions
2012-09-02 16:14:26 -07:00
Ben Blum
958df4b003
De-mode comm, libc, priv, rt, sync, arc. Super easy.
2012-08-14 19:36:04 -04:00
Brian Anderson
b355936b4d
Convert ret to return
2012-08-01 19:16:06 -07:00
Elliott Slaughter
c341eb9052
Don't emit invoke instructions inside landing pads.
...
We can't throw an exception from inside a landing pad without
corrupting the exception handler, so we have no hope of dealing with
these exceptions anyway. See:
http://llvm.org/docs/ExceptionHandling.html#cleanups
Part of #2861 .
2012-07-24 12:20:39 -07:00
Elliott Slaughter
d257382863
Moved malloc and free upcalls into rust runtime.
2012-07-23 10:45:58 -07:00
Elliott Slaughter
de82a9be61
Move fail upcall into rust libcore.
2012-07-23 10:45:58 -07:00