Welcome to another issue of This Week in Rust.
What's cooking on master?
46 PRs were merged this week.
Breaking changes
std::rt::io
has moved on to becomestd::io
. Yay!- The
#[fixed_stack_segment]
attribute has been removed. as
casts to functions are no longer allowed.- The return value of the
io::process
is no longer an int, but an enum that also represents termination by signal. It's also ostensibly more portable: to check if a subprocess succeeded, just call.success()
on the return value. std::cast::unsafe_copy
has has been removed. It is identical tostd::ptr::read_ptr
.- Trailing
::
is no longer allowed in paths
Other Changes
- Vectors have more overflow checking. This was the cause of a few mysterious segfaults.
- Crate maps can now be generated for libraries, for when you want to embed a Rust library in a non-Rust application.
- Creation of buffered readers/writers has been optimized a bit.
- If you use OS X, you'll be happy to see that the frivolous "no debug symbols in executable" warning has been stomped out.
- The missing-documentation lint is now more accepting, and won't warn about private items.
BufWriter
, an implementation of Writer for already-existing buffers, is now implemented.- The native IO backend has seen a good
boost; it will now be
seamlessly fallen back to when the libuv backend isn't available (you can
test this out by adding
#[no_uv];
to your crates). - A lint for numeric literals which overflow their type has been implemented.
- A
Buffer
trait has been added tostd::io
, withread_line
,read_until
, andread_char
. - The error message when the trait's method declaration and the method declaration in the implementation aren't the same now includes the trait name.
- The libuv bindings were largely rewritten for performance, at the sacrifice of some flexibility (which was of questionable value).
_
-prefixed variables no longer get an unusedmut
warning.
New Contributors
Our first-time contributors this week are:
- Jaemin Moon
- Jay Anderson
- Joe Schafer
- Matthew Iselin
- Zach Kamsler
Weekly Meeting
There was no meeting this week, as a bunch of the core developers were in South Korea for the Servo workweek with Samsung.
Announcements etc
- (ML) Rethinking Linking in Rust
- (ML) The future of M:N threading
- (ML) Type system thoughts
- (ML)Changing roles, Tim's "going-away" post. He did great work on rustpkg, and I hope he finds time to continue to contribute to Rust.
- Booting to Rust (with UEFI)
- Treating Vectors Like Any Other Container
- Moving forward with Rust website