-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 12 pull requests #39566
Rollup of 12 pull requests #39566
Conversation
Symlink creation on Windows has in the past basically required admin; it’s being opened up a bit in the Creators Update, so that at least people who have put their computers into Developer Mode will be able to create symlinks without special privileges. (Microsoft are being cautious about it all; the Developer Mode requirement makes it so that it this won’t be as helpful as I’d like, but it’s still an improvement over requiring admin.) Because of compatibility concerns, they’ve hidden this new functionality behind a new flag in the CreateSymbolicLink dwFlags: SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE. So we add this flag in order to join the party. Older Windows doesn’t like this new flag, though, so if we encounter ERROR_INVALID_PARAMETER we try again without the new flag. Sources: - https://blogs.windows.com/buildingapps/2016/12/02/symlinks-windows-10/ is the official announcement (search for CreateSymbolicLink) - https://news.ycombinator.com/item?id=13096354 on why the new flag. - https://twitter.com/richturn_ms/status/818167548269051905 confirming that Developer Mode will still be required.
Show a conventional way to use process::exit when destructors are considered important and also mention that the same caveats wrt destructors apply to exec as well.
These are static libraries that are not bundled (as the name implies) into rlibs and staticlibs that rustc generates, and must be present when the final binary artifact is being linked.
Signed-off-by: Freyskeyd <simon.paitrault@iadvize.com>
rustdoc would output the full path to the binary when calling it with the `-h` or `--help` flags. This is undesired behavior. It has been replaced with a hardcoded string `rustdoc` to fix the issue. Fixes rust-lang#39310
LLVM Core C bindings provide this function for all the versions back to what we support (3.7), and helps to avoid this unnecessary builder->function transition every time. Also a negative diff.
Save a `ENOSYS` failure from `pipe2` and don't try again. Use `cvt` instead of `cvt_r` for `pipe2` - `EINTR` is not an error `pipe2` can return.
It is no longer used.
This is the first part of rust-lang#39018. One of the common things for new users coming from more dynamic languages like JavaScript, Python or Ruby is to use `+` to concatenate strings. However, this doesn't work that way in Rust unless the first type is a `String`. This commit adds a check for this use case and outputs a new error as well as a suggestion to guide the user towards the desired behavior. It also adds a new test case to test the output of the error.
This workaround is no longer necessary as Rust, and by extension MIR, now support uninhabited type properly. This removes the workaround for the gh32959 that was introduced in gh33267. Fixes rust-lang#32959
…richton Fix full path being output with `rustdoc -h` rustdoc would output the full path to the binary when calling it with the `-h` or `--help` flags. This is undesired behavior. It has been replaced with a hardcoded string `rustdoc` to fix the issue. Fixes rust-lang#39310
Fix a few impl stability attributes The versions show up in rustdoc.
…eyfried Expand derive macros in the MacroExpander This removes the expand_derives function, and sprinkles the functionality throughout the Invocation Collector, Expander and Resolver. Fixes rust-lang#39326 r? @jseyfried
…, r=nikomatsakis Don't suggest to use things which weren't found either Fixes rust-lang#38054 The best code I can come up with, suggestions are welcome. Basically, removing ```. Did you mean to use `DoesntExist1`?``` in the code below, because it is useless. ```rust error[E0432]: unresolved import `DoesntExist1` --> src/lib.rs:1:5 | 1 | use DoesntExist1; | ^^^^^^^^^^^^ no `DoesntExist1` in the root error[E0432]: unresolved import `DoesntExist2` --> src/lib.rs:2:5 | 2 | use DoesntExist2; | ^^^^^^^^^^^^ no `DoesntExist2` in the root. Did you mean to use `DoesntExist1`? ```
save-analysis: be more paranoid about generated paths fixes rust-lang/rls#160
…, r=jseyfried Change tracking issue for `proc_macro` feature to rust-lang#38356 r? @jseyfried
Fix bootstrap.py issues with new rustbuild build system (fixes rust-lang#39469)
…, r=alexcrichton Add a name for the parameter to `TryFrom::try_from`. Although signatures with anonymous parameters may not be deprecated or removed at this point, the team seems to agree that the ability to have an anonymous parameter is unfortunate historical baggage, and that we shouldn't create new code that uses it. Context: rust-lang#33417 (comment)
rustbuild: Add x.py to source tarballs We should be sure to add our build system entry point! Closes rust-lang#39476
…hton README path correction
…ilization_version, r=petrochenkov correct version in which more_struct_aliases was/will be stable The stabilizing commit is 5056a43, which is not in 1.14, but is (at time of writing) on the 1.16 beta branch. [See discussion](rust-lang#39282 (comment)).
Rollup of 19 pull requests - Successful merges: rust-lang#38518, rust-lang#38921, rust-lang#38959, rust-lang#38983, rust-lang#39009, rust-lang#39107, rust-lang#39193, rust-lang#39289, rust-lang#39312, rust-lang#39393, rust-lang#39442, rust-lang#39443, rust-lang#39453, rust-lang#39454, rust-lang#39471, rust-lang#39477, rust-lang#39478, rust-lang#39527, rust-lang#39552 - Failed merges:
rename other than copy/remove
…gisa Don't use "unadjusted" ABI on non windows platforms We introduced the unadjusted ABI to work around wrong (buggy) ABI expectations by LLVM on Windows [1]. Therefore, it should be solely used on Windows and not on other platforms, like right now is the case. [1]: see this comment for details rust-lang#38482 (comment)
liballoc_jemalloc: fix linking with system library Fix rust-lang#39215
…eebsd, r=alexcrichton Support aarch64-unknown-freebsd
…hton Extract libcore benchmarks to a separate folder Fix rust-lang#39484 r? @alexcrichton since you seem to know about this :) Thanks!
libbacktrace: Fix uninitialized variable Fixes rust-lang#39468
…chton Use less syscalls in `FileDesc::set_{nonblocking,cloexec}` Only set the flags if they differ from what the OS reported, use `FIONBIO` to atomically set the non-blocking IO flag on Linux.
More snap cleanup r? @alexcrichton
… r=arielb1 Uninhabited while-let pattern fix This fix makes it so while-let with an unsatisfiable pattern raises a correct warning rather than an incorrect error.
…alexcrichton [LLVM 4.0] Support a debug info API change for LLVM 4.0 Instead of directly creating a `DIGlobalVariable`, we now have to create a `DIGlobalVariableExpression` which itself contains a reference to a 'DIGlobalVariable'. This is a straightforward change. In the future, we should rename `DIGlobalVariable` in the FFI bindings, assuming we will only refer to `DIGlobalVariableExpression` and not `DIGlobalVariable`.
ignore more gdb versions with buggy rust support This extends the versions of gdb which were ignored in rust-lang#39039. While just ignoring gdb versions up to 7.12.1 would have been sufficient for now, I believe (after consulting https://sourceware.org/gdb/wiki/Internals%20Versions) that ignoring versions up to 7.12.9 will prevent the tests failing again for 7.12.2, etc. while still running all tests for the development versions of gdb (which will be >= 7.12.10 as far as I can tell). This should fix rust-lang#39522. cc @Manishearth, @michaelwoerister, rust-lang#38948
…alexcrichton Slightly optimize slice::sort First, get rid of some bound checks. Second, instead of comparing by ternary `compare` function, use a binary function testing whether an element is less than some other element. This apparently makes it easier for the compiler to reason about the code. I've noticed the same effect with [pdqsort](https://github.com/stjepang/pdqsort) crate. Benchmark: ``` name before ns/iter after ns/iter diff ns/iter diff % slice::bench::sort_large_ascending 8,969 (8919 MB/s) 7,410 (10796 MB/s) -1,559 -17.38% slice::bench::sort_large_big_ascending 355,640 (3599 MB/s) 359,137 (3564 MB/s) 3,497 0.98% slice::bench::sort_large_big_descending 427,112 (2996 MB/s) 424,721 (3013 MB/s) -2,391 -0.56% slice::bench::sort_large_big_random 2,207,799 (579 MB/s) 2,138,804 (598 MB/s) -68,995 -3.13% slice::bench::sort_large_descending 13,694 (5841 MB/s) 13,514 (5919 MB/s) -180 -1.31% slice::bench::sort_large_mostly_ascending 239,697 (333 MB/s) 203,542 (393 MB/s) -36,155 -15.08% slice::bench::sort_large_mostly_descending 270,102 (296 MB/s) 234,263 (341 MB/s) -35,839 -13.27% slice::bench::sort_large_random 513,406 (155 MB/s) 470,084 (170 MB/s) -43,322 -8.44% slice::bench::sort_large_random_expensive 23,650,321 (3 MB/s) 23,675,098 (3 MB/s) 24,777 0.10% slice::bench::sort_medium_ascending 143 (5594 MB/s) 132 (6060 MB/s) -11 -7.69% slice::bench::sort_medium_descending 197 (4060 MB/s) 188 (4255 MB/s) -9 -4.57% slice::bench::sort_medium_random 3,358 (238 MB/s) 3,271 (244 MB/s) -87 -2.59% slice::bench::sort_small_ascending 32 (2500 MB/s) 32 (2500 MB/s) 0 0.00% slice::bench::sort_small_big_ascending 97 (13195 MB/s) 97 (13195 MB/s) 0 0.00% slice::bench::sort_small_big_descending 247 (5182 MB/s) 249 (5140 MB/s) 2 0.81% slice::bench::sort_small_big_random 502 (2549 MB/s) 498 (2570 MB/s) -4 -0.80% slice::bench::sort_small_descending 55 (1454 MB/s) 61 (1311 MB/s) 6 10.91% slice::bench::sort_small_random 358 (223 MB/s) 356 (224 MB/s) -2 -0.56% ```
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @eddyb (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see the contribution instructions for more information. |
FileDesc::set_{nonblocking,cloexec}
#39514, More snap cleanup #39519, Uninhabited while-let pattern fix #39526, [LLVM 4.0] Support a debug info API change for LLVM 4.0 #39528, ignore more gdb versions with buggy rust support #39530, Slightly optimize slice::sort #39538