Commit graph

11852 commits

Author SHA1 Message Date
muvlon
fc825f09e8 Fix confusing documentation for OsStr 2018-01-11 17:20:16 +01:00
Ed Schouten
cc8565b20a Make the documentation build work on CloudABI.
Just like with wasm, we can't just import unix::ext and windows::ext.
Our shims are not complete enough for that.
2018-01-11 11:29:52 +01:00
Ed Schouten
d9d97c9f09 Make tests build on CloudABI.
There are some tests that need to be disabled on CloudABI specifically,
due to the fact that the shims cannot be built in combination with
unix::ext or windows::ext. Also improve the scoping of some imports to
suppress compiler warnings.
2018-01-11 11:28:34 +01:00
Ed Schouten
d882bb516e Add shims for modules that we can't implement on CloudABI.
As discussed in #47268, libstd isn't ready to have certain functionality
disabled yet. Follow wasm's approach of adding no-op modules for all of
the features that we can't implement.

I've placed all of those shims in a shims/ subdirectory, so we (the
CloudABI folks) can experiment with removing them more easily. It also
ensures that the code that does work doesn't get polluted with lots of
useless boilerplate code.
2018-01-11 11:26:13 +01:00
Ed Schouten
20745264ce Implement libstd for CloudABI.
Though CloudABI is strongly inspired by POSIX, its absence of features
that don't work well with capability-based sandboxing makes it different
enough that adding bits to sys/unix will make things a mess. This change
therefore adds CloudABI specific platform code under sys/cloudabi and
borrows parts from sys/unix that can be used without changes.

One of the goals of this implementation is to build as much as possible
directly on top of CloudABI's system call layer, as opposed to using the
C library. This is preferred, as the system call layer is supposed to be
stable, whereas the C library ABI technically is not. An advantage of
this approach is that it allows us to implement certain interfaces, such
as mutexes and condition variables more optimally. They can be lighter
than the ones provided by pthreads.

This change disables some modules that cannot realistically be
implemented right now. For example, libstd's pathname abstraction is not
designed with POSIX *at() (e.g., openat()) in mind. The *at() functions
are the only set of file system APIs available on CloudABI. There is no
global file system namespace, nor a process working directory.
Discussions on how to port these modules over are outside the scope of
this change.

Apart from this change, there are still some other minor fixups that
need to be made to platform independent code to make things build. These
will be sent out separately, so they can be reviewed more thoroughly.
2018-01-11 11:21:54 +01:00
Ed Schouten
795e173a76 Import the CloudABI system call bindings into the libstd tree.
These automatically generated Rust source files allow us to invoke
system calls within CloudABI processes. These will be used by libstd to
implement primitives for I/O, threading, etc.

These source files are normally part of the 'cloudabi' crate. In the
case of libstd, we'd better copy them into the source tree, as having
external dependencies in libstd is a bit messy. Original source files
can be found here:

    https://github.com/NuxiNL/cloudabi/tree/master/rust
2018-01-11 11:21:51 +01:00
Alexis Hunt
9d9504a27c Fix typo. 2018-01-10 17:58:00 -05:00
Matt Brubeck
44912bf77b Pre-allocate in fs::read and fs::read_string 2018-01-10 10:48:11 -08:00
bors
27ede55414 Auto merge of #46830 - Diggsey:cursor-vec-mut, r=alexcrichton
Implement `Write` for `Cursor<&mut Vec<T>>`

Fixes #30132

r? @dtolnay (I'm just going through `feature-accepted` issues I swear 😛)
2018-01-10 06:33:31 +00:00
Bulat Musin
d0d5db65c7
fix typo rwlock.rs
Hi. Fixed typo: contained -> content
2018-01-10 08:03:10 +03:00
Corey Farwell
14a9e264ba Rollup merge of #47285 - AndrewBrinker:master, r=kennytm
Fixed a typo in the compile_error docs

Noticed a typo and fixed it.
2018-01-09 22:28:25 -05:00
est31
24918148bb We have Rust 1.25 now 2018-01-10 03:27:08 +01:00
est31
a8556d77c6 Stabilize the panic_col feature
I've added the panic_col feature in PR #42938.
Now it's time to stabilize it!
Closes #42939.
2018-01-10 03:23:49 +01:00
Nathaniel Ringo
c25178c9fd Fixes whitespace. 2018-01-09 15:31:25 -06:00
Nathaniel Ringo
7caf753d44 Fixes Duration constructor const fns other than new, reverts new to non-const. 2018-01-09 15:09:54 -06:00
Nathaniel Ringo
2624c05acf Makes the constructors of Duration const fns. 2018-01-09 14:21:45 -06:00
Taylor Cramer
25574e58b6 Make core::ops::Place an unsafe trait 2018-01-09 11:39:23 -08:00
Trevor Spiteri
6d82e7814f remove implementation detail from doc 2018-01-09 12:26:00 +01:00
Andrew Brinker
45221511d4 Fixed a typo in the compile_error docs 2018-01-08 16:35:06 -08:00
kennytm
9ef98545c9
Rollup merge of #47272 - GuillaumeGomez:missing-links, r=QuietMisdreavus
Add missing links

r? @QuietMisdreavus

(please wait for CI, I have a few doubts about the `Write` trait links...)
2018-01-09 03:37:22 +08:00
kennytm
5ffaf4c291
Rollup merge of #47259 - sfackler:map-remove-entry, r=dtolnay
Add HashMap::remove_entry

Implements #46344

r? @dtolnay
2018-01-09 03:37:18 +08:00
kennytm
4c0823a670
Rollup merge of #47254 - rkruppe:no-more-align-hack, r=alexcrichton
Replace empty array hack with repr(align)

As a side effect, this fixes the warning about repr(C, simd) that has been reported during x86_64 windows builds since #47111 (see also: #47103)

r? @alexcrichton
2018-01-09 03:37:12 +08:00
Trevor Spiteri
0eba4c206a doc: show that f32::log and f64::log are not correctly rounded 2018-01-08 19:22:37 +01:00
Guillaume Gomez
93969734f6 Add missing links 2018-01-08 14:16:16 +01:00
Steven Fackler
1fc6ad56cd Add HashMap::remove_entry
Implements #46344
2018-01-07 14:17:37 -08:00
Robin Kruppe
9e4a692e56 Replace empty array hack with repr(align)
As a side effect, this fixes the warning about repr(C, simd) that has been reported during x86_64 windows builds since #47111 (see also: #47103)
2018-01-07 20:25:37 +01:00
Aidan Hobson Sayers
fd37526fa5 Make wasm obey backtrace feature, like other targets 2018-01-07 02:54:02 +00:00
Zack M. Davis
aba56ddd05 type error method suggestions use whitelisted identity-like conversions
Previously, on a type mismatch (and if this wasn't preëmpted by a
higher-priority suggestion), we would look for argumentless methods
returning the expected type, and list them in a `help` note.

This had two major shortcomings. Firstly, a lot of the suggestions didn't
really make sense (if you used a &str where a String was expected,
`.to_ascii_uppercase()` is probably not the solution you were hoping
for). Secondly, we weren't generating suggestions from the most useful
traits!

We address the first problem with an internal
`#[rustc_conversion_suggestion]` attribute meant to mark methods that keep
the "same value" in the relevant sense, just converting the type. We
address the second problem by making `FnCtxt.probe_for_return_type` pass
the `ProbeScope::AllTraits` to `probe_op`: this would seem to be safe
because grep reveals no other callers of `probe_for_return_type`.

Also, structured suggestions are preferred (because they're pretty, but
also for RLS and friends).

Also also, we make the E0055 autoderef recursion limit error use the
one-time-diagnostics set, because we can potentially hit the limit a lot
during probing. (Without this,
test/ui/did_you_mean/recursion_limit_deref.rs would report "aborting due to
51 errors").

Unfortunately, the trait probing is still not all one would hope for: at a
minimum, we don't know how to rule out `into()` in cases where it wouldn't
actually work, and we don't know how to rule in `.to_owned()` where it
would. Issues #46459 and #46460 have been filed and are ref'd in a FIXME.

This is hoped to resolve #42929, #44672, and #45777.
2018-01-06 17:15:59 -08:00
kennytm
e7192c1a4b Rollup merge of #47217 - stjepang:set-examples, r=frewsxcv
Write examples for {BTree,Hash}Set::{get,replace,take}
2018-01-07 02:36:05 +08:00
bors
72176cf96c Auto merge of #47141 - alexcrichton:bump-bootstrap, r=alexcrichton
Bump to 1.25.0

* Bump the release version to 1.25
* Bump the bootstrap compiler to the recent beta
* Allow using unstable rustdoc features on beta - this fix has been applied to
  the beta branch but needed to go to the master branch as well.
2018-01-06 14:50:14 +00:00
Guillaume Gomez
35d15554bd Rollup merge of #47216 - SergioBenitez:doc-fix, r=Mark-Simulacrum
Clarify appending behavior of 'io::Read::read_to_string()'.

A simple doc clarification.
2018-01-06 02:13:36 +01:00
Guillaume Gomez
5624ac7c47 Rollup merge of #47165 - mbrubeck:args, r=alexcrichton
[unix] Don't clone command-line args on startup

Fixes part of #47164 and simplifies the `args` code on non-Apple Unix platforms.

Note: This could change behavior for programs that use both `std::env::args` *and* unsafe code that mutates `argv` directly.  However, these programs already behave differently on different platforms.  The new behavior on non-Apple platforms is closer to the existing behavior on Apple platforms.
2018-01-06 02:13:33 +01:00
Guillaume Gomez
67e3a2bb2c Rollup merge of #46987 - frewsxcv:frewsxcv-current-exe, r=QuietMisdreavus
Minor rewrite of env::current_exe docs; clarify symlinks.

- Update example in ‘security’ section to use hard links, like the
  linked securityvulns.com example.
- Weaken language on symbolic links – indicate behavior is
  platform-specific

Fixes https://github.com/rust-lang/rust/issues/43617.
2018-01-06 02:13:32 +01:00
Stjepan Glavina
7948f458ab Write examples for {BTree,Hash}Set::{get,replace,take} 2018-01-05 15:02:10 +01:00
Sergio Benitez
d301da55f8 Clarify appending behavior of 'io::Read::read_to_string()'. 2018-01-05 04:24:12 -08:00
kennytm
71c8e106e3 Rollup merge of #47198 - dzamlo:patch-2, r=frewsxcv
Fix an error in std::process documentation
2018-01-05 17:22:12 +08:00
kennytm
63c8e0c86b Rollup merge of #47030 - ollie27:stab, r=alexcrichton
Correct a few stability attributes

* The extra impls for `ManuallyDrop` were added in #44310 which was only stabilised in 1.22.0.
* The impls for `SliceIndex` were stabilised in #43373 but as `RangeInclusive` and `RangeToInclusive` are still unstable the impls should remain unstable.
* The `From` impls for atomic integers were added in #45610 but most atomic integers are still unstable.
* The `shared_from_slice2` impls were added in #45990 but they won't be stable until 1.24.0.
* The `Mutex` and `RwLock` impls were added in #46082 but won't be stable until 1.24.0.
2018-01-05 17:22:04 +08:00
Matt Brubeck
91c3eee173 [unix] Don't clone command-line args on startup 2018-01-04 15:11:39 -08:00
Loïc Damien
8fc4a24062
Fix an error in std::process documentation 2018-01-04 22:01:57 +01:00
Alex Crichton
53fd0c50d8 Bump to 1.25.0
* Bump the release version to 1.25
* Bump the bootstrap compiler to the recent beta
* Allow using unstable rustdoc features on beta - this fix has been applied to
  the beta branch but needed to go to the master branch as well.
2018-01-04 07:21:22 -08:00
Corey Farwell
f3ef077b91 Document when LineWriter flushes; document errors for into_inner.
Fixes https://github.com/rust-lang/rust/issues/42468.
2018-01-02 13:30:44 -08:00
bors
a37126b90c Auto merge of #47042 - redox-os:redox, r=estebank
Redox - Implement rename using new system call

This does the following:

- Update syscall module to match upstream
- Implement rename using new system call
- Make readlink and symlink utilize O_CLOEXEC
- Make readlink and symlink not leave dangling file handles on failure
2018-01-02 11:22:40 +00:00
bors
8c59418962 Auto merge of #46713 - Manishearth:memchr, r=bluss
Use memchr to speed up [u8]::contains 3x

None
2017-12-31 16:38:10 +00:00
varkor
e154e33add Fix doc typo for is_ascii_graphic
Fixes #47067.
2017-12-30 21:27:43 +00:00
bors
35681fbc76 Auto merge of #47026 - EdSchouten:cloudabi-unwind, r=kennytm
Link against -lunwind on CloudABI.

CloudABI makes use of LLVM's libunwind to do stack unwinding. It is
installed under the name libunwind.a.
2017-12-29 23:07:42 +00:00
Ed Schouten
146fe0ad75 Add proper library dependencies for libstd on CloudABI.
Don't attempt to build libunwind on CloudABI, as libunwind is already
provided by the system by default.
2017-12-29 09:33:26 +01:00
Ed Schouten
bd812d9259 Remove an unused import for cfg(not(feature = "backtrace")).
The 'mem' module is not used for this specific code. This was
copy-pasted in by accident when adding RFC 1937 (? in main) support.
2017-12-28 14:49:31 +01:00
Diggory Blake
e0855ff4a1 Implement AsRef<Path> for Component 2017-12-28 13:27:53 +00:00
Jeremy Soller
5919243924 Implement rename using new system call
Fix readlink and symlink to utilize O_CLOEXEC
2017-12-27 20:37:50 -07:00
bors
bfbb1f5ce1 Auto merge of #46479 - bkchr:termination_trait, r=arielb1
Implements RFC 1937: `?` in `main`

This is the first part of the RFC 1937 that supports new
`Termination` trait in the rust `main` function.

Thanks @nikomatsakis, @arielb1 and all other people in the gitter channel for all your help!

The support for doctest and `#[test]` is still missing, bu as @nikomatsakis said, smaller pull requests are better :)
2017-12-27 15:41:51 +00:00