blob: a24c7e087502c3597059f97d46ec47f8831c9843 (
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 83
Date: 2015-06-15
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).
This week's edition was edited by: Brian Anderson.
# Notable Links
* [A graph-based higher-order intermediate representation](http://compilers.cs.uni-saarland.de/papers/lkh15_cgo.pdf). A novel intermediate representation for a dialect of Rust.
* [Interview with Mozilla's Aaron Turon](http://www.pl-enthusiast.net/2015/06/09/interview-with-mozillas-aaron-turon/).
* [Out of curiosity - Who is currently focusing on improving compile times? If so, how is it coming along?](http://www.reddit.com/r/rust/comments/39f21l/out_of_curiosity_who_is_currently_focusing_on/). People are working on compile time.
* [Hodor esolang as a Rust macro](http://www.reddit.com/r/rust/comments/39wvrm/hodor_esolang_as_a_rust_macro/).
* [dispatcher](https://github.com/timonv/rdispatcher). Many-to-many channels.
* ['When you have no room for error'](http://www.commitstrip.com/en/2015/06/15/when-you-have-no-room-for-error/). The CommitStrip comic mentions Rust.
* [Fundraiser for a multi-language (incl. Rust) teaching tent at Chaos Communication Camp](https://www.betterplace.org/en/projects/30076-an-assembly-on-chaos-communication-camp-providing-free-teaching).
# Project Updates
* [Homu, a gatekeeper for your commits](http://homu.io/). Barosl is now offering homu-as-a-service. This is the CI system Rust and Servo both use, and it is compatible with Travis CI.
* [rustorm](http://www.reddit.com/r/rust/comments/395hwl/ivancerasrustorm_a_simple_orm_for_rust/). A simple ORM.
* [snake-piston](http://www.reddit.com/r/rust/comments/398azz/snake_game_in_rust_using_piston/). A snake game written with Piston.
* [yaml-rust](http://chyh1990.github.io/yaml-rust/). A pure-Rust YAML 1.2 parser.
* [crust](http://www.reddit.com/r/rust/comments/39elgj/crust_reliable_p2p_network_connections_in_rust/). Reliable p2p with NAT traversal.
* [aho-corasick](https://github.com/BurntSushi/aho-corasick). Fast multi-substring nmatching.
* [pcapng-rs](https://github.com/richo/pcapng-rs). A [pcapng](https://github.com/pcapng/pcapng) parser written with [nom](https://github.com/Geal/nom).
* [deuterium](https://github.com/deuterium-orm/deuterium). A fully-typed SQL query builder.
* [regex](https://github.com/rust-lang/regex/pull/91). It got faster. A lot faster.
# What's cooking on master?
160 pull requests were [merged in the last week][merged].
[merged]: https://github.com/issues?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2015-06-07..2015-06-15
Now you can follow breaking changes *[as they happen][BitRust2]*!
[BitRust2]: http://killercup.github.io/bitrust/
# Breaking Changes
* [Prevent raw pointers from being used as explicit
self](https://github.com/rust-lang/rust/pull/26225). Probably nobody
has ever tried to write such code, and the current implemented
behavior is bonkers.
# Other Changes
* [Add `Result::expect`](https://github.com/rust-lang/rust/pull/25359/files).
* [Add
`CString::from_ptr/into_ptr`](https://github.com/rust-lang/rust/pull/25777). For
transfering ownership of C strings across the FFI.
* [Implement `str::split_at`](https://github.com/rust-lang/rust/pull/25839).
* [Stabilize a number of new `fs` features](https://github.com/rust-lang/rust/pull/25844).
* [Parallel code generation works
again](https://github.com/rust-lang/rust/pull/26018). Pass `rustc -C
codegen-units=4` to try.
* [The `to_uppercase` and `to_lowercase` functions now support complex
case mapping](https://github.com/rust-lang/rust/pull/26039). This
changes the behavior of the *stable*
`char::to_uppercase/to_lowercase` and also stabilizes
`str::to_uppercase/to_lowercase`.
* [Implement `Extend<&T> where: T: Copy` for a variety of collection
types](https://github.com/rust-lang/rust/pull/25989).
* [The unstable `String::from_str` is
deprecated](https://github.com/rust-lang/rust/pull/26077). Use
`String::from`.
* [Heuristics for detecting identifier typos are improved](https://github.com/rust-lang/rust/pull/26087).
# New Contributors
* ben fleis
* David Voit
* Eli Friedman
* frankamp
* funkill
* Johann Tuffe
* joliv
* Joshua Landau
* Leo Correa
* marcell
* Marcel Müller
* Matthew Astley
* Nathan Long
* Nick Fitzgerald
* Russell McClellan
* saml
* simplex
* swgillespie
# Approved RFCs
* [RFC 1105. Policy on API
evolution](https://github.com/rust-lang/rfcs/blob/master/text/1105-api-evolution.md). Describes
how the Rust project evaluates changes to the libraries, and which are allowed when.
* [RFC 1119. `Result::expect`](https://github.com/rust-lang/rfcs/pull/1119).
* [RFC 1122. Semantic
versioning](https://github.com/rust-lang/rfcs/blob/master/text/1122-language-semver.md). Describes
how the language itself is allowed to change.
* [RFC 1123. Introduce `str::split_at`](https://github.com/rust-lang/rfcs/blob/master/text/1123-str-split-at.md)
* [RFC 1131. `likely` intrinsic](https://github.com/rust-lang/rfcs/blob/master/text/1131-likely-intrinsic.md). For hinting hot and cold branches.
# New RFCs
* [Adjust default object
bounds](https://github.com/rust-lang/rfcs/pull/1156). This fixes some
dumb rules that made it into 1.0, but is a breaking change that
affects relatively little code.
* [Expand the `std::net` module](https://github.com/rust-lang/rfcs/pull/1158).
# Upcoming Events
* [6/17. Montreal](http://www.meetup.com/Montreal-Rust-Language-Meetup/events/223045701/)
* [6/17. Los Angeles](http://www.meetup.com/Rust-Los-Angeles/events/222656434/)
* [6/24. Columbus Rust Society](http://www.meetup.com/columbus-rs/)
* [6/29. Sydney](http://www.meetup.com/Rust-Sydney/events/222811456/)
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
```text
<Quxxy> I had a fun one in cargo script: there's currently no way in Rust
to get a file's mtime and the system time in the same time format
<Quxxy> (On Windows)
<Quxxy> You can get one in UNIX time, the other in Windows time
<Quxxy> Which have different scales and different epochs
<Quxxy> Rust: Buy Your Own Damn Batteries; What Are You, A Communist?
```
Quxxy discovers Rust's stance toward the inclusion of batteries.
Thanks to cmr for the tip. [Submit your quotes for next week!][submit].
[submit]: http://users.rust-lang.org/t/twir-quote-of-the-week/328
|