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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
|
Title: This Week in Rust 44
Date: 2014-04-05 05:06
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).
0.10 [was released][ten] this week, and with it comes a redesign of the
websites and official nightlies.
[ten]: https://mail.mozilla.org/pipermail/rust-dev/2014-April/009387.html
<!-- more -->
# What's cooking on master?
62 pull requests were merged this week.
## Breaking Changes
- The `map` and `flat_map` methods [have been
removed](https://github.com/mozilla/rust/pull/13203) from `Vec<T>`, the are
superseded by their iterator equivalents (of the same name).
- `FromIterator::from_iterator` [has been
renamed](https://github.com/mozilla/rust/pull/13220) to `from_iter`.
- `std::vec::{append, append_one}` [have been turned into
methods](https://github.com/mozilla/rust/pull/13221).
- struct fields [are now private by
default](https://github.com/mozilla/rust/pull/13184). Similarly, fields of
tuple structs [are also private by
default](https://github.com/mozilla/rust/pull/13237).
- `std::num` [has seen some
cleanup](https://github.com/mozilla/rust/pull/13225). The `cmath` module has
been removed from the public API and the various wrapper functions on float
types have been removed.
- `Rng::shuffle_mut` [has been
renamed](https://github.com/mozilla/rust/pull/13177) to `shuffle`.
- Vectors, arrays, and slices [require `uint` indices
now](https://github.com/mozilla/rust/pull/13257). Previously they accepted
any integer type.
- Static string constants [no longer include a null
terminator](https://github.com/mozilla/rust/pull/13291). This was
accidentally leftover from when all strings were implicitly
null-terminated. This may break code that incorrectly assumed strings were
null-terminated.
- The `concat_idents` macro [is now feature
gated](https://github.com/mozilla/rust/pull/13295).
- `RefCell::get` and `RefCell::set` [have been
removed](https://github.com/mozilla/rust/pull/13301).
## Other Changes
- rustc [now gives file paths](https://github.com/mozilla/rust/pull/13284)
when reporting duplicate crates found.
- `std::cmp` [has some nice new
documentation](https://github.com/mozilla/rust/pull/12956).
- The manual [now has](https://github.com/mozilla/rust/pull/13207) an updated
list of what attributes are valid and what they do.
- Built-in syntax extensions [are now
documented](https://github.com/mozilla/rust/pull/13255).
- `AtomicInt` and `AtomicUint` [now have atomic bitwise
operations](https://github.com/mozilla/rust/pull/12964).
- The `Show` implementation for `Cell` [has been
fixed](https://github.com/mozilla/rust/pull/13243) to actually print the
contents of the Cell.
- Macros in statement and expression position [can now be delimited by square
brackets](https://github.com/mozilla/rust/pull/13234).
- The `k-nucleotide` benchmark [has been fixed to pass the official shootout
tests](https://github.com/mozilla/rust/pull/13206).
- A nasty bug which would cause `Arc`s to leak [has been
fixed](https://github.com/mozilla/rust/pull/13211).
## New Contributors
- Benjamin Adamson
- Christopher Kendell
- Falco Hirschenberger
- Gábor Lehel
- Ivan Petkov
- Scott Jenkins
- Timothée Ravier
# Weekly Meeting
The [weekly
meeting](https://github.com/mozilla/rust/wiki/Meeting-weekly-2014-04-01)
discussed Vec versus `~[T]`, the intrinsics RFC, and StrBuf.
# RFCs
Some new RFCs:
- [Check actual type parameters against their
bounds](https://github.com/rust-lang/rfcs/pull/34)
- [Change return type of str::replace to
MaybeOwned](https://github.com/rust-lang/rfcs/pull/33)
- [Bit fields and matching](https://github.com/rust-lang/rfcs/pull/29)
- [Use different keywords for declaring tagged unions and C-style
enums](https://github.com/rust-lang/rfcs/pull/27)
- [Remove the `priv` keyword](https://github.com/rust-lang/rfcs/pull/26)
- [Unify and nest structs and
enums](https://github.com/rust-lang/rfcs/pull/24)
# Project Updates
- [rustlex](https://github.com/LeoTestard/rustlex), a syntax extension for
generating regular expression-based lexers.
- farcaller [has shown a
demo](http://www.reddit.com/r/rust/comments/21qogc/im_making_a_note_here_huge_embedded_success/)
of Rust on an ARM dev board.
- [A sample Asterisk
module](http://www.reddit.com/r/rust/comments/21tplw/writing_an_asterisk_module_using_rust/),
in Rust
- [Parallel JS
Compression](http://alan-andrade.github.io/rust/javascript/2014/03/31/parallel_js_compression.html)
in Rust.
- [A Brainfuck
Interpreter](https://github.com/tedsta/rust-brainfuck/blob/master/main.rs)
in 43 lines.
- [rustfix](https://github.com/Geal/rustfix), a simple regex-based upgrading
tool.
- [rust-iteratorcomprehensions](http://www.reddit.com/r/rust/comments/229fze/rustiteratorcomprehensions_nest_filter_and_map/),
a list comprehension syntax for iterators.
# This Week in Servo
Servo is a web browser engine written in Rust and is one of the primary test
cases for the Rust language.
In the last week, we landed 18 PRs.
## Notable additions
- Patrick Walton (along with commits from Juneyoung Cho and Hyun June Kim) landed ACID2 support in [#1988](https://github.com/mozilla/servo/pull/1988)
- ms2ger landed a new Rust upgrade, bringing us to late March in [#2041](https://github.com/mozilla/servo/pull/2041)
- Martin Robinson move the active timers for the `Window` object into a `HashMap` in [#2002](https://github.com/mozilla/servo/pull/2002)
- Manish Goregaokar made attribute getter/setters case insensitive in [#2043](https://github.com/mozilla/servo/pull/2043)
- Tetsuharu Ohzeki cleaned up `Document::create_collection` in [#2031](https://github.com/mozilla/servo/pull/2031)
- Peiyong Lin got rid of match statements in layout queries in [#2022](https://github.com/mozilla/servo/pull/2022)
- Bruno de Oliveira Abinader added support for the ASCII whitespace check in [#2032](https://github.com/mozilla/servo/pull/2032)
## New contributors
- Martin Robinson
## Meetings and Notes
In this week's
[meeting](https://github.com/mozilla/servo/wiki/Meeting-2014-03-31), we
discussed how to demo ACID2, gave a quick overview of our Q2 agenda, talked
about the tentative Servo workweek date (June 2), and wrapped up where the
rest of the layout features are at now that we have closed down the ACID2
push.
Courtesy of Manish Goregaokar, we now have a
[badge](https://badges.mozilla.org/en-US/badges/badge/Servo-Rust-upgrade) for
those brave memebers of the Servo community who participate in the Sisyphean
task of upgrading the version of Rust used in Servo. Thanks, Manish!
# Community
- [Rust vs Go](http://www.reddit.com/r/rust/comments/21m5jf/rust_vs_go/)
- [Rust is now on Facebook](https://www.facebook.com/rustlang)
- [How similar is Rust to
Go?](http://www.reddit.com/r/rust/comments/21ofma/how_similar_is_rust_to_go/)
- [Safe Synchronization Primitives and their
implementation](http://www.reddit.com/r/rust/comments/21t8n8/safe_synchronization_primitives_and_their/)
- [Simple Type-Based Alias Analysis for
Rust](http://www.reddit.com/r/rust/comments/21wu1c/simple_typebased_alias_analysis_for_rust/)
- Reminder: `~[T]` [is not going away](http://www.reddit.com/r/rust/comments/2213vw/reminder_t_is_not_going_away/)
- [Higher-kinded
polymorpihsm](http://www.reddit.com/r/rust/comments/2212j2/higherkinded_polymorphism/)
- [A More Detailed Tour of the Rust
Compiler](http://www.reddit.com/r/rust/comments/226ax6/a_more_detailed_tour_of_the_rust_compiler/)
- [Another brain dump - data
structures](http://www.reddit.com/r/rust/comments/228ou3/another_brain_dump_data_structures/)
- [Rust Me, I'm a
Developer!](http://www.reddit.com/r/rust/comments/227o5n/rust_me_im_a_developer_slides_and_commentary_from/),
(slides and commentary from a talk given at Stir Trek 2014)
|