Commit Graph

136 Commits

Author SHA1 Message Date
panicbit
b439632a75 Unimplement Send/Sync for ::env::{Args,ArgsOs,Vars,VarsOs} 2018-02-05 00:00:09 +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
Corey Farwell
17380f2ac6 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.
2017-12-24 11:29:13 -08:00
Kornel
53de42e333 Warn about non-portability of glob patterns 2017-11-07 17:01:56 +00:00
Stepan Koltsov
45af6ee4fc Move global vars changing tests into run-pass
Should fix race #42795
2017-06-24 18:23:39 +03:00
bors
6f01c84fc8 Auto merge of #42798 - stepancheg:args-debug, r=sfackler
Better Debug for Args and ArgsOs

Display actual args instead of two dots.
2017-06-22 10:34:21 +00:00
Stepan Koltsov
275f9a04af Better Debug for Args and ArgsOs
Display actual args instead of two dots.
2017-06-21 15:40:45 +03:00
Corey Farwell
58bbe1d68c Add a couple doc additional examples for env::join_paths. 2017-06-20 13:49:42 -04:00
Corey Farwell
3a550a4893 Rollup merge of #42579 - maccoda:maccoda/env_docs, r=steveklabnik
env docs completion.

Should be closing #29351 with the alignment of the iterators to the template.
2017-06-12 12:39:46 -04:00
Dylan Maccora
f52ac18840 env docs completion. 2017-06-10 16:19:28 +10:00
Mark Simulacrum
9ce4616960 Rollup merge of #42091 - maccoda:maccoda/env_docs, r=frewsxcv
Improving std::env docs

Addresses #29351.
Hopefully this addresses the following points:
> -  iterators should use the standard iterator boilerplate like https://doc.rust-lang.org/std/iter/struct.Map.html, this applies to all structs except for JoinPathsError
> -  JoinPathsError should properly link the function it comes from and use language similar to https://doc.rust-lang.org/std/io/struct.Error.html
> -  same wording issues with VarError
> - functions need to ensure linkage to things they refer to in their descriptions
> - Explain the difference between `os` and non-`os` structs and methods
2017-05-20 17:48:13 -06:00
bors
272e77f035 Auto merge of #42111 - ollie27:stab, r=Mark-Simulacrum
Correct some stability versions

These were found by running tidy on stable versions of rust and finding
features stabilised with the wrong version numbers.
2017-05-20 15:42:43 +00:00
Oliver Middleton
2f703e4304 Correct some stability versions
These were found by running tidy on stable versions of rust and finding
features stabilised with the wrong version numbers.
2017-05-20 08:38:39 +01:00
Dylan Maccora
55d75c42ef Merge branch 'master' into maccoda/env_docs 2017-05-20 09:42:37 +10:00
Dylan Maccora
b69b6413af Fixed link issue. 2017-05-20 08:32:10 +10:00
Dylan Maccora
fb19560054 std::env docs 2017-05-18 18:26:47 +10:00
Tshepang Lekhonkhobe
b9552963d1 misc doc improvements for std::env 2017-05-18 06:47:58 +02:00
Jack O'Connor
03b83a01ad clarify docs for Args and ArgsOs
The args() and args_os() docs include a line about how the first element
is usually the program name. Include that line in the struct docs too.
2017-03-05 16:39:26 -05:00
Guillaume Gomez
84aca88cda Add missing urls for env functions 2017-02-18 14:44:56 +01:00
Guillaume Gomez
3022614ec3 Add missing urls on join_paths 2017-02-08 21:53:49 +01:00
Guillaume Gomez
d0378089de Add missing urls for current_dir 2017-02-07 19:43:22 +01:00
Oliver Middleton
9128f6100c Fix a few impl stability attributes
The versions show up in rustdoc.
2017-01-29 13:31:47 +00:00
Oliver Middleton
09b3903aec Fix a few links in the docs 2017-01-27 18:08:51 +00:00
Utkarsh Kukreti
9d912b683a libstd: replace all try! with ? in documentation examples
See #38644.
2017-01-22 21:07:38 +05:30
Corey Farwell
58a470e344 Minor improvements to docs in std::env structures/functions.
* Call functions "functions" instead of "methods".
* Link structures to their constructor functions
* Add other misc. documentation links
2017-01-12 23:10:38 -05:00
Jonathan A. Kollasch
eda889c5bf libstd: define std::env::consts::ARCH for sparc64 2016-12-29 21:30:01 -05:00
Corey Farwell
86fc63e62d Implement fmt::Debug for all structures in libstd.
Part of https://github.com/rust-lang/rust/issues/31869.

Also turn on the `missing_debug_implementations` lint at the crate
level.
2016-12-18 14:55:14 -08:00
Ulrik Sverdrup
7ba762253c std: Forward ExactSizeIterator::is_empty for Args, ArgsOs iterators 2016-12-04 15:46:36 +01:00
John Downey
9170ddf1e4 Add some internal docs links for Args/ArgsOs 2016-11-21 16:12:14 -06:00
Brian Anderson
4d76ac8492 Move platform-specific arg handling to sys::args 2016-10-02 14:52:30 -07:00
Brian Anderson
5c21562302 std: Move platform specific env code into sys 2016-10-01 19:32:59 +00:00
Brian Anderson
9c4a01ee9e Ignore lots and lots of std tests on emscripten 2016-09-30 14:02:48 -07:00
Brian Anderson
b8b50f0eda Preliminary wasm32 support 2016-09-30 14:02:45 -07:00
Niels Sascha Reedijk
1a6fc8b7b8 Add support for the Haiku operating system on x86 and x86_64 machines
* Hand rebased from Niels original work on 1.9.0
2016-09-25 11:12:23 -05:00
Tshepang Lekhonkhobe
a6da082e10 doc: make that sound better 2016-09-14 22:47:56 +02:00
Ulrich Weigand
19b84088d7 Add s390x support
This adds support for building the Rust compiler and standard
library for s390x-linux, allowing a full cross-bootstrap sequence
to complete.  This includes:

- Makefile/configure changes to allow native s390x builds
- Full Rust compiler support for the s390x C ABI
  (only the non-vector ABI is supported at this point)
- Port of the standard library to s390x
- Update the liblibc submodule to a version including s390x support
- Testsuite fixes to allow clean "make check" on s390x

Caveats:

- Resets base cpu to "z10" to bring support in sync with the default
  behaviour of other compilers on the platforms.  (Usually, upstream
  supports all older processors; a distribution build may then chose
  to require a more recent base version.)  (Also, using zEC12 causes
  failures in the valgrind tests since valgrind doesn't fully support
  this CPU yet.)

- z13 vector ABI is not yet supported.  To ensure compatible code
  generation, the -vector feature is passed to LLVM.  Note that this
  means that even when compiling for z13, no vector instructions
  will be used.  In the future, support for the vector ABI should be
  added (this will require common code support for different ABIs
  that need different data_layout strings on the same platform).

- Two test cases are (temporarily) ignored on s390x to allow passing
  the test suite.  The underlying issues still need to be fixed:
  * debuginfo/simd.rs fails because of incorrect debug information.
    This seems to be a LLVM bug (also seen with C code).
  * run-pass/union/union-basic.rs simply seems to be incorrect for
    all big-endian platforms.

Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
2016-09-09 22:28:19 +01:00
bors
689c6c48ec Auto merge of #36024 - japaric:mips64, r=alexcrichton
add mips64-gnu and mips64el-gnu targets

With this commit one can build no_core (and probably no_std as well)
Rust programs for these targets. It's not yet possible to cross compile
std for these targets because rust-lang/libc doesn't know about the
mips64 architecture.

These targets have been tested by cross compiling the "smallest hello"
program (see code below) and then running it under QEMU.

``` rust

extern {
    fn puts(_: *const u8);
}

fn start(_: isize, _: *const *const u8) -> isize {
    unsafe {
        let msg = b"Hello, world!\0";
        puts(msg as *const _ as *const u8);
    }
    0
}

trait Copy {}

trait Sized {}
```

cc #36015
r? @alexcrichton
cc @brson

The cabi stuff is likely wrong. I just copied cabi_mips source and changed some `4`s to `8`s and `32`s to `64`s. It was enough to get libc's `puts` to work but I'd like someone familiar with this module to check it.
2016-09-02 03:01:48 -07:00
Jorge Aparicio
43615a03f3 fix cross compilation of std 2016-08-27 01:40:29 -05:00
Jeffrey Seyfried
9a2c8783d9 Use #[prelude_import] in libstd. 2016-08-24 22:12:48 +00:00
Eduard-Mihai Burtescu
9d1900b417 Rollup merge of #34941 - qolop:patch-2, r=apasel422
Fix typo (privledge->privilege)
2016-08-14 20:29:47 +03:00
Patrick McCann
629f2aafcf Fix typo
Didn't see this one at first.
2016-08-11 19:04:11 -04:00
bors
422ebd5328 Auto merge of #33312 - Byron:double-ended-iterator-for-args, r=alexcrichton
DoubleEndedIterator for Args

This PR implements the DoubleEndedIterator trait for the `std::env::Args[Os]` structure, as well
as the internal implementations.

It is primarily motivated by me, as I happened to implement a simple `reversor` program many times
now, which so far had to use code like this:

```Rust
for arg in std::env::args().skip(1).collect::<Vec<_>>().iter().rev() {}
```

... even though I would have loved to do this instead:

```Rust
for arg in std::env::args().skip(1).rev() {}
```

The latter is more natural, and I did not find a reason for not implementing it.
After all, on every system, the number of arguments passed to the program are known
at runtime.

To my mind, it follows KISS, and does not try to be smart at all. Also, there are no unit-tests,
primarily as I did not find any existing tests for the `Args` struct either.

The windows implementation is basically a copy-pasted variant of the `next()` method implementation,
and I could imagine sharing most of the code instead. Actually I would be happy if the reviewer would
ask for it.
2016-07-27 02:26:37 -07:00
Sebastian Thiel
1aa8dad854 DoubleEndedIterator for Args
The number of arguments given to a process is always known, which
makes implementing DoubleEndedIterator possible.

That way, the Iterator::rev() method becomes usable, among others.

Signed-off-by: Sebastian Thiel <byronimo@gmail.com>

Tidy for DoubleEndedIterator

I chose to not create a new feature for it, even though
technically, this makes me lie about the original availability
of the implementation.

Verify with @alexchrichton

Setup feature flag for new std::env::Args iterators

Add test for Args reverse iterator

It's somewhat depending on the input of the test program,
but made in such a way that should be somewhat flexible to changes
to the way it is called.

Deduplicate windows ArgsOS code for DEI

DEI = DoubleEndedIterator

Move env::args().rev() test to run-pass

It must be controlling it's arguments for full isolation.

Remove superfluous feature name

Assert all arguments returned by env::args().rev()

Let's be very sure it works as we expect, why take chances.

Fix rval of os_string_from_ptr

A trait cannot be returned, but only the corresponding object.

Deref pointers to actually operate on the argument

Put unsafe to correct location
2016-07-26 12:12:43 +02:00
Patrick McCann
e91b625e86 Fix typo (privledge->privilege) 2016-07-20 16:43:53 -04:00
bors
a63e3fac8f Auto merge of #33526 - steveklabnik:gh21889, r=alexcrichton
Add some warnings to std::env::current_exe

/cc #21889 @rust-lang/libs @semarie

I started writing this up. I'm not sure if we want to go into other things and in what depth; we don't currently have a lot of security-specific documentation to model after.

Thoughts?
2016-07-20 00:48:21 -07:00
Steve Klabnik
c4730daf45 re-work example 2016-07-19 12:32:56 -04:00
Corey Farwell
6458b0454f Cleanup formatting and wording for std::env::temp_dir docs. 2016-05-12 00:05:25 -04:00
Steve Klabnik
8478d48dad Add some warnings to std::env::current_exe
/cc #21889
2016-05-09 19:45:12 -04:00
Steve Klabnik
f7154b39ee Rollup merge of #32691 - frewsxcv:patch-28, r=alexcrichton
Indicate `None` is code-like in doc comment.
2016-04-06 12:12:08 -07:00
Steve Klabnik
c411897e38 Rollup merge of #31762 - tshepang:in-which-case, r=steveklabnik
doc: there is no case that is shown, so something was likely missing …

…from the change
2016-04-06 12:12:07 -07:00