Edward Wang
6fa4036c12
Hide trait rc::RcBoxPtr from docs
...
It is for internal use only and should not appear in docs.
2014-04-23 23:35:45 +08:00
Alex Crichton
9a3d04ae76
std: Switch field privacy as necessary
2014-03-31 15:17:12 -07:00
Daniel Micay
3829ac2a52
use TotalEq for HashMap
...
Closes #5283
2014-03-23 01:59:11 -04:00
Alex Crichton
3fb1ed0e04
rustc: Remove all usage of manual deref()
...
Favor using '*' instead
2014-03-22 08:48:34 -07:00
Alex Crichton
cd510b3382
std: Remove the get() method from RefCell wrappers
...
This method has been entirely obsoleted by autoderef, so there's no reason for
its existence.
2014-03-22 08:48:20 -07:00
bors
30165e059c
auto merge of #13052 : sfackler/rust/clean-refcell, r=alexcrichton
...
These are superfluous now that we have fixed rvalue lifetimes and Deref.
I'd also like to kill off `get` and `set`, but that'll be a large change so I want to make sure that we actually want to do that first.
2014-03-22 04:56:49 -07:00
Edward Wang
db5206c32a
Rewrite rc::Rc using cell::Cell
...
Since `Arc` has been using `Atomic`, this closes 12625.
Closes #12625 .
2014-03-21 20:49:18 +08:00
Steven Fackler
181875ca50
Remove RefCell::{with, with_mut}
...
These are superfluous now that we have fixed rvalue lifetimes and Deref.
2014-03-20 19:55:52 -07:00
Flavio Percoco
21d23ff25b
Make Rc
, Cell
and RefCell
NoShare
2014-03-20 10:16:55 +01:00
Eduard Burtescu
cdc18b96d6
Remove Rc's borrow method to avoid conflicts with RefCell's borrow in Rc<RefCell<T>>.
2014-03-13 14:21:45 +02:00
Michael Darakananda
438893b36f
Removed DeepClone. Issue #12698 .
2014-03-08 15:09:00 -05:00
Eduard Burtescu
52532d13a6
Implement DerefImm for Rc and DerefImm/DerefMut for RefCell's Ref/RefMut.
2014-03-04 16:41:48 +02:00
Corey Richardson
49e11630fa
std: clean up ptr a bit
2014-02-15 12:11:41 -05:00
Huon Wilson
da45340ab8
Ensure an Rc isn't freed while running its own destructor.
...
A weak pointer inside itself will have its destructor run when the last
strong pointer to that data disappears, so we need to make sure that the
Weak and Rc destructors don't duplicate work (i.e. freeing).
By making the Rcs effectively take a weak pointer, we ensure that no
Weak destructor will free the pointer while still ensuring that Weak
pointers can't be upgraded to strong ones as the destructors run.
This approach of starting weak at 1 is what libstdc++ does.
Fixes #12046 .
2014-02-06 09:05:59 +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
Florian Hahn
2eb4f05850
Replace C types with Rust types in libstd, closes #7313
2014-01-22 19:20:47 +01:00
Daniel Micay
0e885e42b1
remove reference counting headers from ~
...
Unique pointers and vectors currently contain a reference counting
header when containing a managed pointer.
This `{ ref_count, type_desc, prev, next }` header is not necessary and
not a sensible foundation for tracing. It adds needless complexity to
library code and is responsible for breakage in places where the branch
has been left out.
The `borrow_offset` field can now be removed from `TyDesc` along with
the associated handling in the compiler.
Closes #9510
Closes #11533
2014-01-14 22:01:40 -05:00
Daniel Micay
fc60ace7a9
port over the old tests to the new Rc
2014-01-09 21:59:07 -05:00
Daniel Micay
c5bcb22719
rename Strong -> Rc, replacing rc
with weak
2014-01-09 16:02:17 -05:00
Daniel Micay
b36a948831
stop treating Rc
cycles as unsafe
2014-01-09 15:53:44 -05:00
Alex Crichton
bcb1c381a3
stdtest: Fix all leaked trait imports
2014-01-07 23:51:38 -08:00
Luca Bruno
a9a7a427a1
std: uniform modules titles for doc
...
This commit uniforms the short title of modules provided by libstd,
in order to make their roles more explicit when glancing at the index.
Signed-off-by: Luca Bruno <lucab@debian.org>
2013-12-27 09:49:11 +01:00
Patrick Walton
9521551b47
librustc: Fix merge fallout.
2013-11-26 11:04:39 -08:00
Patrick Walton
1eca34de7d
libstd: Remove all non-proc
uses of do
from libstd
2013-11-26 08:23:57 -08:00
Léo Testard
fdac9e470c
Implement cmp traits for Rc<T> and add a ptr_eq method.
2013-11-24 17:29:44 +01:00
Steven Fackler
bdfaf04bd5
Move mutable::Mut to cell::RefCell
2013-11-23 13:45:05 -08:00
Steven Fackler
c6ca9abcc6
Add Rc::from_mut
2013-11-22 21:19:53 -08:00
Steven Fackler
8a26266f65
Change Mut::map to Mut::with
2013-11-22 21:19:53 -08:00
Steven Fackler
18119afbbe
Move Rc tests away from Cell
2013-11-22 21:19:53 -08:00
Steven Fackler
7c9daa8ff7
Remove RcMut
...
Rc<Mut<T>> should be used instead
2013-11-22 21:19:53 -08:00
Patrick Walton
1946265e1a
libstd: Change all uses of &fn(A)->B
over to |A|->B
in libstd
2013-11-19 12:40:19 -08:00
Daniel Micay
8662141c21
add from_send
to Rc, since #9509 is fixed
2013-11-07 02:30:54 -05:00
Daniel Micay
ea0fc0e32b
rc: fix docstring
2013-10-12 10:19:56 -04:00
Daniel Micay
18be986c99
clean up the Rc
/RcMut
types and move to libstd
2013-10-11 13:28:36 -04: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
Brian Anderson
66319b0278
Register snapshots
2013-05-19 23:34:32 -07:00
Corey Richardson
cc57ca012a
Use assert_eq! rather than assert! where possible
2013-05-19 08:16:02 -04:00
Daniel Micay
4702667a62
allow constructing Rc/RcMut from Const types too
2013-05-15 19:18:09 -04:00
Daniel Micay
cda3ac905a
rc: fix tests
2013-05-15 04:34:31 -04:00
Daniel Micay
75822f2894
add a DeepClone trait
...
for deep copies through shared ownership boundaries
2013-05-15 01:36:41 -04:00
Patrick Walton
06ef889cdc
libsyntax: Remove extern mod foo { ... }
from the language.
2013-05-12 16:33:15 -07:00
Alex Crichton
998fececd6
Stop using the '<->' operator
2013-05-10 22:51:06 -04:00
James Miller
414970c46f
Add intrinsic declaration where I missed them
2013-05-09 23:16:07 +12:00
James Miller
57509709b4
Make staged versions of the functions that use uninit
2013-05-09 23:05:17 +12:00
James Miller
f5ab112e6b
Replace init() with uninit() where appropriate
2013-05-09 22:41:54 +12:00
Daniel Micay
044abef0e5
fix incorrect region code based on the old 'self
...
also removes unnecessary casts from the RcMut implementation
2013-05-08 16:00:49 -04:00
Daniel Micay
43165b54e0
rc: remove the managed pointer workaround
2013-05-07 13:02:56 -04:00
Daniel Micay
3d526d1af3
add task-local reference counted smart pointers
...
To provide a reference counted pointer type with deterministic
destruction once managed boxes are switched over to a garbage
collector. Unlike managed boxes, these can be moved instead of just
copied/cloned which is helpful for avoiding reference counts.
2013-05-06 17:03:20 -04:00