Commit Graph

12446 Commits

Author SHA1 Message Date
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
Niko Matsakis
fb8786fe52 Refactor fn_ty, working towards #3320 2012-09-07 07:54:11 -07:00
Brian Anderson
699505899e Register snappshots 2012-09-06 19:58:42 -07:00
Tim Chevalier
8152164a34 Another test for #2587 2012-09-06 16:46:59 -07:00
Tim Chevalier
0ce88fe401 Update docs to not refer to the of clause in an impl
Closes #3375
2012-09-06 16:19:34 -07:00
Tim Chevalier
46990ad111 Use callee ID when kind-checking expressions that may be overloaded
And fix up test cases that should have failed if not for this bug.

Closes #2587
2012-09-06 15:44:10 -07:00
Niko Matsakis
c5e2cf2ee5 Repair long lines 2012-09-06 15:40:11 -07:00
Niko Matsakis
ee4ba4490d Issue #3402: Load immediate rvalues right away
Should lead to smaller stack frames, hopefully reducing
the perf hits we saw
2012-09-06 15:23:03 -07:00
Niko Matsakis
fe9f0556d2 Refactor ty_var and ty_var_integral into one ty_infer variant 2012-09-06 12:31:33 -07:00
Niko Matsakis
d5b3e44b47 emacs mode: include use as a keyword 2012-09-06 12:31:33 -07:00
Tim Chevalier
a5285f148c Add test for issue 3305 2012-09-06 12:30:47 -07:00
Brian Anderson
21b4d82b4c Fix Ivano's name in AUTHORS.txt 2012-09-06 12:29:20 -07:00
Tim Chevalier
a37729f31b Tutorial: Link to section on boxes and pointers at first mention of ~, @, &
As per suggestion on IRC from callen.
2012-09-06 12:22:05 -07:00
Tim Chevalier
55bd6cee2f Test that merge sort is stable -- thanks to Jesse Jones
Closes #3399
2012-09-06 12:11:48 -07:00
Brian Anderson
b4e547d71a Remove struct ctors 2012-09-06 10:52:26 -07:00
Niko Matsakis
5e36a99794 Refactor trans to replace lvalue and friends with Datum.
Also:
- report illegal move/ref combos whether or not ref comes first
- commented out fix for #3387, too restrictive and causes an ICE
2012-09-06 06:11:12 -07:00
Patrick Walton
adc1427282 libcore: Expose glues to core 2012-09-05 21:10:22 -07:00
Patrick Walton
f6d50d866a libcore: Make to_upper() and to_lower() pure 2012-09-05 20:55:28 -07:00
Patrick Walton
d155410674 rt: Make the boxed region come earlier in the rust_task structure.
This is so that GC can find it more easily.
2012-09-05 20:08:00 -07:00
Tim Chevalier
2d116cbbed Start making moves explicit in libcore
This is in preparation for issue 2633. Replaced implicit moves that
rely on last-use with explicit moves in char, float, and str.
2012-09-05 19:20:01 -07:00
Patrick Walton
2ba632a683 vim: Turn "pub" into a big asterisk for those who dislike the look of it.
This is not the default and must be turned on.
2012-09-05 18:59:01 -07:00
Tim Chevalier
3a34c96086 Add a lint pass for structural records
Closes #3322
2012-09-05 18:35:30 -07:00
Patrick Walton
0a852e0da0 rustc: Make "priv" work on enum variants 2012-09-05 17:24:28 -07:00
Brian Anderson
9097410b43 Fix tutorial tests 2012-09-05 17:04:51 -07:00
Graydon Hoare
0ddae5ec7d Add str::trim{_,_left_,_right_}chars. 2012-09-05 16:53:55 -07:00
Graydon Hoare
15b4734d0c Remove 'use' line that's confusing pp-exact during use/import transition. 2012-09-05 16:53:55 -07:00
Graydon Hoare
81695d85dc Mark crate metadata with a version tag. Close #3390. 2012-09-05 16:53:55 -07:00
Patrick Walton
31af60b257 rustc: Fix double-reporting of private item errors. Un-XFAIL private-item-simple.rs. 2012-09-05 16:21:53 -07:00
Brian Anderson
f7681f9236 Accept Copy, Send, Const, Owned, as kind bounds 2012-09-05 15:31:38 -07:00
Patrick Walton
e7fe903d88 libsyntax: Make "pub use" mean the same thing as the former "import" in all circumstances 2012-09-05 13:26:46 -07:00
Patrick Walton
10c533861b doc: "import" -> "use" 2012-09-05 12:39:16 -07:00
Patrick Walton
f686896f60 test: "import" -> "use" 2012-09-05 12:32:05 -07:00
Patrick Walton
47dac47e96 rustc: "import" -> "use" in .rc files 2012-09-05 11:46:25 -07:00
Patrick Walton
ba94b64698 cargo: "import" -> "use" 2012-09-05 11:39:22 -07:00
Patrick Walton
e4e9788b3a fuzzer: "import" -> "use" 2012-09-05 11:38:37 -07:00
Patrick Walton
914b6fead9 test: Fix smallintmap test 2012-09-05 11:24:44 -07:00
Patrick Walton
4e515c14af doc: Split out the FFI part of the tutorial
The tutorial should perhaps contain an FFI section, but this one is too long.
2012-09-05 11:20:04 -07:00
Patrick Walton
1c9c32782d tutorial: Remove the section on strings
It's already covered in the types section.
2012-09-05 11:07:06 -07:00
Patrick Walton
69b363e02a doc: Split macros out into a separate tutorial 2012-09-05 11:07:06 -07:00
Tim Chevalier
9db4445454 Merge pull request #3316 from Vincent-Belliard/issue_3222
fix issue #3222
2012-09-05 10:58:16 -07:00
Patrick Walton
fa2fb0f868 rustdoc: "import" -> "use" 2012-09-05 10:41:47 -07:00
Vincent Belliard
d12128f56f fix issue #3222 2012-09-05 16:38:00 +02:00
Patrick Walton
9b88b5fe38 rustc: Don't allow private fields to be named in constructors or destructured 2012-09-04 19:07:23 -07:00
Patrick Walton
fba673b26b rustc: Implement private methods.
Doesn't work cross-crate yet.
2012-09-04 18:30:27 -07:00
Brian Anderson
a618d0d7ce std: Convert test to camel case 2012-09-04 18:26:30 -07:00
Brian Anderson
9c988eb40d Whitespace 2012-09-04 17:54:20 -07:00
Brian Anderson
eb0cf3a715 std: Remove struct ctors 2012-09-04 17:27:03 -07:00
Tim Chevalier
268850f67b xfail-fast anon-extern-mod-cross-crate-2 2012-09-04 17:23:26 -07:00
Tim Chevalier
451da07718 Allow anonymous extern mods
Now you can write:

extern {
  f() -> int;
}

and f will be accessible in the enclosing scope.
2012-09-04 16:41:19 -07:00