summaryrefslogtreecommitdiffstats
path: root/content/2015-12-21-this-week-in-rust.md
blob: 2aad3c5cddb1e2be1496ed3748276ba905a42588 (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
Title: This Week in Rust 110
Number: 110
Date: 2015-12-21
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

* [What one must understand to be productive with Rust](https://medium.com/@ericdreichert/what-one-must-understand-to-be-productive-with-rust-e9e472116728).
* [Rayon: Data parallelism in Rust](http://smallcultfollowing.com/babysteps/blog/2015/12/18/rayon-data-parallelism-in-rust/).
* [Programming with Rust](http://hackaday.com/2015/12/18/programming-with-rust/). Rust for hardware hackers.
* [Rendering an animation in Rust](http://www.willusher.io/2015/12/16/rendering-an-animation-in-rust/).
* [Procedural macros, framework](http://www.ncameron.org/blog/procedural-macros-framework/). Nick's continued efforts for a better macro system in Rust.
* [Differential geometry in Rust](http://ebvalaim.mydevil.net/en/2015/12/18/differential-geometry-in-rust/).
* [Adding community-driven Wayland support to Servo](http://blogs.s-osg.org/community-driven-wayland-support-servo/).
* [Surfaces and signatures: Component privacy versus dependence](http://blog.pnkfx.org/blog/2015/12/19/signatures-and-surfaces-thoughts-on-privacy-versus-dependency/).
* [This week in Redox OS 9](http://www.redox-os.org/news/this-week-in-redox-9/).

## Notable New Crates & Project Updates

* [rustfmt](https://github.com/rust-lang-nursery/rustfmt) now comes with a Cargo subcommand `fmt`.
* [Rayon](https://github.com/nikomatsakis/rayon). A data parallelism library for Rust.
* [Ruplicity](https://github.com/mbrt/ruplicity). Rust library managing duplicity backups.
* [Floki](https://github.com/arthurprs/floki). A message queue in Rust, inspired by Apache Kafka and Amazon SQS.
* [rustlearn](https://github.com/maciejkula/rustlearn). A machine learning package for Rust.
* [Corange-rs](https://github.com/lucidscape/corange-rs). Rust bindings for the Corange game engine.

# Updates from Rust Core

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

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

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

[triage]: https://internals.rust-lang.org/t/triage-digest-mon-dec-21-2015/3021
[subteam]: https://internals.rust-lang.org/t/subteam-reports-2015-12-21/3020

## Notable changes

* [`memchr` and `memrchr` in std](https://github.com/rust-lang/rust/pull/30381).
* [privacy: Rewrite VisiblePrivateTypesVisitor](https://github.com/rust-lang/rust/pull/29973).
* [Book: First draft of primitive types](https://github.com/rust-lang/book/pull/34).
* [Book: New chapter: Comments](https://github.com/rust-lang/book/pull/32).
* [Book: New chapter: Functions](https://github.com/rust-lang/book/pull/31).
* [Make RFC 1214 warnings into errors](https://github.com/rust-lang/rust/pull/30389). [RFC 1214](https://github.com/rust-lang/rfcs/blob/master/text/1214-projections-lifetimes-and-wf.md): Clarify (and improve) rules for projections and well-formedness.
* [Better support for `--llvm-root`](https://github.com/rust-lang/rust/pull/27937).
* [Ensure borrows of fn/closure params do not outlive invocations](https://github.com/rust-lang/rust/pull/30341).
* [Make name resolution errors non-fatal](https://github.com/rust-lang/rust/pull/30320).
* [Move built-in syntax extensions to a separate crate](https://github.com/rust-lang/rust/pull/30300).
* [Implement `#[deprecated]` attribute (RFC 1270)](https://github.com/rust-lang/rust/pull/30206).
* [Partially implement type ascription](https://github.com/rust-lang/rust/pull/30184).
 
## New Contributors

* Ed Clarke
* faineance
* fbergr
* Shiney
* Steve Wooster
* Zach Reizner

## 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:

* [RFC 1328: Allow a custom panic handler](https://github.com/rust-lang/rfcs/pull/1328).
* [Amend RFC 550 with (expanded) abstract specification rather than algorithm](https://github.com/rust-lang/rfcs/pull/1384).

## 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

* [Improve Cargo target-specific dependencies](https://github.com/rust-lang/rfcs/pull/1361).
* [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 an `alias` attribute to `#[link]` and `-l`](https://github.com/rust-lang/rfcs/pull/1296).

## New RFCs

* [Generalize the delayed resolution of language items to arbitrary items](https://github.com/rust-lang/rfcs/pull/1408).
* [Add a `noalias` language item](https://github.com/rust-lang/rfcs/pull/1410).
* [Add Rvalue-static-promotion](https://github.com/rust-lang/rfcs/pull/1414).
* [Deprecate type aliases in `std::os::*::raw`](https://github.com/rust-lang/rfcs/pull/1415).
* [Safe `memcpy`, `memset` for slices `([T]::{ copy_from, fill })`](https://github.com/rust-lang/rfcs/pull/1419).
* [pub(restricted) item](https://github.com/rust-lang/rfcs/pull/1422). Expand the current `pub`/non-`pub` categorization of items with the ability to say "make this item visible *solely* to a (named) module tree.

# Upcoming Events

*No upcoming events for next two weeks.*

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

* [Technical Lead/Manager](https://ebip.co.uk/careers) at EBI Portfolios.
* [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.
* [Multiple positions](http://rust.jobboard.io/employers/6824-ironnet-cybersecurity) 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 [clippy](https://github.com/Manishearth/rust-clippy), a collection of lints for better Rust code. Alas, being a plugin, it only runs on nightly Rust, but that's easy to do with [multirust](https://github.com/brson/multirust). Thanks to [leodasvacas](https://users.rust-lang.org/users/leodasvacas) for the suggestion.

[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

> Do or do not. There is a try!

— Jonathan Turner in a [blog post](http://www.jonathanturner.org/2015/11/learning-to-try-things-in-rust.html).

Thanks to [Vikrant](https://users.rust-lang.org/users/nasa42) for the tip.

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

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