DirEntry now supports optimizations like file_type and metadata which
don't incur a syscall on some platforms.
A symlink_metadata function has been added.
The fs::Metadata structure now lowers to its OS counterpart, providing
access to all underlying information.
The compiler now contains extended explanations of many errors. When an error
with an explanation occurs the compiler suggests using the --explain flag
to read the explanation. Error explanations are also available online.
Thanks to multiple improvements to type checking, as
well as other work, the time to bootstrap the compiler decreased by
32%.
On both Windows and Unix, new extension traits provide conversion of
I/O types to and from the underlying system handles. On Unix, these
traits are FromRawFd and AsRawFd, on Windows FromRawHandle
and AsRawHandle. These are implemented for File, TcpStream,
TcpListener, and UpdSocket. Further implementations for
std::process will be stabilized later.
On Unix, std::os::unix::symlink creates symlinks. On
Windows, symlinks can be created with
std::os::windows::symlink_dir and
std::os::windows::symlink_file.
The mpsc::Receiver type can now be converted into an iterator with
into_iter on the IntoIterator trait.
Ipv4Addr can be created from u32 with the From<u32>
implementation of the From trait.
The compiler defines the target_env cfg value, which is used for
distinguishing toolchains that are otherwise for the same
platform. Presently this is set to gnu for common GNU Linux
targets and for MinGW targets, and musl for MUSL Linux targets.
The cargo rustc command invokes a build with custom flags
to rustc.