diff options
author | Corey Richardson <corey@octayn.net> | 2015-01-19 17:57:42 -0500 |
---|---|---|
committer | Corey Richardson <corey@octayn.net> | 2015-01-19 17:57:42 -0500 |
commit | 89b1d953663e77f965a4450c9e696e4655225e3c (patch) | |
tree | 59a3ec91786d8db0ab9b6412608a9275f15120f6 /content/2015-01-19-this-week-in-rust.md | |
parent | 89599422acc67e8d8e733ccb0e850096dca7eeed (diff) |
move to content
Diffstat (limited to 'content/2015-01-19-this-week-in-rust.md')
-rw-r--r-- | content/2015-01-19-this-week-in-rust.md | 287 |
1 files changed, 287 insertions, 0 deletions
diff --git a/content/2015-01-19-this-week-in-rust.md b/content/2015-01-19-this-week-in-rust.md new file mode 100644 index 0000000..1ad9c93 --- /dev/null +++ b/content/2015-01-19-this-week-in-rust.md @@ -0,0 +1,287 @@ +Title: This Week in Rust 66 +Date: 2015-01-19 +Category: This Week in Rust + +Hello and welcome to another issue of *This Week in Rust*! +[Rust](http://rust-lang.org) 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!](mailto:corey@octayn.net?subject=This%20Week%20in%20Rust%20Suggestion) +Want to get involved? [We love +contributions](https://github.com/mozilla/rust/wiki/Note-guide-for-new-contributors). + +This Week in Rust is openly developed [on Github](https://github.com/cmr/this-week-in-rust). +If you find any errors or omissions in this week's issue, [please submit a PR](https://github.com/cmr/this-week-in-rust/pulls). + +# What's cooking on master? + +119 pull requests were [merged in the last week][merged], and 1 [RFC][rfcs]. + +[code]: https://github.com/rust-lang/rust/pulls?q=is%3Apr+is%3Amerged+merged%3A2015-01-12..2015-01-18 +[rfcs]: https://github.com/rust-lang/rfcs/pulls?q=is%3Apr+is%3Amerged+merged%3A2015-01-12..2015-01-18 + +Now you can follow breaking changes *[as they happen][BitRust]*! + +[BitRust]: http://bitrust.octarineparrot.com/ + +## Breaking Changes + +* `AtomicInt` and `AtomicUint` have been [renamed][atomic] to + `AtomicIsize` and `AtomicUsize` to match their corresponding integer + types. +* To fix a bug in coherence [builtin traits can only be implemented + for structs and enums][cohere]. + +[atomic]: https://github.com/rust-lang/rust/pull/20896 +[cohere]: https://github.com/rust-lang/rust/pull/21167 + +## Other Changes + +* Certain long error messages of the form 'expected foo found bar' are + now [split neatly across multiple lines][multiline]. Examples in the + PR. +* UFCS method calls can now be [qualified by the trait][ufcs] of the + method. This can be used to disambiguate method calls when multiple + applicable methods are in scope, e.g. `<i32 as Add<_>>::add(1, 2)` + which is equivalent to `1.add(2)`. [RFC][rfcs-rfc]. +* Negative impls are [partially implemented][negimpl], though appear + to still be special-cased to the `Send` and `Sync` + traits. [RFC][negimpl-rfc]. +* Mutexes on Windows are faster now they are [implemented with Slim + Reader Writer Locks][mutex]. +* The `#[rustc_on_unimplemented]` attribute, requiring the + 'on_unimplemented' feature, lets rustc [display custom error + messages when a trait is expected to be implemented for a type but + is not][onun]. +* [Preliminary support for PowerPC][powerpc]. +* Fatal runtime errors are [now suitably boring][bore]. + +[multiline]: https://github.com/rust-lang/rust/pull/19870 +[mutex]: https://github.com/rust-lang/rust/pull/20367 +[onun]: https://github.com/rust-lang/rust/pull/20889 +[negimpl]: https://github.com/rust-lang/rust/pull/20972 +[negimpl-rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0019-opt-in-builtin-traits.md +[powerpc]: https://github.com/rust-lang/rust/pull/20980 +[ufcs]: https://github.com/rust-lang/rust/pull/21077 +[ufcs-rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0132-ufcs.md +[bore]: https://github.com/rust-lang/rust/pull/20944 + +## New Contributors + +* Aidan Hobson Sayers +* Alexander Korolkov +* Andrew Barchuk +* Cam Jackson +* CarVac +* Diggory Blake +* Fenhl +* Greg Chapple +* Jeff Belgum +* Lauri Lehmijoki +* nathan dotz +* Paul Crowley +* Seth Faxon +* Toni Cárdenas +* Travis Watkins + +# Approved RFC's + +* [517: io and os reform (skeleton)][rfc-517]. Updating the `io` and + `os` modules is a large task and at the moment the RFC only lays out + the motivation. It will be updated incrementally in further pull + requests. [PR][rfc-517-pr]. Many follow-ups have been posted for + review: [string handling][rfc-517-string], + [`Reader`/`Writer`][rfc-517-readwrite], [deadlines][rfc-517-dead], + [`std::env`][rfc-517-env], [`std::process`][rfc-517-process]. + +[rfc-517]: https://github.com/rust-lang/rfcs/blob/master/text/0517-io-os-reform.md +[rfc-517-pr]: https://github.com/rust-lang/rfcs/pull/517 +[rfc-517-readwrite]: https://github.com/rust-lang/rfcs/pull/576 +[rfc-517-string]: https://github.com/rust-lang/rfcs/pull/575 +[rfc-517-dead]: https://github.com/rust-lang/rfcs/pull/577 +[rfc-517-env]: https://github.com/rust-lang/rfcs/pull/578 +[rfc-517-process]: https://github.com/rust-lang/rfcs/pull/579 + +# New RFC's + +* [Use `isz`/`usz` as literal suffix for `isize`/`usize`][rfc-573-pr]. +* [Replace `Vec::drain` by a method that accepts a range parameter][rfc-574-pr]. +* [Rename (maybe one of) the standard collections for + consistency][rfc-580-pr]. Proposes several possible renamings. +* [Add `foreach` to iterators][rfc-582-pr]. An internal iterator. +* [Add `fmt` size hints][rfc-583-pr]. Allows buffers to be optimized. +* [Remove `proc` keyword][rfc-584-pr]. Why isn't it gone already? +* [Negative bounds][rfc-586-pr]. Gives flexibility to avoid coherence + conflicts. +* [Make return types of `Fn` traits associated + types][rfc-587-pr]. More flexible because it doesn't require generic + return types to be constrained. +* [Early trait bounds on generic types][rfc-590-pr]. Create a + convention to always apply trait bounds to wrapper types to improve + error messages when the bounds on the underlying types or methods + can't be satisfied. +* [sizeof, alignof, offsetof, typeof][rfc-591-pr]. +* [CStr, the dereferenced complement to CString][rfc-592-pr]. +* [Forbid identifier `Self` for definitions][rfc-593-pr]. Fixing a + weird corner case that results from `Self` not being a keyword. +* [Support incremental compilation][rfc-594-pr]. Rearchitect the + compiler. +* [Output option handling][rfc-595-pr]. Make rustc's `-o`, + `--out-dir`, and `--emit` options more consistent. + +[rfc-573-pr]: https://github.com/rust-lang/rfcs/pull/573 +[rfc-574-pr]: https://github.com/rust-lang/rfcs/pull/574 +[rfc-580-pr]: https://github.com/rust-lang/rfcs/pull/580 +[rfc-582-pr]: https://github.com/rust-lang/rfcs/pull/582 +[rfc-583-pr]: https://github.com/rust-lang/rfcs/pull/583 +[rfc-584-pr]: https://github.com/rust-lang/rfcs/pull/584 +[rfc-586-pr]: https://github.com/rust-lang/rfcs/pull/586 +[rfc-587-pr]: https://github.com/rust-lang/rfcs/pull/587 +[rfc-590-pr]: https://github.com/rust-lang/rfcs/pull/590 +[rfc-591-pr]: https://github.com/rust-lang/rfcs/pull/591 +[rfc-592-pr]: https://github.com/rust-lang/rfcs/pull/592 +[rfc-593-pr]: https://github.com/rust-lang/rfcs/pull/593 +[rfc-594-pr]: https://github.com/rust-lang/rfcs/pull/594 +[rfc-595-pr]: https://github.com/rust-lang/rfcs/pull/595 + +# Community + +The [periodic table of Rust types][period] has been updated, and +/r/rust finally hit [8 trillion subscribers][trill]. + +[period]: http://cosmic.mearie.org/2014/01/periodic-table-of-rust-types/ +[trill]: https://www.reddit.com/r/rust/comments/2sn91h/8_trillion_subscribers_we_did_it_reddit/ + +## From the Team + +* [Weekly-meetings/2015-01-13][mtg]. fott; homu; integer overflow; + I/O; 1.0; comment RFC + +[mtg]: https://github.com/rust-lang/meeting-minutes/blob/master/weekly-meetings/2015-01-13.md + +## Blog Posts + +* [Thoughts about Rust from a D programmer][d]. Good + comparison. [/r/rust][d-r-rust]. [/r/programming][d-r-programming]. +* [Recent syntactic changes][syntax]. Nick discusses some of the + last-minute syntax changes he's recently landed. +* [Little Orphan Impls][orphan]. Niko discusses options for coherence + rules. [/r/rust][orphan-r-rust]. +* [Unboxed Closures and FFI Callbacks][ffi]. How to use closures as + foreign callbacks. +* [A Quick Comparison of Nim + vs. Rust][nim]. [/r/rust][nim-r-rust]. [/r/programming][nim-r-programming]. +* [Mooney GB: A Gameboy emulator written in Rust][mooneye]. +* [Building a HashMap in Rust - Part 1: What's a + Hashmap?][hashmap]. Gankro on the Rust + HashMap. [/r/rust][hashmap-r-rust]. +* [Worklog 2015-01-17: Rustdoc testing][rustdoc]. Yurume on his new + patch to test rustdoc output. +* [Solving Project Eueler with Rust][euler]. A walk through of the + first problem. +* [Getting started contributing to Rust][started]. kmc's slides from + the Saturday event in SF. +* [Explore ownership in Rust][pwned]. Good entry level discussion of + ownership. [/r/rust][pwned-r-rust]. +* [DTrace on Rust][dtrace]. +* [SystemTap on Rust][systemtap]. Not to be outdone. +* [Summary of Korean Rust Meetup #4][korea]. The Korean Rust + contingent is always up to interesting stuff. + +[d]: http://blog.dicebot.lv/2015/01/thoughts-about-rust-from-d-programmer.html +[d-r-rust]: https://www.reddit.com/r/rust/comments/2s7bnt/thoughts_about_rust_from_d_programmer/ +[d-r-programming]: https://www.reddit.com/r/programming/comments/2s70mm/thoughts_about_rust_from_a_d_programmer/ +[nim-hn]: http://news.ycombinator.com/item?id=8883791 +[nim-r-rust]: https://www.reddit.com/r/rust/comments/2sd5rv/a_quick_comparison_of_nim_vs_rust/ +[nim-r-programming]: https://www.reddit.com/r/programming/comments/2scodb/a_quick_comparison_of_nim_vs_rust/ +[syntax]: http://featherweightmusings.blogspot.co.nz/2015/01/recent-syntactic-changes-to-rust.html +[euler]: http://unlogic.co.uk/2015/01/12/solving-project-euler-with-rust-1/ +[dtrace]: https://twitter.com/bcantrill/status/555143487482368000 +[mooneye]: http://gekkio.fi/blog/2015-01-13-mooneye-gb-a-gameboy-emulator-written-in-rust.html +[systemtap]: https://gist.github.com/cuviper/08239cbae023411a29d9 +[orphan]: http://smallcultfollowing.com/babysteps/blog/2015/01/14/little-orphan-impls/ +[orphan-r-rust]: https://www.reddit.com/r/rust/comments/2sfm4a/little_orphan_impls_nikos_blog/ +[hashmap]: http://cglab.ca/~abeinges/blah/robinhood-part-1/ +[hashmap-r-rust]: https://www.reddit.com/r/rust/comments/2sjayc/building_a_hashmap_in_rust_part_1_whats_a_hashmap/ +[ffi]: http://aatch.github.io/blog/2015/01/17/unboxed-closures-and-ffi-callbacks/ +[rustdoc]: https://lifthrasiir.github.io/rustlog/worklog-2015-01-17.html +[started]: http://kmcallister.github.io/talks/rust/2015-contributing-to-rust/slides.html +[pwned]: http://nercury.github.io/rust/guide/2015/01/19/ownership.html +[pwned-r-rust]: https://www.reddit.com/r/rust/comments/2sv4uv/explore_ownership_system_in_rust/ +[korea]: https://gist.github.com/lifthrasiir/93ba9f6aec7bd2113941 + +## Videos + +* [Servo: Building a Parallel Web Browser][servo]. Jack Moffit at + linux.conf.au. [HN][servo-hn]. [/r/programming][servo-r-programming]. + +[servo]: https://youtu.be/7q9vIMXSTzc +[servo-hn]: https://news.ycombinator.com/item?id=8899812 +[servo-r-programming]: https://www.reddit.com/r/programming/comments/2lcap0/an_introduction_to_servo/ + +## Discussions + +* [Small string optimization, remove as_mut_vec][small]. The current + definition of `Vec` doesn't allow the common 'small string' + optimization. [/r/rust][small-r-rust]. +* [Does Rust let you develop faster than C++?][fast]. TL;DR ¯\_(ツ)_/¯ +* [Using Rust 1.0 for video game development][games]. Yes, please. +* [Rust support in Visual Studio][vs]. Doesn't exist yet, sorry. +* [Rust Berlin community efforts][berlin]. Berlin needs you! +* [By value operator overloading problems][over]. Implementing math + operators for non-copyable types means you have to pass them by + reference, like `&a + &b`, which some consider unsightly. + +[games]: https://www.reddit.com/r/rust/comments/2s4kp9/using_rust_10_for_video_game_development/ +[vs]: https://www.reddit.com/r/rust/comments/2s5d65/rust_support_in_visual_studio/ +[fast]: https://www.reddit.com/r/rust/comments/2sa2qx/does_rust_let_you_develop_faster_than_c/ +[berlin]: https://www.reddit.com/r/rust/comments/2sbkuo/rustberlin_community_efforts/ +[small]: http://discuss.rust-lang.org/t/small-string-optimization-remove-as-mut-vec/1320 +[small-r-rust]: https://www.reddit.com/r/rust/comments/2slcs8/small_string_optimization_remove_as_mut_vec/ +[over]: https://www.reddit.com/r/rust/comments/2srz0g/by_value_operator_overloading_problems/ + +## New Projects + +* [launch-code]. Cryptographic auditing of unsafe code. [/r/rust][launch-code-r-rust]. +* [rust-cipher]. Encryption with XSalsa20 and BLAKE2B-512 in the + Encrypt-then-MAC mode. +* [rust-haskell-ffi]. Example of calling Rust from Haskell. +* [dynamodule]. Experiments with dynamic OOP. +* [rdb-rs]. A Redis RDB parser. +* [carboxyl]. Functional reactive programming. +* [Sparkle]. An entity component system. [/r/rust][Sparkle-r-rust]. +* [rust-erl-ext]. Erlang 'external term' parser. +* [rs-intrusive]. A system for creating intrusive data structures, + Rust's kryptonite. +* [handlebars-iron]. Template middleware for the Iron web framework. + +[launch-code]: https://github.com/kmcallister/launch-code +[launch-code-r-rust]: https://www.reddit.com/r/rust/comments/2sc7oq/cryptographic_signatures_for_auditing_unsafe_code/ +[rust-cipher]: https://github.com/zenith-nz/rust-cipher +[rust-haskell-ffi]: https://github.com/aisamanra/rust-haskell-ffi +[dynamodule]: https://github.com/kmcallister/dynamodule +[rdb-rs]: http://fnordig.de/2015/01/15/rdb-rs-fast-and-efficient-rdb-parsing-utility/ +[carboxyl]: https://github.com/aepsil0n/carboxyl +[Sparkle]: https://github.com/RustSparkle/Sparkle +[Sparkle-r-rust]: https://www.reddit.com/r/rust/comments/2srrx0/another_entity_component_system/ +[rust-erl-ext]: https://github.com/seriyps/rust-erl-ext +[rs-intrusive]: https://github.com/aidancully/rs-intrusive +[handlebars-iron]: https://github.com/sunng87/handlebars-iron + +## Project Updates + +* [This Week in Servo 19][twis]. +* [Worklog 2015-01-13: Time zones, chrono, and associated + types]. Yurume discusses updates to rust-chrono. + +[twis]: http://blog.servo.org/2015/01/13/twis-19/ +[chrono]: https://lifthrasiir.github.io/rustlog/worklog-2015-01-13.html + +## Upcoming Events + +* [January 19 - Rust Paris](http://www.meetup.com/Rust-Paris) +* [January 20 - Rust Berlin](http://www.meetup.com/Rust-Berlin/events/219070839/) +* [January 20 - Fast, Safe, and + Beautiful](http://www.oreilly.com/pub/e/3291). Jim Blandy's webcast + on Rust for O'Reilly. +* [January 28 - Rust Amsterdam](http://www.meetup.com/Rust-Amsterdam/events/218908906/) |