Title: This Week in Rust 39 Date: 2014-03-02 12:43 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.
83 pull requests were merged this week.
- IterBytes and
std::to_byteshave been removed. If you were depending on them for anything non-Hashrelated, look into usingserializeinstead. breakandcontinueare now hygienic in macros, with respect to labels. Unfortunately there's a bug in it where loop labels hide variables of the same name.extern fnnow always meansextern "C" fn, rather than being context-dependent.std::runhas been removed, andstd::io::processimproved to pick up the slack.#[deriving(ToStr)]has been removed in favor of#[deriving(Show)].ToStris now implemented over all types which implementShow, asformat!("{}" val).flatenow returns aCVec<u8>rather than a~[u8], for efficiency.extra::jsonhas been liberated and now lives inlibserialize.swap_removeon vectors now returns anOption.- A curious bug where bindings in match weren't treated as assignment has been fixed. See the associated bug report for examples which this will break.
- Some useless reexports have been removed from the prelude.
- The
Booltrait has been removed. - A bug where operator overloads were over-zealous has been fixed.
- Statics are no longer allowed to contain anything with destructors. The exact rules are laid out quite nicely in the PR.
collections:Listhas been refactored to use iterators.HashMapis now generic over hashers.assert_eq!now uses{}instead of{:?}for the error message.- Type parameter overrides are now feature gated.
- Invalid crate handling is now more graceful.
std::io::stdout()andstderr()are buffered by default now.- Improper operator overloads are no longer an ICE.
- There's now a warning for publicly exposing private types in function signatures.
libnative's Windows file handling has been rewritten and now actually works. rustc uses libnative by default now.- Generated binary size has been brought down a bit. There is much more room for improvement.
- "Strict Version Hashes" have been introduced. This is a purely internal change. The hash is of the crate's public ABI and rustc checks this when linking crates together, to avoid problems such as "def id drift".
- Daniel Fagnan
- Felix Crux
- Gary M. Josack
- George Papanikolaou
- Jag Talon
- Johannes Löthberg
- Mickaël Delahaye
The weekly
meeting
discussed TotalEq/TotalOrd, weak extern functions, channel naming, and a brief
discussion on use paths being absolute.
It was announced that a Sam Wright has been contracted to work on the tutorial, and the Michael Woerister has been contracted to work on debug info.
Servo is a web browser engine written in Rust and is one of the primary test cases for the Rust language.
This week, we landed 27 PRs.
- Josh Matthews landed the massive changes to remove
@mutfrom the DOM types in preparation for a Rust upgrade in #1735 #1591 and #1755. - Tetsuharu Ohzeki refactored our commandline options out of the rendering crate and into a more reasonable place in #1738.
- Ms2ger simplified our Document implementation in #1739.
- Patrick Walton removed the need to explicitly create leaf sets during parallel layout in #1700.
- Harrison Gentry cleaned up some type names in #1781.
- Keegan McAllister moved fontconfig in-tree on Linux in order to get a thread-safe implementation in #1780.
- Saurabh Anand made the DOM parser pass in the correct content types in #1775.
- tgkokk fixed the bindings generator to no longer produce .pyc files in #1735.
- Saurabh Anand (sawrubh)
- Harrison Gentry (hgentry)
- tgkokk
At this week's meeting, we discussed embedding, the JSManaged conversion, a Rust upgrade, vtables, and recruiting efforts.
- RFC: Opt-in Builtin Traits
- Structural single-inheritance counter-proposal
- RFC: Stronger Guarantees for Mutable Borrows
- Dark, an experimental universal data compressor based on the BWT-DC scheme
- cargo-lite v1.1.0 release
- Revamped parallel layout in servo
- February Bay Area Rust Recording
- A bloom filter implementation
- A tweening library