Ignore unknown address types when looking up hosts
Previously, any function using a `ToSocketAddrs` input would fail if
passed a hostname that resolves to an address type different from the
ones recognized by Rust.
This also changes the `LookupHost` iterator to only include the known
address types, as a result, it doesn't have to return `Result`s any
more, which are likely misinterpreted as failed name lookups.
hashmap: use siphash-1-3 as default hasher
Also exposes `SipHash13` and `SipHash24` in `core:#️⃣:sip`, for those that want to differentiate.
For motivation, see this quote from the original issue:
> we proposed SipHash-2-4 as a (strong) PRF/MAC, and so far no attack whatsoever has been found,
although many competent people tried to break it. However, fewer rounds may be sufficient and I would
be very surprised if SipHash-1-3 introduced weaknesses for hash tables.
This keeps a type alias of `SipHasher` to `SipHash24`, and since the internal default hasher of HashMap is specified as "not specified", changing it should not be a breaking change.
Closes#29754
mk: Don't consider LLVM done until it's done
Currently if an LLVM build is interrupted *after* it creates the llvm-config
binary but before it's done it puts us in an inconsistent state where we think
LLVM is compiled but it's not actually. This tweaks our logic to only consider
LLVM done building once it's actually done building.
This should hopefully alleviate problems on the bots where if we interrupt at
the wrong time it doesn't corrupt the build directory.
rustbuild: Clean out tmp directory on `make clean`
Right now we generate error index information into this directory, but it's
never cleaned out. This means that if a build *bounces* because of something in
this directory it'll continue to cause all future builds to fail because the
relevant files are never removed.
Right now we generate error index information into this directory, but it's
never cleaned out. This means that if a build *bounces* because of something in
this directory it'll continue to cause all future builds to fail because the
relevant files are never removed.
Currently if an LLVM build is interrupted *after* it creates the llvm-config
binary but before it's done it puts us in an inconsistent state where we think
LLVM is compiled but it's not actually. This tweaks our logic to only consider
LLVM done building once it's actually done building.
This should hopefully alleviate problems on the bots where if we interrupt at
the wrong time it doesn't corrupt the build directory.
Disable debuginfo tests for a given blacklist of LLDB versions
Anyone having trouble with most LLDB tests failing on OSX, please report your LLDB version here so I can add it to the blacklist.
Blacklisted versions so far:
* lldb-350.*
cc @rust-lang/tools
cc @tedhorst @indutny @jonathandturner (people from the original bug report)
Fixes#32520.
Revert "skip double negation in const eval"
This reverts commit 735c018974.
fixes#34395
The original commit was based on a mis-understanding of the overflowing literal lint.
This needs to be ported to beta.
r? @eddyb
Forbid type parameters and global paths in macro invocations
Fixes#28558.
This is a [breaking-change]. For example, the following would break:
```rust
macro_rules! m { () => { () } }
fn main() {
m::<T>!(); // Type parameters are no longer allowed in macro invocations
::m!(); // Global paths are no longer allowed in macro invocations
}
```
Any breakage can be fixed by removing the type parameters or the leading `::` (respectively).
r? @eddyb
Give `ast::ExprKind::Paren` no-op expressions the same ids as their children.
Having `ast::ExprKind::Paren` expressions share ids with their children
- reduces the number of unused `NodeId`s in the hir map and
- guarantees that `tcx.map.expect_expr(ast_expr.id)` is the hir corresponding to `ast_expr`.
This fixes the bug from #34327, which was introduced in #33296 when I assumed the above guarantee.
r? @nrc
Previously, any function using a `ToSocketAddrs` input would fail if
passed a hostname that resolves to an address type different from the
ones recognized by Rust.
This also changes the `LookupHost` iterator to only include the known
address types, as a result, it doesn't have to return `Result`s any
more, which are likely misinterpreted as failed name lookups.
rustdoc: Remove Derived Implementations title
As far as I know whether a trait was derived or not does not change the
public API so there is no need to include this information in the docs.
This title currently just adds an extra divide in the list of trait
implementations which I don't think needs to be there.
Try to fix the nightlies
They look to be failing right after the CMake PR landed. I've diagnosed and confirmed the first issue fixed, the second is a bit of a shot in the dark to see if it fixes things.
Add example with leading zeros
I was searching for this format very long. So I added an example to the prominent section.
I was thinking of putting the keyword leading in the corresponding section as well, what do you think?
r? @steveklabnik
[doc] Fix links in Ownership section of the book
- Add a missing link definition for `[i32]`.
- Like `[stack]` link is pointing to `...#the-stack`, append `#the-heap` to `[heap]` link.