Hello and welcome to the fifth issue of This Week in Rust, a weekly overview of Rust and its community.
0.7
was released this week. Hello to the newcomers! I've also decided to put
breaking changes first. Feel free to skip the rest, it's relatively
unimportant.
Newcomers
There's already a lot of traffic from Rust newbies, so you get your own section! Welcome to Rust. I wrote The State of Rust 0.7 especially for newcomers, so you should read that. Jump on IRC if you have any questions or need help. We're a quite friendly bunch, and we usually don't bite.
What's cooking on master?
Issue churn this week was +12. 35 PRs were merged, total PR churn was -8. There continues to be a lot more cleanup than breaking changes, which is encouraging! As I understand it, graydon wants to focus this release cycle on cleanup, rather than language features. Hopefully the compiler can get into a much better state.
Breaking changes
- dbaupp continues to
slaughter the free functions in
std::vec
where methods can replace them. - He also added a lint for lowercase statics, which is enabled by default because of an astoundingly poor error message.
- Seldaek moved a bunch of iter
stuff to
extra
.
Notable compiler additions, bugfixes, and cleanup
- doener removed an extra layer of indirection that method calls incurred.
- Blei fixed a codegen problem
with structs containing
f32
when used with FFI. - I propagated the great renaming throughout the rest of the codebase (besides compiletest, apparently).
- acrichto rewrote some str code to avoid allocations.
- strcat is removing headers from exchange allocs (see also #7605 and #7521). They are entirely unused, they just need to be removed and the fallout fixed throughout the compiler.
- yjh0502 fixed a bug that
allowed duplicate struct fields (like
struct Foo {a: uint, a: uint}
) - acrichto turned on LLVM threading.
- Luqman changed configure to require either wget or curl.
- Dretch improved the error message for implementing unknown traits to mention the trait name.
- sankha93 improved the error
message for trying to capture
environment in a plain
fn
. - bblum improved the error mssage
for using a moved value, it now gives better suggestions than just
copy
. - sanxiyn fixed a bug where eligible newtype structs weren't marked as an immediate value (and thus not passed in registers when they could have been).
- Luqman paved the way for 64-bit windows support.
- jensnockert added byte swapping intrinsics that specialize per-platform, avoiding unnecessary operations.
- jld removed an unused function
- sully fixed more default method bugs.
Notable library additions, bugfixes, and cleanup
- sfackler fixed up some documentation related to the drop/finalize renaming.
- acrichto fixed a correctness
bug in TreeMap's
Ord
implementation. - sfackler much improved and genericized the base64 handling.
- graydon did a bunch of cleanup
in
extra::stats
. - Seldaek fixed a patological case with
str::each_split_within
.
Meetings
The Tuesday meeting
featured more discussion about @
and @mut
, that was honestly over my head
(as most of the type system stuff is). If someone wants to write some more
here, feel free to email me (corey+blog@octayn.net) a paragraph or two. You
will get attribution, of course.