nix v0.9.0 Release Notes
Release Date: 2017-07-24 // over 6 years ago-
➕ Added
- ➕ Added
sysconf
,pathconf
, andfpathconf
(#630 - ➕ Added
sys::signal::SigAction::{ flags, mask, handler}
(#611 - ➕ Added
nix::sys::pthread::pthread_self
(#591 - Added
AioCb::from_boxed_slice
(#582 - ➕ Added
nix::unistd::{openat, fstatat, readlink, readlinkat}
(#551) - Added
nix::pty::{grantpt, posix_openpt, ptsname/ptsname_r, unlockpt}
(#556 - ➕ Added
nix::ptr::openpty
(#456) - Added
nix::ptrace::{ptrace_get_data, ptrace_getsiginfo, ptrace_setsiginfo and nix::Error::UnsupportedOperation}
(#614) - ➕ Added
cfmakeraw
,cfsetspeed
, andtcgetsid
. (#527) - Added "bad none", "bad write_ptr", "bad write_int", and "bad readwrite" variants to the
ioctl!
macro. (#670) - On Linux and Android, added support for receiving
PTRACE_O_TRACESYSGOOD
events fromwait
andwaitpid
usingWaitStatus::PtraceSyscall
(#566).
🔄 Changed
- The
ioctl!
macro and its variants now allow the generated functions to have doccomments. (#661) - Changed
ioctl!(write ...)
intoioctl!(write_ptr ...)
andioctl!(write_int ..)
variants to more clearly separate those use cases. (#670) - Marked
sys::mman::{ mmap, munmap, madvise, munlock, msync }
as unsafe. (#559) - 👍 Minimum supported Rust version is now 1.13.
- ✂ Removed
revents
argument fromPollFd::new()
as it's an output argument and will be overwritten regardless of value. (#542) - 🔄 Changed type signature of
sys::select::FdSet::contains
to makeself
immutable (#564) - Introduced wrapper types for
gid_t
,pid_t
, anduid_t
asGid
,Pid
, andUid
respectively. Various functions have been changed to use these new types as arguments. (#629) - 🛠 Fixed compilation on all Android and iOS targets (#527) and promoted them to Tier 2 support.
- 🐧
nix::sys::statfs::{statfs,fstatfs}
uses statfs definition fromlibc::statfs
instead of own linux specific typenix::sys::Statfs
. Also file system type constants likenix::sys::statfs::ADFS_SUPER_MAGIC
were removed in favor of the libc equivalent. (#561) - 📚 Revised the termios API including additional tests and documentation and exposed it on iOS. (#527)
- 🚦
eventfd
,signalfd
, andpwritev
/preadv
functionality is now included by default for all supported platforms. (#681) - The
ioctl!
macro's plain variants has been replaced with "bad read" to be consistent with other variants. The generated functions also have more strict types for their arguments. The "*_buf" variants also now calculate total array size and take slice references for improved type safety. The documentation has also been dramatically improved. (#670)
✂ Removed
- ✂ Removed
io::Error
fromnix::Error
and the conversion fromnix::Error
toErrno
(#614) - 🚚 All feature flags have been removed in favor of conditional compilation on supported platforms.
execvpe
is no longer supported, but this was already broken and will be added back in the next release. (#681) - ✂ Removed
ioc_*
functions and many helper constants and macros within theioctl
module. These should always have been private and only theioctl!
should be used in public code. (#670)
🛠 Fixed
- 🛠 Fixed multiple issues compiling under different archetectures and OSes.
Now compiles on Linux/MIPS (#538),
Linux/PPC
(#553),MacOS/x86_64,i686
(#553),NetBSD/x64_64
(#538),FreeBSD/x86_64,i686
(#536), andAndroid
(#631). bind
anderrno_location
now work correctly onAndroid
(#631)- ➕ Added
nix::ptrace
on all Linux-kernel-based platforms #624. Previously it was only available on x86, x86-64, and ARM, and also not on Android. - 🛠 Fixed
sys::socket::sendmsg
with zero entrycmsgs
parameter. (#623) - Multiple constants related to the termios API have now been properly defined for all supported platforms. (#527)
- 👍
ioctl!
macro now supports working with non-int datatypes and properly supports all platforms. (#670)
- ➕ Added