Title: This Week in Rust 48 Date: 2014-05-11 21:58 Category: This Week in Rust
Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safe, concurrent, and fast. This is a weekly summary of its progress and community. Want something mentioned? Send me an email! Want to get involved? We love contributions.
76 pull requests were merged this week.
- A significant amount of functionality has
moved from
libstdto a newlibcorecrate, which is intended to be usable in a freestanding environment (it doesn't use any allocation etc). See the pull request for further details. - All mentions of
~outside of~strand~[]have been removed from the language. ~[T]no longer implementsFromIterator, and many APIs have been updated to useVec.- The
local_dataAPI has been modernized to use methods on keys, RAII, and removal of essentially unused features. - Trait inheritence with incorrect use of lifetimes has been fixed. See the second commit for a testcase and explanation.
- Cross-crate enum variant privacy has been fixed. Previously, private variants were always usable without restriction.
- Format string parsing has been moved outside of
std. - The
bump_box_refcountfunction has been removed. unsafe extern fndefinitions are now allowed, with a corresponding change in how that type is written (previously the parser acceptedextern unsafe fn()).bitflags!now allows setting attributes on the generated type, andFilePermissionshas been ported to it.
Box<T>is the new syntax for~T.- Sockets now have non-blocking IO!
TcpStreamandUnixStreamhave methods to cancel reads/writes.- There is now limited support for mixing
rlibs anddylibs when linking to dependencies. - The
statscrate has been generalized to theFloattrait. - A
graphvizcrate has been added for generatingdotfiles. - Some missing cases in the
type_limitslint have been fixed. boxhas been added to the pattern grammar.- An injection bug in rustdoc's web frontend has been fixed.
- Use of non-existent method which has the same name as an existing static method now has a note attached.
- Aaron Raimist
- Ali Smesseim
- Dirk Leifeld
- James Laverack
- Lucas Dohmen
- Phil Ruffwind
- Tim Brooks
The weekly meeting discussed many things. I think I'm going to stop including this section of TWiR because the meeting notes are very well-kept (thanks Lars!) and there's often too much to effectively summarize.
- Remove
*mut T, add*const T - Add byte and byte string literals
- Allow blocks in constants
- Algebraic effect system
- Split Iterator into Iterator and FiniteIterator
- Bay Area Rust, May 2014: Testing
- New meetup at Pittsburgh Code and Supply
- Rust for C++ programmers - part 5: borrowed references
- Header compression library for HTTP/2
- rust-graphics, how Rust's type system might improve graphics programming
- Informal survey: Which is clearer, mutability or uniqueness?
- Teepee design: header representation
- How to test Rust on travis-ci