Huon Wilson
f502576fc7
Fix @str
removal tests.
2014-02-02 02:58:57 +11:00
Niko Matsakis
81d8328517
Introduce marker types for indicating variance and for opting out
...
of builtin bounds.
Fixes #10834 .
Fixes #11385 .
cc #5922 .
2014-01-31 21:18:48 -05:00
Daniel Micay
f40d5b1050
add an experimental tag for Gc<T> due to cycles
...
This type isn't yet very useful since it only pretends cycles won't be
a problem. Anyone using it should be made aware that they're going to
leak.
2014-01-14 17:13:22 -05:00
Patrick Walton
e12711540a
librustc: Implement placement box
for GC and unique pointers.
2014-01-09 16:05:34 -08:00
kvark
5da166314f
Fixed Gc::clone, implemented Gc::ptr_eq
2014-01-07 20:21:25 -05:00
Alex Crichton
bcb1c381a3
stdtest: Fix all leaked trait imports
2014-01-07 23:51:38 -08:00
Patrick Walton
151b7ed52d
libstd: Fix Win32 and other bustage.
2013-11-26 08:25:27 -08:00
Steven Fackler
bdfaf04bd5
Move mutable::Mut to cell::RefCell
2013-11-23 13:45:05 -08:00
Daniel Micay
543cae9a46
add an initial Gc<T>
stub with the API
2013-11-19 23:52:43 -05:00
Brian Anderson
ea84c1fd69
std: Remove gc and stackwalk
...
These are both obsoleted by the forthcoming new GC.
2013-08-03 23:39:04 -07:00
Patrick Walton
9457ebee55
librustc: Disallow "unsafe" for external functions
2013-08-02 21:57:59 -07:00
blake2-ppc
7e210a8129
std: Replace for
with do { .. }
expr in std::gc
...
Change all users of old-style for with internal iterators to using
`do`-loops.
The code in stackwalk.rs does not actually implement the
looping protocol (no break on return false).
The code in gc.rs does not use loop breaks, nor does any code using it.
We remove the capacity to break from the loops in std::gc and implement
the walks using `do { .. }` expressions.
No behavior change.
2013-08-01 16:54:22 +02:00
Daniel Micay
ef870d37a5
implement pointer arithmetic with GEP
...
Closes #8118 , #7136
~~~rust
extern mod extra;
use std::vec;
use std::ptr;
fn bench_from_elem(b: &mut extra::test::BenchHarness) {
do b.iter {
let v: ~[u8] = vec::from_elem(1024, 0u8);
}
}
fn bench_set_memory(b: &mut extra::test::BenchHarness) {
do b.iter {
let mut v: ~[u8] = vec::with_capacity(1024);
unsafe {
let vp = vec::raw::to_mut_ptr(v);
ptr::set_memory(vp, 0, 1024);
vec::raw::set_len(&mut v, 1024);
}
}
}
fn bench_vec_repeat(b: &mut extra::test::BenchHarness) {
do b.iter {
let v: ~[u8] = ~[0u8, ..1024];
}
}
~~~
Before:
test bench_from_elem ... bench: 415 ns/iter (+/- 17)
test bench_set_memory ... bench: 85 ns/iter (+/- 4)
test bench_vec_repeat ... bench: 83 ns/iter (+/- 3)
After:
test bench_from_elem ... bench: 84 ns/iter (+/- 2)
test bench_set_memory ... bench: 84 ns/iter (+/- 5)
test bench_vec_repeat ... bench: 84 ns/iter (+/- 3)
2013-07-30 02:50:31 -04:00
Alex Crichton
7fd23e4fe2
Convert uses of transmute which don't need it
2013-07-24 23:12:28 -07:00
Daniel Micay
ed67cdb73c
new snapshot
2013-07-22 01:09:48 -04:00
Patrick Walton
06594ed96b
librustc: Remove pub extern
and priv extern
from the language.
...
Place `pub` or `priv` on individual items instead.
2013-07-20 17:39:38 -07:00
Steven Fackler
6b37b5bab7
Split mutable methods out of Set and Map
...
Fixes most of #4989 . I didn't add Persistent{Set,Map} since the only
persistent data structure is fun_treemap and its functionality is
currently too limited to build a trait out of.
2013-07-13 19:44:36 -07:00
Huon Wilson
c437a16c5d
rustc: add a lint to enforce uppercase statics.
2013-07-01 17:52:57 +10:00
Philipp Brüschweiler
e2f1049bd5
Remove unused TyDesc parameter from the glue functions
...
To remove the environment pointer, support for function pointers without
an environment argument is needed (i.e. a fixed version of #6661 ).
2013-06-23 13:02:00 +02:00
Philipp Brüschweiler
976c0b3dfb
Remove rust_call_tydesc_glue
...
Towards #4812 . Also includes some minor cleanups.
2013-06-23 12:49:16 +02:00
Patrick Walton
0c820d4123
libstd: Rename libcore to libstd and libstd to libextra; update makefiles.
...
This only changes the directory names; it does not change the "real"
metadata names.
2013-05-22 21:57:05 -07:00