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.
What's cooking on master?
76 pull requests were merged this week.
- A significant amount of functionality has
libstdto a new
libcorecrate, 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
~have been removed from the language.
~[T]no longer implements
FromIterator, and many APIs have been updated to use
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
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 accepted
extern unsafe fn()).
bitflags!now allows setting attributes on the generated type, and
FilePermissionshas been ported to it.
Box<T>is the new syntax for
- Sockets now have non-blocking IO!
UnixStreamhave methods to cancel reads/writes.
- There is now limited support for mixing
dylibs when linking to dependencies.
statscrate has been generalized to the
graphvizcrate has been added for generating
- 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.
*mut T, add
- 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