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
|
Title: This Week in Rust 7
Date: 2013-07-21 09:36
Category: This Week in Rust
Hello and welcome to the seventh issue of *This Week in Rust*, a weekly
overview of Rust and its community. Things are calming down quite a bit, in
that nothing extraordinarily exciting is happening. Lots of great work is
being done everywhere, and good progress is being made in both bugfixes and
cleanup. It has been a good week!
<!-- more -->
# What's cooking on master?
Issue churn this week was -15. A total of 59 PRs were merged.
## Breaking changes
- **[The semantics of `range_rev` have
changed](https://github.com/mozilla/rust/pull/7684). This will break your
code without warning.** It is now, to use [interval
notation](https://en.wikipedia.org/wiki/Interval_%28mathematics%29#Notations_for_intervals),
`(hi, lo]` rather than `[hi, lo)`.
- `pub extern` and `priv extern` [have been
removed](https://github.com/mozilla/rust/pull/7896) from the language. This
matches the previous similar change to `impl`. Place the visibility
qualifier (`pub`/`priv`) on each item in the `extern` block instead.
- `&T` (besides `&'static T`) is [no longer allowed in
`@T`](https://github.com/mozilla/rust/pull/7894).
- The `ThreadPerCore` spawn mode [has been
removed](https://github.com/mozilla/rust/pull/7856), as it doesn't make
sense with the new scheduler.
- The `consume` methods of the hash containers [has been replaced with an
external iterator](https://github.com/mozilla/rust/pull/7833). The method
name is the same, though.
- Moved values can [no longer be captured
twice](https://github.com/mozilla/rust/pull/7849). This was a blatant
soundness issue.
- The `swap_unwrap` method of Option has been [renamed to
`take_unwrap`](https://github.com/mozilla/rust/pull/7831).
- `debug!` statements [generate no
code](https://github.com/mozilla/rust/pull/7822) unless you pass `--cfg
debug` to `rustc`. This should help keep code size down and make your
programs a (tiny bit) faster. Now you don't have to feel bad about having
`debug!` in hot code.
- The `mutate_values` method of HashMap [has been
removed](https://github.com/mozilla/rust/pull/7815).
## Notable library additions, bugfixes, and cleanup
- An iterator adaptor was added that [endlessly repeats the iterator it is
called on](https://github.com/mozilla/rust/pull/7882).
- Generated test runners [now have a
`-h`/`--help`](https://github.com/mozilla/rust/pull/7840) option.
- Metric capturing + racheting [has been
added](https://github.com/mozilla/rust/pull/7829) for benchmarks.
- `local_data` [now has a
`get_mut`](https://github.com/mozilla/rust/pull/7841) function.
- `extra::semver` [has been updated to SemVer
2.0.0](https://github.com/mozilla/rust/pull/7726).
- Consuming iterators [have been
added](https://github.com/mozilla/rust/pull/7806) for the hash structures.
- `extra::ringbuf` [now implements
DoubleEndedIterator](https://github.com/mozilla/rust/pull/7808).
- `Eq` [now has a default implementation of
`ne`](https://github.com/mozilla/rust/pull/7799).
- `extra::term` [now knows how to handle more
attributes](https://github.com/mozilla/rust/pull/7716).
- More containers [implement
FromIter](https://github.com/mozilla/rust/pull/7788). This means you can use
`.collect()` to gather the elements from an iterator into those containers.
- [Task killing, failure, and exit code
propagation](https://github.com/mozilla/rust/pull/7858) in the new runtime
has been implemented.
## Notable compiler additions, bugfixes, and cleanup
- `syntax::attr` [has been
modernized](https://github.com/mozilla/rust/pull/7902).
- [Tons of debuginfo work](https://github.com/mozilla/rust/pull/7710) from mw
this week!
- Trait data structures [have been cleaned
up](https://github.com/mozilla/rust/pull/7886), as well as a default method
fix.
- Intrinsics [now have much better
codegen](https://github.com/mozilla/rust/pull/7851).
- A `no_implicit_prelude` attribute [has been
added](https://github.com/mozilla/rust/pull/7844), which prevents prelude
injection in the module heirarchy starting at the item which that attribute
is added to.
- C-style enum variants are [now
allowed](https://github.com/mozilla/rust/pull/7827) in `[T, ..n]`
expressions.
- All language items are [now
optional](https://github.com/mozilla/rust/pull/7828). The compiler emits an
error if a language item is used but not provided.
- The removal of `spanned<T>` [has
begun](https://github.com/mozilla/rust/pull/7826).
- Headers [have been removed](https://github.com/mozilla/rust/pull/7816) for
`~str` and `~[T]` where `T` is unmanaged.
## Documentation, tools, and other stuff
- rustpkg [now works when you don't give it a package
ID](https://github.com/mozilla/rust/pull/7419). It builds/installs/cleans
the package in the current directory, *iff* the current directory is in a
rustpkg workspace.
- `--quiet` is [no longer passed](https://github.com/mozilla/rust/pull/7847)
to git during submodule operations, so you can see the progress of the huge
LLVM download.
- Documentation of the [lint-controlling
attributes](https://github.com/mozilla/rust/pull/7823) was added.
- rustpkg [now handles cloning from local git
repos](https://github.com/mozilla/rust/pull/7681).
- The GtkSourceView highlighting file [was
improved](https://github.com/mozilla/rust/pull/7795).
# Meetings
The [Tuesday
meeting](https://github.com/mozilla/rust/wiki/Meeting-weekly-2013-07-16)
discussed nothing at all of importance.
# Discussion + Blog posts
- [A pure-Rust memory allocator
(malloc)](http://www.reddit.com/r/rust/comments/1ibd48/proofofconcept_pure_rust_malloc_implementation/)
- [mw's fourth weekly
update](http://michaelwoerister.github.io/2013/07/12/Status-Update-4.html).
- [mw's fifth weekly
update](http://michaelwoerister.github.io/2013/07/20/Status-Update-5.html)
- [Discussion and slides from Niko's presentation at the Northeastern
University Programming Language
Seminar](http://www.reddit.com/r/rust/comments/1imeac/guaranteeing_memory_safety_in_rust_niko_matsakis/)
- [A nightly Ubuntu
PPA](http://thread.gmane.org/gmane.comp.lang.rust.devel/4829)
- [SIMD
discussion](http://www.reddit.com/r/rust/comments/1igvye/vision_for_rust_simd/)
- [Rust on bare metal
ARM](https://mail.mozilla.org/pipermail/rust-dev/2013-July/004841.html)
- [dherman's OSCON
presentation](http://www.oscon.com/oscon2013/public/schedule/detail/28741)
|