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
|
Title: This Week in Rust 43
Date: 2014-03-29 21:56
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).
The 0.10 release will likely be this week. 3 months from 0.9 is April 3.
<!-- more -->
# What's cooking on master?
63 pull requests were merged this week.
## Breaking Changes
- The `sync` crate [has seen some significant
cleanup](https://github.com/mozilla/rust/pull/12900). In particular,
`RWArc<T>` and `MutexArc<T>` have been removed. `Mutex<T>` and `RWLock<T>`
have been introduced, and can be used as `Arc<Mutex<T>>` and
`Arc<RWLock<T>>` to replace `RWArc` and `MutexArc`. There are some other
minor changes, see the pull request.
- Taking a reference to a static whose type contains an `Unsafe<T>` somewhere
[is now forbidden](https://github.com/mozilla/rust/pull/13083).
- `Extendable` and `FromIterator` [now take their argument
by-value](https://github.com/mozilla/rust/pull/13039).
- The crate map [has been
removed](https://github.com/mozilla/rust/pull/13117), and with it a
significant amount of complexity. As a consequence of its removal,
`green::start` now takes the event loop it should use as an argument rather
than looking in the crate map. [The documentation has an
example](http://static.rust-lang.org/doc/master/green/index.html#starting-with-libgreen)
- The syntax for bounds on generic paths [has
changed](https://github.com/mozilla/rust/pull/13079) from
`Foo:Bound<Params>` to `Foo<Params>:Bound`.
- The default `Send` bound on trait objects [has been
removed](https://github.com/mozilla/rust/pull/13050).
- The `serialize` infrastructure [now supports error reporting via
`Result`](https://github.com/mozilla/rust/pull/13107).
- `Pod` [has been renamed](https://github.com/mozilla/rust/pull/13160) to
`Copy`.
- The attribute syntax [has
changed](https://github.com/mozilla/rust/pull/13162). Rather than saying
`#[crate_type = "bin"];` (with a significant semicolon), you say
`#![crate_type = "bin"]` (no semicolon).
- `collections::List` [has been
removed](https://github.com/mozilla/rust/pull/13183). Use a vector, or
`collections::DList` if you really want a linked list. Persistent data
structures will live in a different crate than `collections`.
## Other Changes
- A `fill` method [has been added](https://github.com/mozilla/rust/pull/13049)
to `Reader`, for reading an exact amount of bytes or erroring.
- As
[discussed](https://mail.mozilla.org/pipermail/rust-dev/2014-January/007924.html)
on the mailing list some months ago, [synchronous, bounded
channels](https://github.com/mozilla/rust/pull/12991) have been added.
- `Share`'s documentation [has been
expanded](https://github.com/mozilla/rust/pull/13070).
- A straggler from the doc sprint, [a few hundred lines of
documentation](https://github.com/mozilla/rust/pull/13135) have been added
to `std`.
- Some handy methods [have been
added](https://github.com/mozilla/rust/pull/12780) to `Json` to make
searching and selecting elements from JSON objects easier.
- There's a [new warn-by-default
lint](https://github.com/mozilla/rust/pull/13108) for deriving traits on
types which contain raw pointers.
- Many confusing lifetime-related ICE's [have been
fixed](https://github.com/mozilla/rust/pull/13157). This is good progress
towards closing [the notorious issue
5121](https://github.com/mozilla/rust/issues/5121).
- We can now [emit debuginfo for
`static`s](https://github.com/mozilla/rust/pull/13143). Yay debuginfo!
## New Contributors
- Davis Silverman
- Noam Gagliardi Rabinovich
- Sean McArthur
# Weekly Meeting
The [meeting this
week](https://github.com/mozilla/rust/wiki/Meeting-weekly-2014-03-25)
discussed various things: attribute parsing in macros, opt-in built-in traits,
SIMD, allowing square brackets in macro invocation, allowing bounds on type
parameters in structs, private fields by default, the fate of
`collections::List`, and bounds on trait paths.
# RFCs
- [Smaller refcounts](https://github.com/rust-lang/rfcs/pull/23)
- [Deserializing to a stream of tagged
values](https://github.com/rust-lang/rfcs/pull/22)
- [Allow bounds on all type
parameters](https://github.com/rust-lang/rfcs/pull/20)
# Project Updates
- [rust-highlight](https://github.com/KokaKiwi/rust-highlight) can be used to
highlight Rust code in LaTeX, HTML, and JSON.
- [rust-tabular](https://github.com/arjantop/rust-tabular), a library for
handling delimiter-separated values (commas, tabs, or any other character),
as well as fixed columns of fixed width.
- [rust-csv](https://github.com/BurntSushi/rust-csv), a CSV library which
implements `Encoder` and `Decoder` for `serialize` support.
# 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 two weeks, we landed 33 PRs.
## Notable additions
- Lars Bergstrom landed a Rust upgrade, bringing us to late February in
[#1934](https://github.com/mozilla/servo/pull/1934)
- ms2ger cleaned up some sketchy use of unsafe native pointers, wrapping them
in a `JS<T>` in [#1915](https://github.com/mozilla/servo/pull/1915)
- Matt Brubeck named the WorkQueue tasks so that we'll know where failure is
coming from during parallel layout in
[#1977](https://github.com/mozilla/servo/pull/1977)
## New contributors
- Matt Brubeck (mbrubeck)
## Meetings and Notes
Patrick Walton authored and combined the final set of changes required to get
Servo [passing ACID2](https://twitter.com/pcwalton/status/449299846873108480)!
Matthew Brubeck has joined the Servo team full-time, coming over from the
Firefox Metro project.
In the meeting [two weeks
ago](https://github.com/mozilla/servo/wiki/Meeting-2014-03-17), we discussed
the Rust upgrade, z-index support, and ACID2. In the most recent
[meeting](https://github.com/mozilla/servo/wiki/Meeting-2014-03-24), we
provided an update on ACID2 and the status of Servo on Android.
# Other Announcements
- [Official Installers and
Nightlies](https://mail.mozilla.org/pipermail/rust-dev/2014-March/009223.html)
|