summaryrefslogtreecommitdiffstats
path: root/content/2015-04-13-this-week-in-rust.md
blob: 36b5b6426d02a30b5dbbaeef7215c83c9cdc8d53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
Title: This Week in Rust 77
Date: 2015-04-13
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:
safety, concurrency, and speed. 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/rust-lang/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?

104 pull requests were [merged in the last week][merged], and 6 [RFC PRs][rfcs].

[merged]: https://github.com/rust-lang/rust/pulls?q=is%3Apr+is%3Amerged+merged%3A2015-04-06..2015-04-13
[rfcs]: https://github.com/rust-lang/rfcs/pulls?q=is%3Apr+is%3Amerged+merged%3A2015-04-06..2015-04-13

Now you can follow breaking changes *[as they happen][BitRust]*!

[BitRust]: http://rawgit.com/mrmonday/bitrust/gh-pages/index.html

# Breaking Changes

* [Set `CLOEXEC` for all fds on Unix by default](https://github.com/rust-lang/rust/pull/24034)
* [Convert lifetime shadowing into a hard error](https://github.com/rust-lang/rust/pull/24057)
* [Use discriminant_value intrinsic for `derive(PartialOrd)`](https://github.com/rust-lang/rust/pull/24270)

# Other Changes

* [Phil Dawes refactored a bunch of the parser to return `Result` insteadof panicking](https://github.com/rust-lang/rust/pull/23857)
* [Implemented remaining string pattern API](https://github.com/rust-lang/rust/pull/23952)
* [Implement reentrant mutexes and make stdio use them](https://github.com/rust-lang/rust/pull/24029)
* [Prefer ObjectCandidate to ImplCandidate if both apply](https://github.com/rust-lang/rust/pull/24056)
* [Michael Sproul added some more extended errors and improved their display](https://github.com/rust-lang/rust/pull/24143)
* [Implement io::Seek on BufReader and BufWriter](https://github.com/rust-lang/rust/pull/24176)
* [Allow plugins to register LLVM passes](https://github.com/rust-lang/rust/pull/24207)
* [Stabilize clone_from](https://github.com/rust-lang/rust/pull/24215)
* [Stabilize Error::from_raw_os_error](https://github.com/rust-lang/rust/pull/24216)

# New Contributors

* Ben Ashford
* Christopher Chambers
* Dominick Allen
* Hajime Morrita
* Igor Strebezhev
* Josh Triplett
* Luke Gallagher
* Michael Alexander
* Michael Macias
* Oak
* Remi Rampin
* Sean Bowe
* Tibor Benke
* Will Hipschman
* Xue Fuqiao

# Approved RFCs

* [RFC 218: Empty struct with braces](https://github.com/rust-lang/rfcs/pull/218)
* [RFC 639: discriminant_value intrinsic](https://github.com/rust-lang/rfcs/pull/639)
* [RFC 888: Compiler fences](https://github.com/rust-lang/rfcs/blob/master/text/0888-compiler-fence-intrinsics.md)
* [RFC 911: Const functions and inherent methods](https://github.com/rust-lang/rfcs/blob/master/text/0911-const-fn.md)

# New RFCs

* [Expand the scope of `std::fs`](https://github.com/rust-lang/rfcs/pull/1044)
* [Rename `soft_link` to `symlink`](https://github.com/rust-lang/rfcs/pull/1048)
* [Clarify cast rules, especially regarding fat pointers](https://github.com/rust-lang/rfcs/pull/1052)
* [Rename or replace `str::words`](https://github.com/rust-lang/rfcs/pull/1054)
* [Redirecting stdio of child processes to open file handles](https://github.com/rust-lang/rfcs/pull/1055)
* [Add `Sync` to `io::Error`](https://github.com/rust-lang/rfcs/pull/1057)
* [Replace `tail`/`init`](https://github.com/rust-lang/rfcs/pull/1058)

# Notable Links

* [Fearless concurrency with Rust](http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html)
* [Featherweight musings: arrays and vectors in Rust](http://featherweightmusings.blogspot.com/2015/04/new-tutorial-arrays-and-vectors-in-rust.html).
* [Newcomer to Rust: my experience](http://internals.rust-lang.org/t/newcomer-to-rust-my-experience/1816/1)
* [Memcpy is
  backwards](http://internals.rust-lang.org/t/memcpy-is-backwards/1797). There
  was a big silently-breaking change to `copy_memory` right before the
  beta.
* [Bay Area Rust Meetup: Data Science](https://air.mozilla.org/bay-area-rust-meetup-april-2015/). Video from the SF meetup.
* [Weekly-meetings/2015-04-07][mtg]: beta, abs, rustdoc, wiki, docs
* [Steve Klabnik and Yehuda Katz talk about Rust on The Changelog #151](https://thechangelog.com/151/)
* [Aaron Turon's Stanford talk (video)](https://www.youtube.com/watch?v=O5vzLKg7y-k).
* [A page of useful links for new contributors](http://www.ncameron.org/rust.html).

[mtg]: https://github.com/rust-lang/meeting-minutes/blob/master/weekly-meetings/2015-04-07.md

# Project Updates

* [Racer progress update 5 (cargo support)](http://phildawes.net/blog/2015/04/05/racer5/).
* [multirust](http://users.rust-lang.org/t/multirust-0-0-3/954). The Rust toolchain manager, updated with new features and bugfixes.
* [reforge](https://github.com/tedsta/reforge). A multiplayer sandbox space combat MMO.
* [The Hat Backup System](https://github.com/google/hat-backup).
* [Piston 0.1 is released](http://blog.piston.rs/2015/04/07/piston-0.1/).
* [gag](https://crates.io/crates/gag). Redirect stderr/stdout.
* [afl.rs](https://github.com/kmcallister/afl.rs). Integrating American Fuzzy-Lop with Rust.
* [hyper on beta](http://seanmonstar.com/post/115873169212/hyper-on-beta).
* [Raft: Small status update](http://hoverbear.org/2015/04/09/raft-the-next-generation-3/).
* [This Week in Servo 30](http://blog.servo.org/2015/04/09/twis-30/).
* [A Chef comunity cookbook for Rust](https://supermarket.chef.io/cookbooks/rustlang).
* [A Docker image for Rust](https://registry.hub.docker.com/u/jimmycuadra/rust/).
* [Rust_Classifier](https://github.com/jackm321/Rust_Classifier). A naive Bayes classifier.
* [Pool](https://github.com/carllerche/pool). A pool for reusable values, from carllerche.
* [ggp-rs](https://www.reddit.com/r/rust/comments/3272b8/ggprs_a_library_for_creating_general_game_players/). A library for [General Game Playing](https://class.coursera.org/ggp-003).
* [timer](https://www.reddit.com/r/rust/comments/326x5p/a_betacompatible_timer/). A timer to make up for the lack of one in std.
* [retry](https://github.com/jimmycuadra/retry). Retry an operation until a condition is satisfied.
* [query_rs](https://github.com/Mr-Byte/query_rs). LINQ-like macros.
* [analit](https://github.com/jswrenn/analit). 'Analog' literals for geometric types.
* [Google APIs for Rust - Dev Diary #1: How to write 78 APIs in 5s (video)](https://youtu.be/2U3SpepKaBE).
* [All crates of the RustAudio project work with beta](https://www.reddit.com/r/rust/comments/32b74a/all_rustaudio_crates_now_build_on_the_stable/).
* [eventual_io](https://github.com/carllerche/eventual_io). Async I/O with mio and eventual.
* [serde, the serialization library, is beta-compatible](https://erickt.github.io/blog/2015/04/12/serde-0-dot-3-1-now-compatible-with-beta/).
* [nickel, the web framework, is on crates.io](https://www.reddit.com/r/rust/comments/32dhwb/nickel_is_on_cratesio/).
* [coroutine-rs](https://github.com/rustcc/coroutine-rs). Coroutines.
* [rust-sdl2 is beta-compatible](https://github.com/AngryLawyer/rust-sdl2/commit/00f7df56570b2e7e57df63813692bb7ef53d10a0).

# Upcoming Events

* [4/13 Seattle](https://www.eventbrite.com/e/mozilla-rust-seattle-meetup-tickets-12222326307?aff=erelexporg)
* [4/14 Sydney](http://www.meetup.com/Rust-Sydney/events/221388677/)
* [4/20 Paris](http://www.meetup.com/Rust-Paris)
* [4/22 Columbus Rust Society](http://www.meetup.com/columbus-rs/). Their inaugural event.

If you are running a Rust event please add it to the [calendar] to get
it mentioned here. Email [Erick Tryzelaar][erickt] or [Brian
Anderson][brson] for access.

[calendar]: https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com
[erickt]: mailto:erick.tryzelaar@gmail.com
[brson]: mailto:banderson@mozilla.com

# Quote of the Week

```
<frankmcsherry> rust is like a big bucket of solder and wire, with the promise that you can't electrocute yourself.
```

From #rust.

Thanks to BurntSushi for the tip. [Submit your quotes for next week!][submit].

[submit]: http://users.rust-lang.org/t/twir-quote-of-the-week/328