Hello and welcome to another issue of This Week in Rust! Rust 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! Want to get involved? We love contributions.
It's time for 0.11! The prerelease candidate is available.
What's cooking on master?
73 pull requests were merged in the last week.
Breaking Changes
The complete breaking change log is available
here, and you can view it
with git log --no-merges --grep 'breaking-change' --since 6/21/2014 --until
6/28/2014
. Some important ones:
*T
is now known as*const T
.struct
literals are not allowed in expressions that precede a block.- The type of
42
is no longer int but will be inferred as normal.
Other Changes
- In a series of many PRs, Steve has started work on a new tutorial, which is available (in draft form) here.
- Tasks are now reusable, in that one can create a task, run a closure in it, and if it did not fail, the task can be reused.
- Lints now have a plugin infrastructure, meaning your own, arbitrary lints can now be defined!
New Contributors
- Alex Gaynor
- Arjan Topolovec
- Conrad Kleinespel
- Michael Zhou
- Mike Capp
- Pawel Olzacki
- Robert Buonpastore
- Ruud van Asseldonk
- Zach Pomerantz
New RFCs
- Remove the
'
from lifetime parameters - Where clauses for more expressive bounds
- Ban private items in public APIs
- Objects of type T should be implicitly convertible to &T
- Remove cross borrowing entirely
- Clarify that removing language features requires an RFC
- New lifetime elision rules
- Efficient single inheritance
- FromLiteral
- Memory exploit mitigation
- Scoped attributes for checked arithmetic
Community Updates
- There was a meetup in San Fransisco on Thursday, about gamedev. The recording is available.
- Damien Katz seems to be recruiting for Rust developers to build a distributed object store.
- The meeting notes have a new home.
- Racer progress update, including vim support!
- rusticom, a NES emulator.
- Cargo alpha announcement
- Static checking of units in Servo
- A basic dominion simulator
- ncurses Gravity Worm clone
- dash-rust now has a nightly docset feed
- 0.11 prerelease testing
- Piston game engine update
This Week in Cargo
Cargo is the Mozilla-funded package manager slash build tool for Rust code.
Cargo is being developed by Tilde, in part due to their
previous experience building Bundler. You can find
Cargo's website at http://crates.io/. Apparently, a
startup is already using cargo.io
. Darn! The source of the website is
here currently, if you'd like to add
or change anything.
Cargo had its first 'release' on Monday, so this is the very first TWiC! As part of this, Cargo has moved to the rust-lang organization. That commit also serves as the original release. Cargo is 'pre-alpha,' so no actual releases have been tagged. Yet. Basically, Cargo is at a point where it is able to be used for basic Rust projects, and dogfooding it will help make it awesome.
Uptake has been pretty good: A search on GitHub shows a large number of code that references Cargo. Of course, some people will still use other projects to handle this, especially with Cargo's lack of features.
For a short introduction to Cargo, see my section in the new
Guide. One note that's not
in there, however: you're intended to check your Cargo.toml
file into version
control, similarly to a Makefile
.
Notable additions
Eighteen pull requets landed in this first week. Wow! Here are the bigger ones:
- Removing Vagrant
- Correct usage of DESTDIR
- adding a LICENSE (Apache/MIT, just like Rust)
- Handle misformatted versions with a nicer error message
- Fix Windows tests
- Remove 'test' binary from source tree, oops!
- Don't recompile nested deps too frequently
- Prep work for buildbot: Cargo now also uses bors
cargo test
command added- Error properly on ssh URLs for dependencies
- Use a custom
rm_rf
to paper over Windows git funkiness - Check for the existance of a manifest when reading packages
New Contributors
- o11c
- gilles-leblanc
- huonw
- mcpherrinm
- dtrebbien
- halorgium
- Arcterus
- samebchase