The impl period
This is it! The impl period has drawn to a close. We’ve come together as a community to do a truly epic amount of work in three months time.
If you were involved in the impl period, either as a WG lead or a contributor, please consider blogging about your experience. The program has been such a success in both mentoring and overall productivity that we will almost certainly want to do something similar in the future — so your feedback is very valuable, and talking about your experiences can help give others confidence that they can take on hard problems with the Rust community’s help.
Highlights
- There’s now a tracking issue showing the status of most major language changes slated for the next epoch.
- A new release candidate for
log
0.4
was released! -
lazy_static
1.0
was released! - Non-lexical lifetimes: two-phase-borrows landed; PR #46862 wraps everything up into a
#![feature(nll)]
and will hopefully land soon. See https://github.com/rust-lang/rust/milestone/42
Shoutouts
WG-compiler-nll
- NLL support is approaching “code complete”. Once PR #46862 lands, we will have support for
#![feature(nll)]
which can be used to start experimenting.- thanks to @spastorino, @Nashenas88, and @nikomatsakis
-
@pnkfelix landed support for “two-phase borrows”, which enable nested method calls like
self.push(self.len())
- @davidtwco landed improved error message support
-
@yoric has a pending PR that improves support for
&mut
reference variables that are overwritten (e.g., when iterating down a linked list) - @mikhael-m1 continues to work on improving support for slice patterns
- @arielb1 did a large amount of cleanup and consolidation, as well as fixing some critical bugs
WG-compiler-middle
-
@cramertj has made numerous improvements to
impl Trait
, closing a number of critical ICEs. We are aiming to achieve the “stabilization ready” subset quite soon. - @sunjay pushed further on generic associated types, implementing name and lifetime resolution.
- @gaurikholkar landed a PR with partial support for one of the lints in the in-band lifetimes proposal.
- @mikeyhew continues to push on support for methods with arbitrary self types
WG-compiler-front
- @pietroalbini landed support for nested import groups
WG-compiler-errors
-
@zackmdavis improved diagnostics around
..
within struct literals - @estebank improved a number of spans and suggestions around error messages
libz blitz
Covers 25.11.2017 - 17.12.2017.
alexcrichton/flate2-rs
- @pravic Update crate version to 1.0 in README
- @est31 Emit a RFC 1952 compatible XFL flag again
- @est31 Two little improvements
carllerche/mio
- @alkis Update README.md
- @seanmonstar add TcpStream::peek
- @ignatenkobrain bump bytes to 0.4
- @ignatenkobrain bump lazycell to 0.6
- @ignatenkobrain bump slab to 0.4
- @AndyGauge Minimum Rust 1.20
- @lanedraex Added some examples of mio::net::UdpSocket.
- @dethoter Apply a lowercase to all the mio names.
- @frehberg Document that UdpSocket::recv and recv_from do not read from the buffer
nikomatsakis/rayon
-
@Enet4 Add Update adaptor and
update()
method - @ignatenkobrain rayon-core: convert README.md to LF line break
- @obv-mikhail fix readme
- @ignatenkobrain bump lazy_static to 1
- @cuviper demo/tsp: impl Iterator needs a lifetime annotation
rust-lang-nursery/lazy-static.rs
rust-lang-nursery/log
- @Thomasdezeeuw Fix link to MetadataBuilder in RecordBuilder
- @sfackler Bump to 0.4.0-rc.1
- @sfackler Update 0.3.x for 0.4.x changes
- @sfackler Explicitly test against 1.16.0
- @sfackler Remove MaxLevelFilter in favor of a simple function
- @sfackler Make module_path, file, and line Options
sebasmagri/env_logger
- @rukai Fix spelling error
- @killercup Pad log level so output is more aligned
- @KodrAus Update reference to crate docs
- @KodrAus Upgrade to log 0.4.0-rc.1
steveklabnik/semver
steveklabnik/semver-parser
- @udoprog Test a few more edge-cases for range
- @udoprog Introduce a recursive-descent parser for ranges and comparators
Incremental Compilation
- @wesleywiser has put a lot of effort into prototyping and testing some optimizations for the dependency tracking system in #45873 and #46068.
- @CrockAgile has updated all remaining incr. comp. hashing tests in #46523.
- @Yoric has implemented background-loading of the dependency graph in #46560.
- @michaelwoerister made many small and some quite big PRs in order to make incremental compilation ready for stabilization in #46111, #46299, #46338, #46368, #46370, #46400, #46427, #46562, #46556, #46811, and #46562.
Crater
Covers 25.11.2017 - 17.12.2017.
- @alanhdu dragged crater to the present day by upgrading all dependencies in this PR.
- @SimonSapin made a step towards getting crater doing tests of Servo by updating the list of Rust GitHub repositories crater knows about. Repositories created in the last quarter that aren’t on crates.io are now covered by crater!
bindgen
- @fitzgen Bump to 0.32.1 minor release
- @alex Fixed rendering of a header in the book
- @manaskarekar Fix command_line_flags mis-generation of rust-target’s flags.
- @fitzgen repr© on enums
- @fitzgen Bump to 0.32.0
- @snewt Enable Cargo features for quickchecking crate
- @fitzgen Add a regression test for issue #816
- @snewt Quickchecking crate CLI
- @Eijebong Update lazy_static to 1.0
- @nox Remove unstable rustfmt-nightly features
- @nox Move tokens method from TranslationUnit to Cursor
- @fitzgen Remove unnecessary ci jobs
- @tamird Properly handle namespaces for enum configuration options
- @snewt Property testing with quickcheck
rust-lang-nursery/rust-cookbook Covers 24.11.2017 - 20.12.2017.
- @ludwigpacifici Add “Process child process output continuously” example
- @anna-liao Issue287: create random password from a set of allowed characters
- @anna-liao semver example: find the latest version satsifying given range
rust-lang-nursery/simd
- @gnzlbg for amazing work maintaining and improving stdsimd.
Other
- @oli-obk, @petrochenkov, and @tommyip made improvements to the UI testing harness