Patrick Walton
1fcfee674a
rustc: Add a str_eq lang item for pattern matching
2012-09-07 15:46:08 -07:00
Brian Anderson
2572e80355
Remove 'let' syntax for struct fields
2012-09-07 14:02:33 -07:00
Niko Matsakis
14303bad89
Do not copy values of type () or _|_
...
This can trigger a crash because we assume we
can supply null ptrs and undefined values for
values of those types, as we should be treated
them as zero-size.
Interestingly, this crash only shows up (atm)
in non-optimized builds. Therefore, I added
a -Z no-opt flag so that the new test
(capture_nil) can specify that it should not
run with optimizations enabled.
2012-09-07 13:00:03 -07:00
Patrick Walton
c21b3ff818
rustc: Make "ne" use traits
2012-09-07 12:44:53 -07:00
Patrick Walton
b4d879a2ef
rustc: Trailing whitespace
2012-09-07 12:27:44 -07:00
Patrick Walton
feb014eb3c
rustc: Add an "ne" method to the Eq trait, and implement it everywhere
2012-09-07 12:24:48 -07:00
Tim Chevalier
ac1f84c153
Don't check impl ty params for equality with trait ty params
...
This was too restrictive. We need to check the number of ty params,
and that the bounds are equal, but otherwise require_same_types does the job.
Closes #2611
2012-09-07 12:11:17 -07:00
Tim Chevalier
c6b51547c1
In typeck, don't assume traits with default methods are in the same crate
...
But note that default methods still don't work cross-crate (see #2794 ) --
this just makes it so that when a method is missing in a cross-crate impl,
the right error message gets printed.
Closes #3344
2012-09-07 10:27:29 -07:00
Niko Matsakis
cd3cc6d17b
Ensure that scratch datum's are zeroed out in the alloca phase.
...
This should address the valgrind failure that @elliotslaughter
was seeing, though I am not sure why the bots / test continued
to pass, since this is precisely the condition this test was looking
for!
2012-09-07 09:32:56 -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
8d17308eca
rt: Add rust_gc_metadata to rustrt.def.in.
2012-09-07 09:21:22 -07:00
Elliott Slaughter
5637126449
rt: Fix GC metadata for 64-bit systems.
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
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