1
Fork 0
Commit graph

231 commits

Author SHA1 Message Date
Aaron Turon
10510aefb1 Stabilize ptr_eq feature, closes #36497 2017-03-17 13:28:37 -07: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
Oliver Middleton
09b3903aec Fix a few links in the docs 2017-01-27 18:08:51 +00:00
Seo Sanghyeon
d350c9b15f Rollup merge of #38664 - apasel422:may-dangle, r=pnkfelix
Replace uses of `#[unsafe_destructor_blind_to_params]` with `#[may_dangle]`

CC #34761

r? @pnkfelix
2017-01-10 20:27:41 +09: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
Guillaume Gomez
f4bd94f779 Add missing urls in Arc docs 2016-12-24 10:51:46 +01: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
bors
02aa42860d Auto merge of #37657 - steveklabnik:rollup, r=steveklabnik
Rollup of 8 pull requests

- Successful merges: #35102, #37425, #37483, #37588, #37601, #37610, #37650, #37652
- Failed merges:
2016-11-09 05:35:23 -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
Simon Sapin
93571537e3 More proeminent warning in Arc::{strong,weak}_count docs. 2016-11-08 20:15:20 +01:00
Daan Sprenkels
99aaccd32f Add a comment to Arc::MAX_REFCOUNT
The constant name `MAX_REFCOUNT` suggests that the value is a
_hard_ limit on the amount of references to an `Arc`. This is
a more soft limit however. This commit adds a comment to the
constant to annotate this.

See also: PR #37605
2016-11-06 20:07:28 +01:00
Cristi Cobzarenco
651cf58f2e Add {into,from}_raw to Rc and Arc 2016-11-05 00:50:41 +00:00
Keegan McAllister
05b6d68619 Update Arc docs to match new Rc docs 2016-10-04 08:34:24 -07:00
Brian Anderson
9c4a01ee9e Ignore lots and lots of std tests on emscripten 2016-09-30 14:02:48 -07:00
Brian Anderson
3b49c60ab7 Remove stage0 hacks 2016-09-28 23:17:56 +00: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
41881e85bd Documentation for default types modified 2016-09-11 22:58:01 +05:30
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
Alex Crichton
8487666241 std: Ignore tests where threads outlive main
Long ago we discovered that threads which outlive main and then exit while the
rest of the program is exiting causes Windows to hang (#20704). That's what was
happening in this test so let's just not run this test any more.
2016-07-22 16:29:36 -07:00
Zhen Zhang
a6ff05cd83 Improve arc doc, fixing #32905 2016-07-12 08:25:49 +08: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
Manish Goregaokar
1d59b91ed4 Rollup merge of #32741 - tbu-:pr_remove_fixme_12808, r=bluss
Remove strange names created by lack of privacy-conscious name lookup

The fixed issue that allowed this was #12808.
2016-04-07 23:26:19 +05:30
Amanieu d'Antras
af047d9c10 Fix infinite loop in Arc::downgrade 2016-04-05 14:00:17 +01: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
Amanieu d'Antras
9a28d4edc9 Change Arc to use compare_exchange instead of compare_and_swap 2016-03-31 13:15:20 +01: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
bors
106070b905 Auto merge of #31479 - kamalmarhubi:fmt-pointer-unsized, r=alexcrichton
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-11 01:54:15 +00: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
Richard Bradfield
3cafce6596 Fix unclear make_mut docs
Changed the description of the `make_mut` copy-on-write behaviour in arc.rs

The sentence "doesn't have one strong reference and no weak references." is a
hard to understand double negative, which can be much more easily explained.
2016-02-04 09:25:03 +00:00
Sebastian Hahn
327c902342 Fix incorrect stability annotations for arc::Weak
This was accidentally introduced in
7e2ffc7090,
b44ee371b8 and
36ba96ea3c.
2016-01-20 06:59:00 +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
5b3bdafb96 Have to use Weak instead of Arc in Weak::new() example 2015-12-19 01:49:36 +01:00
Sebastian Hahn
7dd618fd23 Address review comments 2015-12-19 01:31:21 +01:00
Sebastian Hahn
9697076b62 Implement arc::Weak::new() 2015-12-19 00:23:07 +01:00
bors
47cd3a4ae7 Auto merge of #30182 - alexcrichton:remove-deprecated, r=aturon
This is a standard "clean out libstd" commit which removes all 1.5-and-before
deprecated functionality as it's now all been deprecated for at least one entire
cycle.
2015-12-10 19:54:15 +00:00
Alex Crichton
da50f7c288 std: Remove deprecated functionality from 1.5
This is a standard "clean out libstd" commit which removes all 1.5-and-before
deprecated functionality as it's now all been deprecated for at least one entire
cycle.
2015-12-10 11:47:55 -08:00
Tianyi Wang
f13f488eb6 fixed a typo in comments
srong -> strong in liballoc/arc.rs
2015-12-09 23:18:24 +08:00
bors
bef2af6201 Auto merge of #30017 - nrc:fmt, r=brson 2015-11-25 20:40:27 +00:00
Andrew Paseltiner
0fc1f9a2ed Add overflow check to arc::Weak::upgrade
Closes #30031.
2015-11-24 16:40:25 -05:00
Nick Cameron
1f1a1e6595 rustfmt: liballoc, liballoc_*, libarena 2015-11-24 11:23:17 +13:00
Vadim Petrochenkov
a613059e3f Rename #[deprecated] to #[rustc_deprecated] 2015-11-20 16:11:20 +03:00
Vadim Petrochenkov
7e2ffc7090 Add missing annotations and some tests 2015-11-18 01:24:21 +03:00