summaryrefslogtreecommitdiffstats
path: root/content/2015-12-07-this-week-in-rust.md
blob: b48e3b890b6dd2036663fb8b055f5f09c9af2601 (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
152
153
154
155
156
157
158
159
160
Title: This Week in Rust 108
Number: 108
Date: 2015-12-07
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? Tweet us at [@ThisWeekInRust](https://twitter.com/ThisWeekInRust) or [send us 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/blob/master/CONTRIBUTING.md).

*This Week in Rust* is openly developed [on GitHub](https://github.com/cmr/this-week-in-rust).
If you find any errors in this week's issue, [please submit a PR](https://github.com/cmr/this-week-in-rust/pulls).

This week's edition was edited by: [nasa42](https://github.com/nasa42), [brson](https://github.com/brson), and [llogiq](https://github.com/llogiq).


# Updates from Rust Community

## News & Blog Posts

* [Rustaceans: Please keep a changelog](https://blog.dbrgn.ch/2015/12/1/rust-crates-keep-a-changelog/)!
* [Building a simple JIT in Rust](http://www.jonathanturner.org/2015/12/building-a-simple-jit-in-rust.html).
* [Build an API in Rust with JWT authentication using Nickel.rs](https://auth0.com/blog/2015/11/30/build-an-api-in-rust-with-jwt-authentication-using-nickelrs/).
* [Using Wayland from Rust, part 1](http://blog.levans.fr/rust_wayland_1-en.html).
* [Language of the month: Rust, the results](https://gergely.imreh.net/blog/2015/12/lotm-rust-results/).
* [embed_lang - An embeddable language written in Rust](https://marwes.github.io/2015/12/06/embed_lang-An-embeddable-language-written-in-Rust.html).
* [Implementing a SuperCollider UGen in Rust](http://www.andrewchristophersmith.com/blog/implementing_a_supercollider_external_in_rust/).
* [This week in Redox OS 7](http://www.redox-os.org/news/this-week-in-redox-7/).
* [This week in Servo 43](http://blog.servo.org/2015/11/30/twis-43/).

## Notable New Crates & Project Updates

* [MIO released v0.5 which includes support for Windows, NetBSD, and Android](https://github.com/carllerche/mio/blob/v0.5.x/CHANGELOG.md).
* [Rust by Example](http://rustbyexample.com/) now has a new [error handling section](http://rustbyexample.com/error.html) via this [PR](https://github.com/rust-lang/rust-by-example/pull/674).
* [notty](https://github.com/withoutboats/notty). A new kind of terminal.
* [Collenchyma](https://github.com/autumnai/collenchyma). High Performance Computation for CUDA, OpenCL and common CPU.
* [gaol](https://github.com/pcwalton/gaol). Cross-platform application sandboxing for Rust.
* [RobotS](https://github.com/gamazeps/RobotS). Actor system for Rust, inspired by Akka & Erlang.
* [kaws](https://github.com/InQuicker/kaws). A tool for deploying multiple Kubernetes clusters in AWS using CoreOS, GPG, and Terraform.
* [Kinglet](https://github.com/pyfisch/kinglet). A modern asynchronous HTTP server for Rust.
* [Rugra](https://github.com/Ticki/rugra). An ultra minimal graphics engine in Rust.
* [inlinable_string](https://github.com/fitzgen/inlinable_string). An owned, grow-able UTF-8 string that stores small strings inline and avoids heap-allocation.

# Updates from Rust Core

92 pull requests were [merged in the last week][merged].

[merged]: https://github.com/issues?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2015-11-30..2015-12-07

See the [triage digest][triage] and [subteam reports][subteam] for more details.

[triage]: https://internals.rust-lang.org/t/triage-digest-mon-dec-07-2015/2970
[subteam]: https://internals.rust-lang.org/t/subteam-reports-2015-12-04/2963

## Notable changes

* [Implement calling of `const fn`-methods in true constants](https://github.com/rust-lang/rust/pull/30084).
* [Add suggestion of similar macro names to `macro undefined` error message](https://github.com/rust-lang/rust/pull/30064).
* [Fix various bugs around empty structs and patterns](https://github.com/rust-lang/rust/pull/29383).
* [Allow constant evaluation of index operations on constant arrays and repeat expressions](https://github.com/rust-lang/rust/pull/25570).
* [Implement RFC 16, attributes on statements and expressions](https://github.com/rust-lang/rust/pull/29850).
* [std: Stabilize APIs for the 1.6 release](https://github.com/rust-lang/rust/pull/30187).
* [Cargo: Allow build scripts to specify dependencies](https://github.com/rust-lang/cargo/pull/2134).

## New Contributors

* Adam Badawy
* Bhargav Patel
* Christopher Sumnicht
* Mihaly Barasz
* Mika Attila
* Ori Avtalion
* Paul A. Jungwirth
* Sean Griffin

## Approved RFCs

Changes to Rust follow the Rust [RFC (request for comments)
process](https://github.com/rust-lang/rfcs#rust-rfcs). These
are the RFCs that were approved for implementation this week:


*No RFCs were approved this week!*

## Final Comment Period

Every week [the team](https://rust-lang.org/team.html) announces the
'final comment period' for RFCs and key PRs which are reaching a
decision. Express your opinions now. [This week's FCPs][fcp] are:

[fcp]: https://github.com/issues?utf8=%E2%9C%93&q=is%3Apr+org%3Arust-lang+label%3Afinal-comment-period+is%3Aopen

* [Amend RFC 550 with (expanded) abstract specification rather than algorithm](https://github.com/rust-lang/rfcs/pull/1384).
* [Add a `IndexAssign` trait that allows overloading "indexed assignment" expressions like `a[b] = c`](https://github.com/rust-lang/rfcs/pull/1129).
* [Allow eliding more type parameters](https://github.com/rust-lang/rfcs/pull/1196).
* [Add thread-local custom panic handlers to customize the behavior of thread panics](https://github.com/rust-lang/rfcs/pull/1100).
* [Allow a custom panic handler](https://github.com/rust-lang/rfcs/pull/1328).
* [Add an `alias` attribute to `#[link]` and `-l`](https://github.com/rust-lang/rfcs/pull/1296).

## New RFCs

* [Allocators, take III](https://github.com/rust-lang/rfcs/pull/1398).
* [Add `#[repr(pack = "N")]`](https://github.com/rust-lang/rfcs/pull/1399).
* [Add `try_some` macro equivalent to `try!`](https://github.com/rust-lang/rfcs/pull/1394).
* [Expand `try!` macro with additional case](https://github.com/rust-lang/rfcs/pull/1393).
* [Add a `pod` language item and marker trait](https://github.com/rust-lang/rfcs/pull/1387).

# Upcoming Events

* [12/8. San Diego Rust Meetup](http://www.meetup.com/San-Diego-Rust/events/226694618/).
* [12/9. RustBerlin Hack and Learn](http://www.meetup.com/Rust-Berlin/).
* [12/10. Columbus Rust Society](http://www.meetup.com/columbus-rs/).
* [12/11. Rhein-Main Area Rust Meetup](http://www.meetup.com/de/Rust-Rhein-Main/events/226858571/).
* [12/14. Seattle Rust Meetup](https://www.eventbrite.com/e/mozilla-rust-seattle-meetup-tickets-12222326307?aff=erelexporg).
* [12/15. Rust - Rethinking Systems Programming](http://www.meetup.com/de/NewStore/events/225945950/).
* [12/21. Paris - Rust Paris](http://www.meetup.com/Rust-Paris).

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

# fn work(on: RustProject) -> Money

* [Research Engineer - Servo](https://careers.mozilla.org/en-US/position/ozy21fwU) at Mozilla.
* [Senior Research Engineer - Rust](https://careers.mozilla.org/en-US/position/o0H41fww) at Mozilla.
* [Open Source Software Engineer](http://maidsafe.net/careers) at MaidSafe.
* [Software Engineer - Sensor Development](https://gethired.com/apply/ac642822-b445-4fee-9d44-65827f0381f5) at IronNet Cybersecurity.

*Tweet us at [@ThisWeekInRust](https://twitter.com/ThisWeekInRust) to get your job offers listed here!*

# Crate of the Week

This week's Crate of the Week is [cargo-count](https://github.com/kbknapp/cargo-count) – a neat way to summarize line counts for cargo projects.

Thanks to [lizida](https://users.rust-lang.org/users/lizida) who suggested it back in September. [Submit your suggestions for next week][submit_crate]!

[submit_crate]: https://users.rust-lang.org/t/crate-of-the-week/2704

# Quote of the Week

> The major philosophic difference between Rust today and Swift-as-I-envision-it is that Rust forces you to think about ownership everywhere, but Swift-as-I-envision-it should only force you to think about single ownership & borrowing if you want to optimize performance or guarantee that you have no encounters with the runtime.

> If it helps, think of the extant Swift "inout" parameter modifier as being equivalent to "&mut", and imagine the logical swift extensions to support the rest of the Rust model.

> This is a really important area for us to develop, but it also isn't the highest priority of the team. That means that Rust will maintain a lead in this area of applicability... unless someone motivated and capable from the open source community decides that it is really important to them, and makes it happen sooner.

— Chris Lattner on [/r/rust](https://www.reddit.com/r/rust/comments/3vadg8/swift_is_open_source/cxnu2kk).

Thanks to [llogiq](https://github.com/llogiq) for the tip.

[Submit your quotes for next week][submit]!

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