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.
The complete breaking change log is available
here, and you can view it
git log --no-merges --grep 'breaking-change' --since 6/21/2014 --until
6/28/2014. Some important ones:
*Tis now known as
structliterals are not allowed in expressions that precede a block.
- The type of
42is no longer int but will be inferred as normal.
- 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!
- Alex Gaynor
- Arjan Topolovec
- Conrad Kleinespel
- Michael Zhou
- Mike Capp
- Pawel Olzacki
- Robert Buonpastore
- Ruud van Asseldonk
- Zach Pomerantz
- 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
- Memory exploit mitigation
- Scoped attributes for checked arithmetic
- 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
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 testcommand added
- Error properly on ssh URLs for dependencies
- Use a custom
rm_rfto paper over Windows git funkiness
- Check for the existance of a manifest when reading packages