166 lines
9.6 KiB
Markdown
166 lines
9.6 KiB
Markdown
Title: This Week in Rust 126
|
||
Number: 126
|
||
Date: 2016-04-11
|
||
Category: This Week in Rust
|
||
|
||
Hello and welcome to another issue of *This Week in Rust*!
|
||
[Rust](http://rust-lang.org) is a systems language pursuing the trifecta:
|
||
safety, concurrency, and speed. This is a weekly summary of its progress and
|
||
community. Want something mentioned? Tweet us at [@ThisWeekInRust](https://twitter.com/ThisWeekInRust) or [send us an
|
||
email](mailto:corey@octayn.net?subject=This%20Week%20in%20Rust%20Suggestion)!
|
||
Want to get involved? [We love
|
||
contributions](https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md).
|
||
|
||
*This Week in Rust* is openly developed [on GitHub](https://github.com/cmr/this-week-in-rust).
|
||
If you find any errors in this week's issue, [please submit a PR](https://github.com/cmr/this-week-in-rust/pulls).
|
||
|
||
This week's edition was edited by: [Vikrant](https://github.com/nasa42) and [llogiq](https://github.com/llogiq).
|
||
|
||
# Updates from Rust Community
|
||
|
||
## News & Blog Posts
|
||
|
||
* [Dealing with multiple error types in Rust](https://jadpole.github.io/rust/many-error-types).
|
||
* [Memory leaks are memory safe](https://huonw.github.io/blog/2016/04/memory-leaks-are-memory-safe/). Understanding memory safety and memory leaks.
|
||
* [You probably meant to use `.chars().count()`](http://brandonio21.com/2016/04/rust-you-probably-meant-to-use-chars-count/). How to get the "length" of a string.
|
||
* [Writing Varnish Cache modules (VMOD) in Rust](http://info.varnish-software.com/blog/writing-vmods-in-rust).
|
||
* [Understanding the performance characteristics of regex crate](https://github.com/rust-lang-nursery/regex/blob/master/PERFORMANCE.md).
|
||
* [machine learning] [Naive Bayes Classifiers in Rust](https://athemathmo.github.io/2016/04/08/naive-bayes-rusty-machine.html).
|
||
* [This week in Servo 58](https://blog.servo.org/2016/04/04/twis-58/).
|
||
|
||
## Notable New Crates & Project Updates
|
||
|
||
* [токамак](https://vertexclique.github.io/tokamak/). Rust IDE package for Atom.
|
||
* [fancy-regex](https://github.com/google/pulldown-cmark/tree/master/fancy-regex). A pure-Rust hybrid regular expression implementation.
|
||
* [RustPrimer](https://github.com/rustcc/RustPrimer). Rust primer for beginners (in Chinese). English translations underway.
|
||
* [Screech](https://github.com/trevp/screech). Implementation of the Noise Protocol Framework in Rust.
|
||
* [Rusty Secrets](https://github.com/freedomofpress/RustySecrets). Rust implementation of threshold Shamir secret sharing.
|
||
* [Rustler](https://github.com/hansihe/Rustler). Safe Rust bridge for creating Erlang NIF functions.
|
||
|
||
# Crate of the Week
|
||
|
||
This week's Crate of the Week is [gcc](https://crates.io/crates/gcc), a crate to easily use the local C compiler, which makes FFI with a build script a breeze. Thanks to [Ulrik Sverdrup](https://users.rust-lang.org/users/bluss) for the suggestion!
|
||
|
||
[Submit your suggestions for next week][submit_crate]!
|
||
|
||
[submit_crate]: https://users.rust-lang.org/t/crate-of-the-week/2704
|
||
|
||
# Call for Participation
|
||
|
||
Always wanted to contribute to open-source projects but didn't know where to start?
|
||
Every week we highlight some tasks from the Rust community for you to pick and get started!
|
||
|
||
Some of these tasks may also have mentors available, visit the task page for more information.
|
||
|
||
* [easy] [rust: Add error explanations for all error codes](https://github.com/rust-lang/rust/issues/32777).
|
||
* [easy] [rust: rustbuild seems to deal badly with poor internet connections](https://github.com/rust-lang/rust/issues/32834).
|
||
* [medium] [regex: Decrease memory usage of DFA with variable width delta encoding of instruction pointers](https://github.com/rust-lang-nursery/regex/issues/199).
|
||
* [less easy] [servo: Store a `Box<Iterator>` instead of `Box<CollectionFilter>` in `HTMLCollection`](https://github.com/servo/servo/issues/10477).
|
||
* [easy] [токамак: Test cases for CI](https://github.com/vertexclique/tokamak/issues/16).
|
||
* [easy] [rexiv2: Results should likely use our own aliased Error (and Result?) type](https://github.com/felixc/rexiv2/issues/16).
|
||
* [easy] [rexiv2: Provide access to full XML XMP packet](https://github.com/felixc/rexiv2/issues/14).
|
||
|
||
If you are a Rust project owner and are looking for contributors, please submit tasks [here][guidelines].
|
||
|
||
[guidelines]: https://users.rust-lang.org/t/twir-call-for-participation/4821
|
||
|
||
# Updates from Rust Core
|
||
|
||
89 pull requests were [merged in the last week][merged].
|
||
|
||
[merged]: https://github.com/issues?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2016-04-04..2016-04-11
|
||
|
||
## Notable changes
|
||
|
||
* [Faster Overlap checking](https://github.com/rust-lang/rust/pull/32748) (fixed a rustc perf regression)
|
||
* [Arc::downgrade no longer loops infinitely](https://github.com/rust-lang/rust/pull/32745)
|
||
* [Function calls no longer need to store all returns on stack](https://github.com/rust-lang/rust/pull/32738)
|
||
* ['Consider the semicolon' help now more helpful](https://github.com/rust-lang/rust/pull/32710)
|
||
* [Specialize `==` for `[T]` and `[u8]` to `memcmp`](https://github.com/rust-lang/rust/pull/32699) (also `Ord`, `PartialOrd`)
|
||
* [File IO buffer size now 8K](https://github.com/rust-lang/rust/pull/32695)
|
||
* [AST now can represent `pub(restricted)`](https://github.com/rust-lang/rust/pull/32688)
|
||
* [Prepare private-in-public checker for `pub(restricted)`](https://github.com/rust-lang/rust/pull/32674)
|
||
* [Simplified AST `StructField`](https://github.com/rust-lang/rust/pull/32682)
|
||
* [Restrict atomic intrinsics to integers](https://github.com/rust-lang/rust/pull/32647)
|
||
* [Save/Load the dependency graph for incremental compilation](https://github.com/rust-lang/rust/pull/32016)
|
||
* [Release notes for 1.8](https://github.com/rust-lang/rust/pull/32810) (gearing up for release)
|
||
|
||
## New Contributors
|
||
|
||
* Timon Van Overveldt
|
||
* Tom Tromey
|
||
* Varun Vats
|
||
* vlastachu
|
||
|
||
## Approved RFCs
|
||
|
||
Changes to Rust follow the Rust [RFC (request for comments)
|
||
process](https://github.com/rust-lang/rfcs#rust-rfcs). These
|
||
are the RFCs that were approved for implementation this week:
|
||
|
||
* [RFC 1513: Stabilize implementing panics as aborts](https://github.com/rust-lang/rfcs/pull/1513).
|
||
* [RFC 1444: Provide native support for C-compatible unions, defined via a contextual keyword `union`](https://github.com/rust-lang/rfcs/pull/1444).
|
||
* [RFC 1398: Add a standard allocator interface and support for user-defined allocators](https://github.com/rust-lang/rfcs/pull/1398).
|
||
* [Amend RFC 550 with misc. follow set corrections](https://github.com/rust-lang/rfcs/pull/1494).
|
||
|
||
## Final Comment Period
|
||
|
||
Every week [the team](https://rust-lang.org/team.html) announces the
|
||
'final comment period' for RFCs and key PRs which are reaching a
|
||
decision. Express your opinions now. [This week's FCPs][fcp] are:
|
||
|
||
[fcp]: https://github.com/rust-lang/rfcs/labels/final-comment-period
|
||
|
||
* [Add `#[repr(pack = "N")]`](https://github.com/rust-lang/rfcs/pull/1399).
|
||
* [Feature gate extern fn methods](https://github.com/rust-lang/rfcs/pull/1429).
|
||
* [Allow Drop types in statics/const functions](https://github.com/rust-lang/rfcs/pull/1440).
|
||
* [Add a new crate-type, rdylib](https://github.com/rust-lang/rfcs/pull/1510).
|
||
* [Add workspaces to Cargo](https://github.com/rust-lang/rfcs/pull/1525).
|
||
* [Stabilize the `-C overflow-checks` command line argument](https://github.com/rust-lang/rfcs/pull/1535).
|
||
* [Add more integer atomic types](https://github.com/rust-lang/rfcs/pull/1543).
|
||
* [Add a generic `Atomic<T>` type](https://github.com/rust-lang/rfcs/pull/1505).
|
||
* [Remove some kinds of doc comments](https://github.com/rust-lang/rfcs/pull/1373).
|
||
* [Amend RFC 1228 with operator fixity and precedence](https://github.com/rust-lang/rfcs/pull/1319).
|
||
|
||
## New RFCs
|
||
|
||
* [Support code generators with source maps and multiple source directories](https://github.com/rust-lang/rfcs/pull/1573).
|
||
* [Introduce more conventions around documenting Rust projects](https://github.com/rust-lang/rfcs/pull/1574).
|
||
* [Add a `vis` matcher to `macro_rules!` that matches valid visibility annotations](https://github.com/rust-lang/rfcs/pull/1575).
|
||
* [Add a `literal` fragment specifier for `macro_rules!` patterns that matches literal constants](https://github.com/rust-lang/rfcs/pull/1576).
|
||
* [Rust memory model](https://github.com/rust-lang/rfcs/pull/1578).
|
||
|
||
# Upcoming Events
|
||
|
||
* [4/12. (San Diego) Eat– Drink– Rust! Downtown Rust Meetup](http://www.meetup.com/San-Diego-Rust/events/229907308/).
|
||
* 4/13. Introduction to Rust, The Arts and Science University of Chiapas.
|
||
* 4/13. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
|
||
* [4/13. Rust Boulder/Denver Monthly Meeting](http://www.meetup.com/Rust-Boulder-Denver/).
|
||
* [4/14. Columbus Rust Society](http://www.meetup.com/columbus-rs/).
|
||
* [4/15. Frankfurt/Main Rust Lint Workshop](http://www.meetup.com/de-DE/Rust-Rhein-Main/events/229564640/?eventId=229564640)
|
||
* [4/18. Rust Paris](http://www.meetup.com/Rust-Paris).
|
||
* [4/20. OpenTechSchool Berlin: Rust Hack and Learn](http://www.meetup.com/opentechschool-berlin/).
|
||
|
||
If you are running a Rust event please add it to the [calendar] to get
|
||
it mentioned here. Email [Erick Tryzelaar][erickt] or [Brian
|
||
Anderson][brson] for access.
|
||
|
||
[calendar]: https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com
|
||
[erickt]: mailto:erick.tryzelaar@gmail.com
|
||
[brson]: mailto:banderson@mozilla.com
|
||
|
||
# fn work(on: RustProject) -> Money
|
||
|
||
* [Senior full stack developer](http://onesignal.applytojob.com/apply/gpSzt4/Senior-Full-Stack-Developer) at OneSignal.
|
||
* [PhD and postdoc positions](http://plv.mpi-sws.org/rustbelt/) at MPI-SWS.
|
||
|
||
*Tweet us at [@ThisWeekInRust](https://twitter.com/ThisWeekInRust) to get your job offers listed here!*
|
||
|
||
# Quote of the Week
|
||
|
||
*No quote was selected for QotW.*
|
||
|
||
[Submit your quotes for next week][submit]!
|
||
|
||
[submit]: http://users.rust-lang.org/t/twir-quote-of-the-week/328
|