Hello and welcome to the second issue of This Week In Rust, a weekly overview
of Rust and its community. I'll be covering what's cooking in incoming,
meeting summaries, meetups, and anything else pertinent.
I've decided to stop using real names and use irc/github names, simply because
that is how I, and most everyone, interacts in the community.
What's cooking in incoming?
There's been a lot of breakage on incoming this week, with jemalloc breaking
32bit cross-compilation as well as random segfaults and stack corruption of
unknown cause. Some heroics by the core devs have got it mostly cleaned up,
though the tree is still rather chaotic. Meanwhile a handful of performance
improvements have landed, and achricto rewrote rusti.
There were 17 pull requests merged this week. Total issue churn (excludes pull
requests) this week was +2 (this excludes the 38 pull requests that were
closed when incoming was killed).
incoming branch annihilated
Goodbye incoming, hello master! This change, long in coming, unfortunately
closed all open PRs. Start doing your development against master rather than
incoming.
Notable additions, bugfixes, and cleanups
There's a concerted effort to remove duplicate freestanding functions where
possible.
- In 6986 bjz and jensnockert have cleaned up the numeric code some
more, adding methods for existing things like
sin, as well as adding a
bunch of interpolation stuff.
- steven_is_false added prototype dynamic library loading support in
7027, which should remove a lot of pain for people looking for
easy dynamic loading. It currently doesn't work on Windows, so if you can
sling Windows code, help would be appreciated!
- In 7029 luqmana allows having multiple impl's add static methods,
which previously did not work.
- Eridius stepped up to fix the terminfo code, colors should be
arriving to more people soon.
- SiegeLord improved the CSS used by rustdoc with huge improvements.
- sully has gotten default methods working for the most part, he is still
testing cross-crate edge casses.
- vadimcn has fixed debuginfo, and supposedly the GSoC intern is
getting started on improving it next week.
- doener has got some nice performance PRs in place.
- aatch is working on cleaning up trans. Huge thanks to him!
Breaking changes
- dbaupp and strcat continue their cleanup of the standard library, removing
the ad-hoc iterator functions where
std::iterator can replace them.
- All of the string functions that could be reasonably converted to methods
have been.
- If you're working in the stdlib, acrichto has toggled most of the lint
settings to "deny" for std/extra, so watch out.
Meetings
The Tuesday meeting talked about bblum's Effect proposal,
removing the master/incoming split, and "alloc expressions", a replacement for
@-sigils.
The consensus on the effect proposal is that it needs investigation and
wouldn't be landing in 1.0.
Discussion about master/incoming mostly centered on "master isn't always
green, how can we add better coverage to bors' tests?" Consensus seems to be
that removing incoming would be beneficial, but enabling more OS and valgrind
coverage on bors would harmfully impact development speed.
The proposed syntax for alloc expressions is new (provider) expr, with new
expr becoming the replacement for the current ~expr. This would allow
custom smart pointers. pcwalton ended the meeting with a huge cliff hanger
{% blockquote %}
I've been meaning to talk a little bit today about simplifying the
mut-borrowing story in regards to this, we may be able to effect a large
simplification on the language
Personally, I think kimundi's proposal has a lot of promise, and the
syntax is more pleasing to me. It wasn't brought up at the meeting, though.
Meetups
- The Mountain View meetup was a great success. 18 showed up. erickt is
planning for another SF Bay area meetup in July. If you want to give a
presentation, send him your proposal and how long you need to put it
together.
- Tim Chevalier will be giving a talk titled "Rust: A Friendly Introduction"
on Monday, June 17, 6-9pm in Portland. See Calagator for more
details. This is a preview of a talk he will be giving at Open Source
Bridge, also in Portland.
Notable discourse
- Still more discussion about iterators, this time focusing around
changing the semantics of the
for loop.
- Some discussion about list comprehensions, including initial
proofs-of-concept.
- Graydon explains hashing and versioning
https://botbot.me/mozilla/rust/msg/3792753/
- Principal author of 0install evaluates rust among other languages as a
python replacement
http://roscidus.com/blog/blog/2013/06/09/choosing-a-python-replacement-for-0install/
- Niko thinks about parallelism
http://smallcultfollowing.com/babysteps/blog/2013/06/11/data-parallelism-in-rust/
- http://smallcultfollowing.com/babysteps/blog/2013/06/11/on-the-connection-between-memory-management-and-data-race-freedom/
Other announcements
- bjz tells me lmath is actually fixed now, and is usable