The impl period
We’re just past the 2/3rds marker on the impl period, and still going strong!
The “impl period” consists of 37 working groups, all helping push our 2017 roadmap to completion. There’s a global Gitter channel (with IRC bridge), and dedicated channels for each working group.
This effort is intended for people with all experience levels and interests — there really is something for everyone, and the WG leads are putting a ton of work into mentoring. If you’re not sure what working group is right for you, drop by the main chatroom and introduce yourself, and we’ll help you find your way!
Highlights
- Thanks to @chrisvittal, impl Trait in argument position is now available in nightly builds!
- Thanks to @petrochenkov,
::crate::foo
paths is now landed on master. Coming to a nightly near you! - The work on non-lexical lifetimes and the MIR borrowck work continues apace. We are slowly burning down the bugs on our milestone and approaching feature and diagnostic parity with the existing borrow checker. Thanks to @vramana, @zilbuz, @KiChjang, @mikhail-m1, @zackmdavis, @Nashenas88, @spastorino, and @davidtwco for their continued efforts and PRs.
- Performance monitoring will be ready to take in the benchmarks posted to the internals post. A re-implementation of the backend and redesign of the frontend in the future branch of rustc-perf which allows for easier benchmark additions and implements a better UI for interpreting collected data is nearly complete, and is in the bugfix stage. Expect a request for community help in this area in the next couple weeks!
- Thanks to @QuietMisdreavus, rustdoc on nightly can now load in external files for documentation!
- New rustdoc grew support for alternative frontends, moved from error-chain to failure, and moved the testing framework to JMESPath.
Where help is most needed
Compiler
-
Issue 45385: permit
foo.rs
orfoo/mod.rs
to support submodules likefoo/bar.rs
- has mentoring instructions!
- haven’t heard from existing person in some time, presumably they got busy
Rand crate
-
rand-core
- Hash functions for use in deterministically seeding PRNGs
-
rand
rayon
- Help document the
rayon
crate! See the[1.0](https://github.com/rayon-rs/rayon/milestone/1)
release milestone for more details
semver-parser
Shoutouts
Compiler teams
- @cramertj put up a PR enabling in-band lifetimes — not yet landed.
- @sunjay continues to push on generic associated types.
- @gaurikholkar is working on helpful lints related to the new in-band lifetimes.
- @qmx continues to learn the intricacies of the HIR in an effort to enable elision in impl headers.
-
@bkchr has been working on enabling the use of
[?](https://github.com/rust-lang/rust/issues/43301)
in main.
Rand crate
- @pitdicker for a huge amount of help on design, review, algorithms and optimisations
- @burdges for lots of iterator-wrangled designs and other code trickery
- @newpavlov for crypto/hash insights and reviews
rust-cookbook Covers 29.10.2017 - 24.11.2017.
- @ludwigpacifici Add “Avoid discarding errors during error conversions” example
- @Lapz Adds “converting a local time to UTC time and vice versa” recipe
- @CrockAgile Add Datelike and Timelike example
- @pduzinki issue #361 fixed
- @Lapz Adds “converting a local time to UTC time and vice versa” recipe
- @cschneid Add missing log4s badge at top of Logging.md
- @cschneid Add a missing log4rs badge to intro
- @hegza Add example for checked arithmetic of chrono
- @hegza Add example for parsing into chrono::DateTime
- @ludwigpacifici Add “Redirect both stdout and stderr of child process to the same fle”
- @CJStadler Add rayon example with any and all
Incremental Compilation
- We’ve seen many improvements to the test suite from @gaurikholkar (#45941, #45987), @CrockAgile (#45951), and @fitzgen (#45950).
- @wesleywiser has been collecting information about what typical dependency graphs look like (with some surprising results) and is exploring ways of using this information to optimize our dependency tracking implementation.
- @michaelwoerister has implemented a first version of “query result caching” with more to come as soon as the known ICEs are fixed.
Cargo
-
@cswindle implemented storing tokens for different registries and being able specify a
--registry
argument withcargo login
,cargo owner
,cargo publish
,cargo search
, andcargo yank
! (rust-lang/cargo#4680) -
@cswindle implemented rules around which registries a crate may be published to based on its
Cargo.toml
and the registry’s settings for allowable registries for dependencies! (rust-lang/cargo#4568)
Docs
- @GuillaumeGomez landed several improvements to rustdoc search! (#45055, #45673)
- @GuillaumeGomez updated the “Pulldown rendering difference” warnings to be displayed even when using the default Hoedown markdown renderer (#45324)
- @QuietMisdreavus let rustdoc show when the type returned by a function implements Iterator, Read, or Write (#45039)
- @QuietMisdreavus added an option to let rustdoc print the crate version into the docs, and turned it on for the standard library docs (#44989)
- @fhartwig hid methods that took self by-value from method listings printed via Deref (#45645)
-
@federicomenaquintero landed several updates to
fmt
's docs, helping close its Standard Library Docs Checklist item! (#44855)
libz blitz Covers 01.11.2017 - 24.11.2017. flate2-rs
- @GuillaumeGomez Fix pulldown diff
- @chrisvittal Implement distinct Flush types for Compress::compress vs Decompress::decompress
mio
- @mgeisler Update version number in html_root_url
- @mgeisler Ensure html_root_url is kept in sync
- @asayers Poll::poll(): Retry select() on EINTR
- @bobbo Modify UdpSocket::connect() to take SocketAddr by ref (#667)
- @AndyGauge Index access depreciated
memmap-rs
rayon
- @cuviper ParallelExtend with map-reduce
- @pornel Note how minimum length behaves with combined iterators
- @pornel Hint for deliberate compilation error
- @ignatenkobrain bump coco to 0.3
- @cuviper Relax the error locking in collecting results
- @cuviper Release rayon 0.9.0 / rayon-core 1.3.0 / rayon-futures 0.1.0
- @cuviper cargo update
- @Kerollmops Add examples to the ParallelIterator documentation
- @mamuleanu Add documentation examples for parallel iterator methods
- @cuviper Add “parallel” iter::empty() and iter::once()
- @lvillani rename rayon::iter::internal to rayon::iter::plumbing
- @perlun Build without +nightly
- @fuine Add support for compiler tests
- @fuine Fix appveyor builds for stable channel
- @fuine WIP Improved support for visibility restrictions
- @Kimundi Switch lazy_static over to mutable statics instead of UnsafeCell on nightly
log
num_cpus
-
@GabrielMajeri Change
fallback
tofall back
env_logger
- @KodrAus Make the timestamp format more compact
- @mjkillough Allow custom timestamp formats.
- @KodrAus Add rfc3339 timestamps to default format
semver
semver-parser
bindgen
- @tamird Properly handle namespaces for enum configuration options
- @glyn Support bitfield allocation units larger than 64 bits
- @tamird Generate ptr::null rather than zero literal
- @glyn Improve documentation of the integration tests
- @glyn Avoid bitfield getters and setters accessing memory beyond “self”
- @roblabla Remove unnecessary flag from rustfmt invocation
- @seemyvest Don’t unwrap header metadata
Crater
- @colinbankier Implemented a feature request to improving QoL for crater run reviewers - https://github.com/rust-lang-nursery/crater/pull/152.
RLS
VSCode
rustfmt