Age | Commit message (Collapse) | Author |
|
Signed-off-by: Alex Saveau <saveau.alexandre@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
* Make ipv4addr_to_libc const
* Use mem::transmute in ipv4addr_to_libc and ipv6addr_to_libc
Fixes #1687
Fixes #1688
|
|
|
|
|
|
We were previously stuck on 0.11 for MSRV reasons, but since
bumping nix's MSRV to Rust 1.56 this is no longer the case.
|
|
|
|
|
|
|
|
And fix some documentation lints warned about by the newer rustdoc.
|
|
cargo-release automatically incremented the master branch's version
post-release. I don't like that, because it makes it harder for
consumers, especially indirect consumers, to use a `[patch.crates-io]`
section in their Cargo.toml files.
Also, configure cargo-release not to do this again in the future.
|
|
|
|
|
|
This is the last version of libc which will support Rust 1.46, per
https://github.com/rust-lang/libc/pull/2845
|
|
|
|
Add the autocfg crate as a build dependency, and introduce
has_doc_alias as a conditional compilation symbol.
|
|
|
|
The existing AIO implementation has some problems:
1) The in_progress field is checked at runtime, not compile time.
2) The mutable field is checked at runtime, not compile time.
3) A downstream lio_listio user must store extra state to track whether
the whole operation is partially, completely, or not at all
submitted.
4) Nix does heap allocation itself, rather than allowing the caller to
choose it. This can result in double (or triple, or quadruple)
boxing.
5) There's no easy way to use lio_listio to submit multiple operations with
a single syscall, but poll each individually.
6) The lio_listio usage is far from transparent and zero-cost.
7) No aio_readv or aio_writev support.
8) priority has type c_int; should be i32
9) aio_return should return a usize instead of an isize, since it only
uses negative values to indicate errors, which Rust represents via
the Result type.
This rewrite solves several problems:
1) Unsolved. I don't think it can be solved without something like
C++'s guaranteed type elision. It might require changing the
signature of Future::poll too.
2) Solved.
3) Solved, by the new in_progress method and by removing the complicated
lio_listio resubmit code.
4) Solved.
5) Solved.
6) Solved, by removing the lio_listo resubmit code. It can be
reimplemented downstream if necessary. Or even in Nix, but it
doesn't fit Nix's theme of zero-cost abstractions.
7) Solved.
8) Solved.
9) Solved.
The rewrite includes functions that don't work on FreeBSD, so add CI
testing for FreeBSD 14 too.
By default only enable tests that will pass on FreeBSD 12.3. But run a
CI job on FreeBSD 14 and set a flag that will enable such tests.
|
|
1699: Revert "Pin nightly compiler used in CI for uclibc" r=rtzoeller a=asomers
This reverts commit 23f18dfc18929965c95e0bcbdb8731645f07e401.
libc v0.2.124 fixes the problem.
Co-authored-by: Alan Somers <asomers@gmail.com>
|
|
Don't change how the versions are specified (i.e. whether a patch
version is listed).
parking_lot cannot be upgraded due to 0.12.0 bumping the MSRV to 1.49.
In many cases, nix was one of the only consumers of the current versions
(i.e. we are late to upgrade).
|
|
Upgrade sysctl dev-dependency to 0.4 and handle its breaking API changes.
|
|
|
|
|
|
This reverts commit 23f18dfc18929965c95e0bcbdb8731645f07e401.
libc v0.2.124 fixes the problem.
|
|
features => feature
users => user
Neither of these features have yet been included in a release, so it's
ok to rename them.
|
|
|
|
|
|
https://github.com/rust-lang/libc/pull/2543 was merged and is available
starting from 0.2.114.
Using published version of libc makes it easier to use git version of nix
|
|
Only the socket feature depends on memoffset. Allow clients to skip
pulling memoffset in as a dependency if they don't need it.
|
|
|
|
It is not stable across OpenBSD versions and is reserved by the system
on FreeBSD and NetBSD.
|
|
f5ee22db489f78b9c003ef60b7ad1b837503bc4a removed the need for this dependency.
|
|
|
|
Using features reduces build time and size for consumer crates. By
default all features are enabled.
|
|
|
|
Fixes #1555
|
|
1561: Declare the MSRV in Cargo.toml r=rtzoeller a=asomers
This is a new feature in Cargo 1.56.0, currently in beta. Once Nix's
MSRV is >= 1.56.0, this feature will prevent future problems like the
bitflags 1.3.0 fiasco.
Issue #1491
Issue #1510
Issue #1548
Issue #1555
Co-authored-by: Alan Somers <asomers@gmail.com>
|
|
parking_lot provides synchronization primitives which aren't
poisoned on panic. This makes it easier to determine which tests
are failing, as a test failure no longer causes all subsequent tests
using that mutex to fail.
|
|
…so it is possible to run checks on the crate again.
Fixup for 7a2fe9099fc226cf5010b450f473ca9a0db5bafc.
|
|
This is a new feature in Cargo 1.56.0, currently in beta. Once Nix's
MSRV is >= 1.56.0, this feature will prevent future problems like the
bitflags 1.3.0 fiasco.
Issue #1491
Issue #1510
Issue #1548
Issue #1555
|
|
|
|
|
|
|
|
Bitflags raised its MSRV in a minor version, forcing all consumers to
follow suit.
Fixes #1491
|
|
|
|
There was never any good reason to use mutable receives in the first
place. Nix originally did so because libc defined FD_ISSET as taking a
mutable receiver, which it did based on an inaccurate Linux man page.
But that's fixed now.
https://github.com/rust-lang/libc/pull/1725
|