Commit graph

131 commits

Author SHA1 Message Date
Alex Crichton
5c3fe111d4 std: Avoid use of libc in portable modules
This commit removes usage of the `libc` crate in "portable" modules like
those at the top level and `sys_common`. Instead common types like `*mut
u8` or `u32` are used instead of `*mut c_void` or `c_int` as well as
switching to platform-specific functions like `sys::strlen` instead of
`libc::strlen`.
2017-11-09 07:56:44 -08:00
Alex Crichton
348930eb4e std: Move the cmath module into the sys module
This commit moves the `f32::cmath` and `f64::cmath` modules into the
`sys` module. Note that these are not publicly exported modules, simply
implementation details. These modules are already platform-specific with
shims on MSVC and this is mostly just a reflection of that reality. This
should also help cut down on `#[cfg]` traffic if platforms are brought on
which don't directly support these functions.
2017-11-08 20:42:23 -08:00
Alex Crichton
1ccb50eaa6 std: Change how EBADF is handled in sys
This commit removes the reexport of `EBADF_ERR` as a constant from
libstd's portability facade, instead opting for a platform-specific
function that specifically queries an `io::Error`. Not all platforms may
have a constant for this, so it makes the intent a little more clear
that a code need not be supplied, just an answer to a query.
2017-11-08 20:41:17 -08:00
Alex Crichton
6bc8f164b0 std: Remove rand crate and module
This commit removes the `rand` crate from the standard library facade as
well as the `__rand` module in the standard library. Neither of these
were used in any meaningful way in the standard library itself. The only
need for randomness in libstd is to initialize the thread-local keys of
a `HashMap`, and that unconditionally used `OsRng` defined in the
standard library anyway.

The cruft of the `rand` crate and the extra `rand` support in the
standard library makes libstd slightly more difficult to port to new
platforms, namely WebAssembly which doesn't have any randomness at all
(without interfacing with JS). The purpose of this commit is to clarify
and streamline randomness in libstd, focusing on how it's only required
in one location, hashmap seeds.

Note that the `rand` crate out of tree has almost always been a drop-in
replacement for the `rand` crate in-tree, so any usage (accidental or
purposeful) of the crate in-tree should switch to the `rand` crate on
crates.io. This then also has the further benefit of avoiding
duplication (mostly) between the two crates!
2017-11-08 20:41:17 -08:00
Thayne McCombs
6ff6b93560 Add current_pid function
Fixes #44971
2017-10-06 01:15:49 -06:00
Guillaume Gomez
6e6a474357 Rollup merge of #44513 - redox-os:master, r=alexcrichton
[Redox] Sync with upstream syscall library

This syncs the vendored syscalls with their upstream versions.
2017-09-19 21:50:21 +02:00
Jeremy Soller
00c7ea5f53 Fix network families 2017-09-16 20:54:11 -06:00
bors
84bbd14e3f Auto merge of #43972 - TobiasSchaffner:std_clean, r=alexcrichton
Add the libstd-modifications needed for the L4Re target

This commit adds the needed modifications to compile the std crate for the L4 Runtime environment (L4Re).

A target for the L4Re was introduced in commit: c151220a84

In many aspects implementations for linux also apply for the L4Re microkernel.

Some uncommon characteristics had to be resolved:
 * L4Re has no network funktionality
 * L4Re has a maximum stacksize of 1Mb for threads
 * L4Re has no uid or gid

Co-authored-by: Sebastian Humenda <sebastian.humenda@tu-dresden.de>
2017-09-14 03:02:58 +00:00
Tobias Schaffner
b2b5063517 Move default stack min size to thread implementations
The default min stack size value is smaller on l4re and therefore
this value has to be different depending on the platform.
2017-09-13 10:56:41 +02:00
Jeremy Soller
914853bbfa Fix tidy checks 2017-09-11 19:46:18 -06:00
Jeremy Soller
e2820ea06c Sync with upstream syscall library 2017-09-11 18:46:01 -06:00
kennytm
8410ca6632
Properly detect overflow in Instance +/- Duration.
Avoid unchecked cast from `u64` to `i64`. Use `try_into()` for checked
cast. (On Unix, cast to `time_t` instead of `i64`.)
2017-09-07 17:14:27 +08:00
lukaramu
49ee9f3f08 Fix inconsistent doc headings
This fixes headings reading "Unsafety" and "Example", they should be
"Safety" and "Examples" according to RFC 1574.
2017-08-24 18:42:53 +02:00
Ian Douglas Scott
a41c4f80d9
redox: Correct error on exec when file is not found
`.raw_os_error()` (called in `spawn()`) returned None, so this produced an incorrect error.
2017-08-20 10:10:03 -07:00
Corey Farwell
a4387d54dc Rollup merge of #43891 - Fourchaux:master, r=steveklabnik
Fix typos & us spellings

Fixing some typos and non en-US spellings.

(Update of PR https://github.com/rust-lang/rust/pull/42812 )
2017-08-17 10:44:07 -04:00
bors
6f4ab9458a Auto merge of #43710 - zackmdavis:field_init_shorthand_power_slam, r=Mark-Simulacrum
use field init shorthand EVERYWHERE

Like #43008 (f668999), but [(lacking reasons to be more timid)](https://github.com/rust-lang/rust/pull/43008#issuecomment-312463564) _much more aggressive_.

r? @Mark-Simulacrum
2017-08-16 04:00:24 +00:00
Zack M. Davis
1b6c9605e4 use field init shorthand EVERYWHERE
Like #43008 (f668999), but _much more aggressive_.
2017-08-15 15:29:17 -07:00
Fourchaux
c7104be1a3 Fix typos & us spellings 2017-08-15 21:56:30 +02:00
bors
f25c2283b3 Auto merge of #43635 - ids1024:backtrace-redox, r=alexcrichton
Make backtraces work on Redox, copying Unix implementation

The `backtrace/` directory here is the same as the Unix one, except for adding an implementation of `get_executable_filename`.
2017-08-15 19:27:29 +00:00
Guillaume Gomez
b1a742794e Rollup merge of #43821 - NilSet:redox-dns, r=alexcrichton
Handle DNS label compression in more places in Redox name resolution
2017-08-13 11:03:12 +02:00
Guillaume Gomez
bc6659a8fe Rollup merge of #43814 - Eijebong:fix_typos2, r=petrochenkov
Fix some typos

Follow up of #43794

If refined my script a little bit and found some more.
2017-08-13 11:03:11 +02:00
bors
0ed03e5490 Auto merge of #43348 - kennytm:fix-24658-doc-every-platform, r=alexcrichton
Expose all OS-specific modules in libstd doc.

1. Uses the special `--cfg dox` configuration passed by rustbuild when running `rustdoc`. Changes the `#[cfg(platform)]` into `#[cfg(any(dox, platform))]` so that platform-specific API are visible to rustdoc.

2. Since platform-specific implementations often won't compile correctly on other platforms, `rustdoc` is changed to apply `everybody_loops` to the functions during documentation and doc-test harness.

3. Since platform-specific code are documented on all platforms now, it could confuse users who found a useful API but is non-portable. Also, their examples will be doc-tested, so must be excluded when not testing on the native platform. An undocumented attribute `#[doc(cfg(...))]` is introduced to serve the above purposed.

Fixes #24658 (Does _not_ fully implement #1998).
2017-08-13 03:00:20 +00:00
Bastien Orivel
3ab86fbab2 Fix some typos 2017-08-12 14:01:11 +02:00
Thomas Levy
fb45233ed1 Handle DNS label compression in more places 2017-08-11 22:13:57 -07:00
Bastien Orivel
47cb3c5bc2 Fix some typos 2017-08-11 00:16:18 +02:00
kennytm
b4114ebe3a
Exposed all platform-specific documentation. 2017-08-10 13:43:59 +08:00
Ian Douglas Scott
9d67d5a71d
Simplify Redox backtrace/ to not include non-Redox implementations 2017-08-03 23:05:58 -07:00
Ian Douglas Scott
2fd4663fee
Make backtraces work on Redox, copying Unix implementation 2017-08-03 21:13:44 -07:00
bors
eae446c4dc Auto merge of #43459 - ids1024:asrawfd, r=alexcrichton
Implement AsRawFd for Stdin, Stdout, and Stderr

https://github.com/rust-lang/rfcs/issues/2074
2017-08-04 02:15:04 +00:00
Jeremy Soller
a30092fbf6 Split FL and FD fcntls 2017-07-29 09:31:18 -06:00
Ian Douglas Scott
c83f97533a Redox: Add JoinHandleExt (matching Unix version) 2017-07-29 09:31:18 -06:00
Ian Douglas Scott
e9c55d1f79
Correct 'stable' attribute 2017-07-25 16:44:25 -07:00
Ian Douglas Scott
85ef570e00
Implement AsRawFd for Stdin, Stdout, and Stderr 2017-07-24 14:46:42 -07:00
Mark Simulacrum
b43f58bc25 Rollup merge of #43304 - ids1024:path2, r=aturon
redox: handle multiple paths in PATH
2017-07-18 09:41:34 -06:00
Ian Douglas Scott
6f80cd7bfc
redox: handle multiple paths in PATH 2017-07-17 19:17:48 -07:00
NODA, Kai
2e8859ce4e
libstd: remove redundant & from &Path::new(...)
fn Path::new<S: AsRef ...>(s: &S) -> &Path

Signed-off-by: NODA, Kai <nodakai@gmail.com>
2017-07-18 00:07:09 +08:00
Corey Farwell
57bc82d637 Rollup merge of #43228 - redox-os:backtrace_fix, r=alexcrichton
Fix backtrace on Redox

This fixes sys::backtrace on Redox
2017-07-14 20:57:18 -07:00
Corey Farwell
351c476f6d Rollup merge of #43202 - jackpot51:patch-1, r=sfackler
Fix sys::redox::net::tcp

A change to the upper level API needed to be filtered down
2017-07-14 20:57:16 -07:00
Jeremy Soller
5757e05619 Fix backtrace on Redox 2017-07-13 20:07:37 -06:00
Steve Klabnik
da3f5b80ed Rollup merge of #43204 - jackpot51:patch-3, r=alexcrichton
Implement fs::rename in sys::redox

This uses a simple implementation of copy + unlink. Redox does not have a rename or link system call for a faster implementation.
2017-07-13 10:45:22 -04:00
Jeremy Soller
4259ae6475 Update fs.rs 2017-07-12 22:16:35 -06:00
Jeremy Soller
21f2ace8cf Update mod.rs 2017-07-12 20:48:04 -06:00
Jeremy Soller
362dd8a986 Update fs.rs 2017-07-12 20:40:43 -06:00
Jeremy Soller
bd9428a46b Update mod.rs 2017-07-12 20:39:02 -06:00
Jeremy Soller
0d617ce4c9 Update tcp.rs 2017-07-12 20:37:18 -06:00
Mark Simulacrum
6aeb0f0b2e Rollup merge of #43100 - ids1024:stat2, r=aturon
Redox: add stat methods(); support is_symlink()
2017-07-12 06:58:47 -06:00
Ian Douglas Scott
51260f4a6d
Redox: Use O_NOFOLLOW for lstat() 2017-07-11 15:05:17 -07:00
Ian Douglas Scott
59981e4057
Redox: Fix Condvar.wait(); do not lock mutex twice
The atomic_xchg() loop locks the mutex, so the call to mutex_lock is
incorrect, and blocks.
2017-07-07 08:34:48 -07:00
Steven Fackler
8c92da3c51 Implement TcpStream::connect_timeout
This breaks the "single syscall rule", but it's really annoying to hand
write and is pretty foundational.
2017-07-06 19:35:49 -07:00
Ian Douglas Scott
4d58b048a8
Redox: add stat methods(); support is_symlink() 2017-07-06 17:34:51 -07:00