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