Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safety, concurrency, and speed. This is a weekly summary of its progress and community. Want something mentioned? Send me an email! Want to get involved? We love contributions.
The big news
Rust 1.0.0-alpha.2 was released on Friday, but keep using nightlies. Six more weeks until the beta, which should become 1.0. Only six more weeks.
What's cooking on master?
Now you can follow breaking changes as they happen!
- A variety of tweaks have been made to
std::threadbefore declaring it stable.
vec!macro accepts a new form,
vec![element; len], which produces a vector containing a number of clones of the same element.
CStringtype has seen a few modifications, as well as the introduction of the
IntoIteratornow has an associated type for specifying the element type.
ExactSizeIteratoris no longer implemented for 64-bit ranges.
- In target specs,
target-word-sizeis now called
target-pointer-width, to match the recently changed
fmt::Writerwas renamed to
isuffixes are now replaced with
- A number of modules have been audited
for incorrect use of
- Use of arbitrary attributes not defined by the language is feature gated.
Sendno longer requires
'static, which make it possible to express various data-parallel scenarious by sharing interior pointers. RFC.
- The 'Macros' chapter of TRPL has been overhauled and a new 'Advanced Macros' chapter added.
rustc --versionnow reports the build date in addition to the commit date, to make it more clear what nightly you are on.
- Florian Hahn added a new category of 'parse-fail' tests to the test suite. This makes it easier to compare model parsers to the production parser.
- Adam Jacob
- Alexander Bliskovsky
- Brian Brooks
- Darrell Hamilton
- Dave Huseby
- Denis Defreyne
- Elantsev Serj
- Henrik Schopmans
- Ingo Blechschmidt
- Lai Jiangshan
- Ryan Riginding
- Wesley Wiser
- wonyong kim
This covers two weeks since last week I wasn't able review RFCs in time.
- RFC 458: Improve the Send trait.
- RFC 505: API comment conventions.
- RFC 528: Add a generic string pattern matching API.
- RFC 563: Remove ndebug.
- RFC 572: Feature gate unused attributes.
- RFC 580: Rename some std colloctions.
- RFC 592: CStr.
- RFC 593: Forbid
- RFC 599: Default object lifetime bounds.
- RFC 601: Replace
- RFC 735: Lift restrictions on defition site of inherent impls.
- RFC 736: Privacy-respecting FRU.
- RFC 738: Variance for type params.
- RFC 769: Sound generic drop.
- RFC 809:
- RFC 823: Simplify
- RFC 832: Add back
- RFC 840: No panic in CString.
cargo docshould pass
- Never allow reads from uninitialized memory in safe Rust.
- Have collections impl Extend<&T> where T: Clone.
- Changing struct literals.
- Item grouping.
div_remback in the standard library.
- New struct syntax.
- Use globs as.
- Remove lifetime elision in type parameter position.
- Replace IteratorExt::zip with tuple iteration.
- Allow macros in types.
- Lex binary and octal literals more eagerly
- Improvements to range match patterns.
- Make function pointer types look like borrowed pointer types for forwards compatability.
- Allow types to be parameterized by integer (and bool) constant values.
#[must_use]on functions, rather than just types. Mark
- Add single-threaded fences.
- Custom preludes.
- Approx asserts.
Friend of the Tree
The Rust Team likes to occassionally recognize people who have made outstanding contributions to The Rust Project, its ecosystem, and its community. These people are 'friends of the tree'.
This week's friend of the tree was ... Toby Scrace.
"Today I would like to nominate Toby Scrace as Friend of the Tree. Toby emailed me over the weekend about a login vulnerability on crates.io where you could log in to whomever the previously logged in user was regardless of whether the GitHub authentication was successful or not. I very much appreciate Toby emailing me privately ahead of time, and I definitely feel that Toby has earned becoming Friend of the Tree."
Quote of the Week
<Manishearth> In other news, I have r+ on rust now :D
<Ms2ger> No good deed goes unpunished
From #servo. Thanks to SimonSapin for the tip.
- Weekly-meetings/2015-02-17. fott; security bugs; code completion; open-ended proposals; struct syntax; alpha2; integer suffixes; overflow.
- McPherrin succeeds at transcribing two hours of meetup talks, but at great cost.
- Radical statements about the mobile web. Servo is going to fix it al.
- Embedded Rust Right Now!.
- On Rust and Nim. HN.
- Rust Debugging in Emacs.
- Thoughts of a Rustacean learning Go. /r/rust.
- Some notes on Send and Sync.
- Turing tarpits in Rust's macro system.
- Bay Area Rust Meetup: Blocking and Async I/O. Video.
- Memory management in Oxischeme.
- Raft Update 2: Hacking the log.
- Rewriting Rust serialization part 2.
- rustdox.com. Rust documentation hosting.
- var. A macro for declaring multiple mutable variables at once.
- rexiv2. A library for reading and writing EXIF data.
- There was a good HackerNews thread about exa, the replacement for
lswritten in Rust. Also on /r/rust.
- rust-netbeans. Rust plugin for the NetBeans IDE, with Cargo support.
- This Week in Servo 24.
- rtracker. A bittorrent tracker in Rust.
- dns2. A DNS library.
- rust-media. Portable media player framework.
- ipc. Clone of ipcalc.
- multilist. Safe intrusive doubly-linked lists.
- rustle. Install Cargo apps without installing Rust.
- xsv. BurntSushi's CSV toolkit.
- suffix. Suffix arrays for fast searching.
- Rust Share. Share to play.rust-lang.org from SublimeText.
- chess. Written in Rust!