est31
c6afde6c46
Introduce tidy lint to check for inconsistent tracking issues
...
This commit
* Refactors the collect_lib_features function to work in a
non-checking mode (no bad pointer needed, and list of
lang features).
* Introduces checking whether unstable/stable tags for a
given feature have inconsistent tracking issues.
* Fixes such inconsistencies throughout the codebase.
2017-06-16 20:40:40 +02:00
Ulysse Carion
1af0cb1650
Use single quotes, and doc the Rc struct itself.
2017-06-05 12:07:54 -07:00
Ulysse Carion
8d9df99fbb
Explicate what "Rc" and "Arc" stand for.
2017-06-03 21:47:26 -07:00
Nicolas Silva
dec23d41a6
Update Rc and Arc documentation.
...
It was decided in the RFC discussion https://github.com/rust-lang/rfcs/pull/1954 to make the function call syntax Rc::clone(&foo) the idiomatic way to clone a reference counted pointer (over the method call syntax foo.clone(). This change updates the documentation of Rc, Arc and their respoective Weak pointers to reflect it and bring more exposure to the existence of the function call syntax.
2017-05-22 16:15:37 +02:00
Alexis Beingessner
4ff583b116
fallout from NonZero/Unique/Shared changes
2017-05-04 23:54:54 -04:00
bors
a94124488a
Auto merge of #41437 - cuviper:remove-unstable-deprecated, r=alexcrichton
...
Remove items that are unstable and deprecated
This removes unstable items that have been deprecated for more than one cycle.
- Since 1.16.0, `#![feature(enumset)]`
- All of `mod collections::enum_set`
- Since 1.15.0, `#![feature(borrow_state)]`
- `cell::BorrowState`
- `RefCell::borrow_state()`
- Since 1.15.0, `#![feature(is_unique)]`
- `Rc::is_unique()` (made private like `Arc::is_unique()`)
- Since 1.15.0, `#![feature(rc_would_unwrap)]`
- `Rc::would_wrap()`
- Since 1.13.0, `#![feature(binary_heap_extras)]`
- `BinaryHeap::push_pop()`
- `BinaryHeap::replace()`
- Since 1.12.0, `#![feature(as_unsafe_cell)]`
- `Cell::as_unsafe_cell()`
- `RefCell::as_unsafe_cell()`
- Since 1.12.0, `#![feature(map_entry_recover_keys)]`
- `btree_map::OccupiedEntry::remove_pair()`
- `hash_map::OccupiedEntry::remove_pair()`
- Since 1.11.0, `#![feature(float_extras)]`
- `Float::nan()`
- `Float::infinity()`
- `Float::neg_infinity()`
- `Float::neg_zero()`
- `Float::zero()`
- `Float::one()`
- `Float::integer_decode()`
- `f32::integer_decode()`
- `f32::ldexp()`
- `f32::frexp()`
- `f32::next_after()`
- `f64::integer_decode()`
- `f64::ldexp()`
- `f64::frexp()`
- `f64::next_after()`
- Since 1.11.0, `#![feature(zero_one)]`
- `num::Zero`
- `num::One`
2017-04-23 02:13:55 +00:00
Ariel Ben-Yehuda
ece6c8434b
cache attributes of items from foreign crates
...
this avoids parsing item attributes on each call to `item_attrs`, which takes
off 33% (!) of translation time and 50% (!) of trans-item collection time.
2017-04-22 21:00:50 +03:00
Josh Stone
f0c5e8b8fc
Privatize Rc::is_unique
...
[unstable, deprecated since 1.15.0]
2017-04-20 21:16:31 -07:00
Josh Stone
f4aaae9bdb
Remove Rc::would_wrap
...
[unstable, deprecated since 1.15.0]
2017-04-20 21:16:31 -07:00
projektir
f84cc0c0d0
Updating docs for std::rc::Rc
2017-04-12 22:57:49 -04:00
steveklabnik
d1d9626e75
Fix up various links
...
The unstable book, libstd, libcore, and liballoc all needed some
adjustment.
2017-03-20 10:10:16 -04:00
Aaron Turon
a8f4a1bd98
Stabilize rc_raw feature, closes #37197
2017-03-17 13:28:53 -07:00
Aaron Turon
10510aefb1
Stabilize ptr_eq feature, closes #36497
2017-03-17 13:28:37 -07:00
Corey Farwell
e7b0f2badf
Remove function invokation parens from documentation links.
...
This was never established as a convention we should follow in the 'More
API Documentation Conventions' RFC:
https://github.com/rust-lang/rfcs/blob/master/text/1574-more-api-documentation-conventions.md
2017-03-13 21:43:18 -04:00
Steve Klabnik
b4cd3d9206
Revert "Fix up links"
...
This reverts commit 7f1d1c6d9a
.
The original commit was created because mdBook and rustdoc had
different generation algorithms for header links; now with
https://github.com/rust-lang/rust/pull/39966 , the algorithms
are the same. So let's undo this change.
... when I came across this problem, I said "eh, this isn't fun,
but it doesn't take that long." I probably should have just actually
taken the time to fix upstream, given that they were amenable. Oh
well!
2017-02-20 09:09:12 -05:00
Steve Klabnik
7f1d1c6d9a
Fix up links
...
mdbook and rustdoc generate links differently, so we need to change all
these links.
2017-02-13 13:41:24 -05:00
Federico Mena Quintero
4a07e722c0
In std:rc, clarify the lack of mutability inside an Rc
...
Also, point to the example in Cell's docs for how to do it.
2017-01-31 18:02:41 -06:00
Andrew Paseltiner
ca9b07bbc9
Replace uses of #[unsafe_destructor_blind_to_params]
with #[may_dangle]
...
CC #34761
2016-12-28 17:47:10 -05:00
Aaron Turon
9a5cef4de5
Address fallout
2016-12-16 19:42:17 -08:00
Aaron Turon
b02ed1e1d4
Stabilize:
...
- `std::rc::Rc::{strong_count, weak_count}`
- `std::sync::Arc::{strong_count, weak_count}`
Deprecate:
- `std::rc::Rc::{would_unwrap, is_unique}`
2016-12-15 10:56:55 -08:00
Guillaume Gomez
5caec61a7f
Add missing links to Rc doc
2016-12-05 18:33:03 -08:00
bors
0491a23177
Auto merge of #37192 - cristicbz:rust-rc-into-raw, r=brson
...
Add `{into,from}_raw` to Rc and Arc
These methods convert to and from a `*const T` for `Rc` and `Arc` similar to the way they work on `Box`. The only slight complication is that `from_raw` needs to offset the pointer back to find the beginning of the `RcBox`/`ArcInner`.
I felt this is a fairly small addition, filling in a gap (when compared to `Box`) so it wouldn't need an RFC. The motivation is primarily for FFI.
(I'll create an issue and update a PR with the issue number if reviewers agree with the change in principle **Edit: done #37197**)
~~Edit: This was initially `{into,from}_raw` but concerns were raised about the possible footgun if mixed with the methods of the same name of `Box`.~~
Edit: This was went from `{into,from}_raw` to `{into,from}_inner_raw` then back to `{into,from}_raw` during review.
2016-11-08 12:13:45 -08:00
Cristi Cobzarenco
651cf58f2e
Add {into,from}_raw
to Rc and Arc
2016-11-05 00:50:41 +00:00
Vadim Petrochenkov
348c3fb085
Add assert checking that allocation and deallocation sizes are equal
2016-10-13 14:05:59 +03:00
Vadim Petrochenkov
ef3a6a8ee6
Add an unstable constructor for creating Rc<str>
from str
2016-10-13 00:45:05 +03:00
Keegan McAllister
29d3e570a5
Apply some Arc doc changes to Rc
2016-10-04 09:50:31 -07:00
Brian Anderson
3b49c60ab7
Remove stage0 hacks
2016-09-28 23:17:56 +00:00
Keegan McAllister
c316ae56e6
Tweak std::rc docs
...
Fixes #29372 .
2016-09-21 10:25:01 -07:00
Simon Sapin
eba2270a9c
Add pub fn ptr_eq(this: &Self, other: &Self) -> bool
to Rc
and Arc
.
...
Servo and Kuchiki have had helper functions doing this for some time.
2016-09-15 18:48:16 +02:00
athulappadan
49e77dbf25
Documentation of what does for each type
2016-09-11 17:00:09 +05:30
Georg Brandl
a068fc70ab
Doc: explain why Box/Rc/Arc methods do not take self
...
This can be confusing for newcomers, especially due to the argument
name "this".
2016-08-27 19:53:02 +02:00
Eduard Burtescu
119508cdb4
Remove drop flags from structs and enums implementing Drop.
2016-08-24 13:23:37 +03:00
Matthew Piziak
5310d1110d
add example for Rc::would_unwrap
...
Part of #29372
r? @steveklabnik
2016-08-21 17:18:52 -04:00
Manish Goregaokar
8242a30b9e
Rollup merge of #34097 - arbitrary-cat:master, r=steveklabnik
...
Revise wording in Rc documentation.
The term "thread-local" has a widely accepted meaning which is not
the meaning it's used for here.
2016-07-08 13:14:19 +05:30
Sam Payson
46e7c9ec74
Changed wording per aturon's comments.
2016-07-07 08:40:15 -07:00
Frank McSherry
094f1c4dc6
Update rc.rs
...
The original description suggests that the original `Rc<T>` itself is downgraded, which doesn't seem to be what the code does. At the same time, `Rc` is one of those types that can do weird things with only a shared reference, so I thought it would be good to be clear.
2016-06-05 20:26:24 +02:00
Sam Payson
be6c21f267
Revise wording in Rc documentation.
...
The term "thread-local" has a widely-accepted meaning which is not
the meaning it's used for here.
2016-06-05 10:20:33 -07:00
Srinivas Reddy Thatiparthy
3fd0e4c7f2
rustfmt liballoc folder
2016-05-28 02:25:16 +05:30
Alex Crichton
cae91d7c8c
std: Stabilize APIs for the 1.10 release
...
This commit applies the FCP decisions made by the libs team for the 1.10 cycle,
including both new stabilizations and deprecations. Specifically, the list of
APIs is:
Stabilized:
* `os::windows::fs::OpenOptionsExt::access_mode`
* `os::windows::fs::OpenOptionsExt::share_mode`
* `os::windows::fs::OpenOptionsExt::custom_flags`
* `os::windows::fs::OpenOptionsExt::attributes`
* `os::windows::fs::OpenOptionsExt::security_qos_flags`
* `os::unix::fs::OpenOptionsExt::custom_flags`
* `sync::Weak::new`
* `Default for sync::Weak`
* `panic::set_hook`
* `panic::take_hook`
* `panic::PanicInfo`
* `panic::PanicInfo::payload`
* `panic::PanicInfo::location`
* `panic::Location`
* `panic::Location::file`
* `panic::Location::line`
* `ffi::CStr::from_bytes_with_nul`
* `ffi::CStr::from_bytes_with_nul_unchecked`
* `ffi::FromBytesWithNulError`
* `fs::Metadata::modified`
* `fs::Metadata::accessed`
* `fs::Metadata::created`
* `sync::atomic::Atomic{Usize,Isize,Bool,Ptr}::compare_exchange`
* `sync::atomic::Atomic{Usize,Isize,Bool,Ptr}::compare_exchange_weak`
* `collections::{btree,hash}_map::{Occupied,Vacant,}Entry::key`
* `os::unix::net::{UnixStream, UnixListener, UnixDatagram, SocketAddr}`
* `SocketAddr::is_unnamed`
* `SocketAddr::as_pathname`
* `UnixStream::connect`
* `UnixStream::pair`
* `UnixStream::try_clone`
* `UnixStream::local_addr`
* `UnixStream::peer_addr`
* `UnixStream::set_read_timeout`
* `UnixStream::set_write_timeout`
* `UnixStream::read_timeout`
* `UnixStream::write_Timeout`
* `UnixStream::set_nonblocking`
* `UnixStream::take_error`
* `UnixStream::shutdown`
* Read/Write/RawFd impls for `UnixStream`
* `UnixListener::bind`
* `UnixListener::accept`
* `UnixListener::try_clone`
* `UnixListener::local_addr`
* `UnixListener::set_nonblocking`
* `UnixListener::take_error`
* `UnixListener::incoming`
* RawFd impls for `UnixListener`
* `UnixDatagram::bind`
* `UnixDatagram::unbound`
* `UnixDatagram::pair`
* `UnixDatagram::connect`
* `UnixDatagram::try_clone`
* `UnixDatagram::local_addr`
* `UnixDatagram::peer_addr`
* `UnixDatagram::recv_from`
* `UnixDatagram::recv`
* `UnixDatagram::send_to`
* `UnixDatagram::send`
* `UnixDatagram::set_read_timeout`
* `UnixDatagram::set_write_timeout`
* `UnixDatagram::read_timeout`
* `UnixDatagram::write_timeout`
* `UnixDatagram::set_nonblocking`
* `UnixDatagram::take_error`
* `UnixDatagram::shutdown`
* RawFd impls for `UnixDatagram`
* `{BTree,Hash}Map::values_mut`
* `<[_]>::binary_search_by_key`
Deprecated:
* `StaticCondvar` - this, and all other static synchronization primitives
below, are usable today through the lazy-static crate on
stable Rust today. Additionally, we'd like the non-static
versions to be directly usable in a static context one day,
so they're unlikely to be the final forms of the APIs in any
case.
* `CONDVAR_INIT`
* `StaticMutex`
* `MUTEX_INIT`
* `StaticRwLock`
* `RWLOCK_INIT`
* `iter::Peekable::is_empty`
Closes #27717
Closes #27720
cc #27784 (but encode methods still exist)
Closes #30014
Closes #30425
Closes #30449
Closes #31190
Closes #31399
Closes #31767
Closes #32111
Closes #32281
Closes #32312
Closes #32551
Closes #33018
2016-05-24 09:00:39 -07:00
Tobias Bucher
0936b5885d
Remove strange names created by lack of privacy-conscious name lookup
...
The fixed issue that allowed this was #12808 .
2016-04-05 11:41:48 +02:00
srinivasreddy
93f2a54609
first round of removal of integer suffixes
2016-03-10 21:48:15 +05:30
Steve Klabnik
df550de689
Clarify that try_unwrap needs exactly one
...
Fixes #31950
2016-03-09 03:33:51 -05:00
Kamal Marhubi
c5f73ed80c
Implement fmt::Pointer for pointers to unsized types
...
This allows printing pointers to unsized types with the {:p} formatting
directive. The following impls are extended to unsized types:
- impl<'a, T: ?Sized> Pointer for &'a T
- impl<'a, T: ?Sized> Pointer for &'a mut T
- impl<T: ?Sized> Pointer for *const T
- impl<T: ?Sized> Pointer for *mut T
- impl<T: ?Sized> fmt::Pointer for Box<T>
- impl<T: ?Sized> fmt::Pointer for Rc<T>
- impl<T: ?Sized> fmt::Pointer for Arc<T>
2016-02-08 14:08:19 -05:00
Sebastian Hahn
34f17d98ea
Fix incorrect stability annotations for Weak
...
This was accidentally introduced in
7e2ffc7090
.
2016-01-20 05:56:28 +01:00
bors
8aee5826f9
Auto merge of #30593 - steveklabnik:small_rc_refactoring, r=Gankro
...
This hairy conditional doesn't need to be so. It _does_ need to be a
thin pointer, otherwise, it will fail to compile, so let's pull that out
into a temporary for future readers of the source.
/cc @nrc @SimonSapin @Gankro @durka , who brought this up on IRC
2015-12-31 11:42:16 +00:00
bors
682cfc5187
Auto merge of #30467 - shahn:master, r=brson
...
This adds a constructor for a Weak that can never be upgraded. These are
mostly useless, but for example are required when deserializing.
2015-12-30 19:37:53 +00:00
Steve Klabnik
2cff12e0d6
Small refactoring to make this code more clear
...
This hairy conditional doesn't need to be so. It _does_ need to be a
thin pointer, otherwise, it will fail to compile, so let's pull that out
into a temporary for future readers of the source.
Also, after a discussion with @pnkfelix and @gankro, we don't need these
null checks anymore, as zero-on-drop has been gone for a while now.
2015-12-30 12:06:28 -05:00
Alex Crichton
cd1848a1a6
Register new snapshots
...
Lots of cruft to remove!
2015-12-21 09:26:21 -08:00
Sebastian Hahn
7dd618fd23
Address review comments
2015-12-19 01:31:21 +01:00
Sebastian Hahn
4741ad38b5
Rename Weak::new_downgraded to Weak::new
2015-12-19 00:23:07 +01:00