欢迎来到这周的《Rust一周精彩回顾》,Rust是一种追求安全性、并发性和速度的系统语言。这是来自 http://this-week-in-rust.org /网站关于Rust的新的一周博文、活动、版本开发、贡献者的集锦。在此,我们转载了过来,以便国内Rust语言爱好者学习。
精彩博文:
- Announcing Rust 1.2
- Writing Unsafe and Low-Level Code in Rust
- Creating a PHP Extension to Rust
- Objective-C from Rust: objc_msgSend
- A Simple Web App in Rust, Part 4 -- CLI Option Parsin
- [video] The Rust Programming Language from Google TechTalks
新版发布和项目更新:
- Check out the new unofficial German-language Rust forums
- rust-cpp . Embed C++ directly inside your rust code.
- rustty . A terminal UI library.
- coalesce-rs . Combine disjoint types that share common traits.
- mdBook . Create a book from markdown files.
- Serde 0.5.0 adds support for bincode .
- Cargo Crusader 0.1 . A tool for validating changes to APIs prior to publishing.
新的Rust贡献者名单:
- Ivan Jager
- Jan Likar
- Marko Lalic
- Matt Friedman
- Mike Marcacci
- Ruby
- Tim Neumann
子团队报告:
每周 Rust团队 会发布关于项目进度的报告, 这里 是这周报告的集锦。
Libs团队
Full report
上周的决定:
- RFC PR #1184 : RFC: Stabilize the #![no_std] attribute
- Merged
- RFC PR #1183 : RFC: Allow changing the default allocator
- Merged
- RFC PR #770 : io error handling design
- Closed
- RFC PR #980 : read_exact
- Merged
- RFC PR #1194 : RFC: Add item recovery collection APIs
- To be merged, pending last bits of bikeshedding
- PR #26818 : Stabilize duration (with renamings)
- Merge, need to decide about 1.3 backport
我们愿意让大家关注以下两个RFCs政策:
- PR #1242 : RFC: policy for rust-lang crates
- PR #1224 : Update the RFC process with sub-teams, amongst other things.
还有Rust中有关catch_panic 和安全案例的RFC:
- PR #1236 : RFC: Stabilize catch_panic
这周的RFCs的讨论进入了最终阶段:
- FCP PR #1195 : ordered query API
- FCP PR #1192 : RFC for inclusive ranges with ...
Lang团队
Full report
以下是在最终讨论阶段提出的RFCs:
- PR #886 : Permit
#[must_use]
attributes on functions as well as types. This allows for functions whose return value should not be ignored even if the type of that value is unexceptional (e.g., the ok()
method of Result
). - PR #890 : Custom preludes. This RFC proposes an extension that allows crates to define their own preludes. This can be used to have common names available throughout a crate without forcing them to be explicitly imported everywhere. This is particularly useful when combined with the convention of having external crates define a
pub mod prelude
that downstream crates can import into their own local preludes. While clearly convenient, there were some concerns raised that this will give rise to multiple dialects of Rust. - PR #953 : This defines traits to support
+=
and other operators, closing a gap in our operator overloading support. The traits take the LHS via an &mut
reference to permit in-place updates, take the RHS by value, and do not require that the Add
trait also be implemented. - PR #1135 : This PR permits raw fat pointers (e.g.,
*[i32]
or *Trait
) to be compared, just like raw thin pointer (e.g., *i32
). The semantics are to compare both the pointer itself and any accompanying data (e.g., the length of the slice). - PR #1189 : This PR simply corrects typos.
以下两个被接受:
- PR #1214 : Clarify (and improve) rules for projections and well-formedness.
- PR #1219 : Allow aliasing imports when importing as a group.
最终,我愿意把注意力放在这个RFC上:
- PR #1238 : Nonparametric dropck. This RFC simplifies the dropck rules to close some soundness holes and make room for specialization. The change is expected to cause little to no breakage in practice, e.g., a crater run found no affected crates, but it nonetheless affects a core component of the language.
Compiler 团队
Full report
@arielb1 opened PR #27551 , which changes how structs and enums are represented in the compiler, replacing various hashtables with a single AdtDef
struct. This is a reimplementation of a similar PR by @aatch. In addition to cleaner code, it results in a small performance boost (approximately 5%).
There has been some progress towards removing drop flags. @pnkfelix landed his "nonzeroing move hints" branch ( PR #26173 ). Unfortunately, some critical bugs were found shortly thereafter. The fix ( PR #27413 ) is not yet ready.
近期的Rust活动:
- 8/10. Seattle .
- 8/11. San Diego .
- 8/18. Sydney .
- 8/19. Los Angeles .
- 8/20. Berlin .
- 8/26. Columbus Rust Society .
- 8/32. Paris .
工作机会(关于RustProject):
- Student Research Assistant in Karlsruhe, Germany for embedded development on ARM stm32. Contact Oliver Schneider
原文地址: This Week in Rust 91 (整理/何抒灿 责编/钱曙光)
上周回顾: Rust一周集锦(一):《高级Rust编程语言》、新增13名贡献者
编辑推荐:
- Rust 开发技术学习路线 (满满的都是干货)
- 【Rust技术公开课】港哥Elton自主开发的协程库解析 (本周四晚上8点,约?)
- 王川:Rust与异步并发的那些事儿
- Mike:Rust是近15年最佳工程实践的集大成者
- 专访Elton:浅谈C++、Go的挑战者Rust
- 专访资深程序员庄晓立:我为什么要选择Rust?
更多 Rust 信息和交流,请加入 CSDN Rust 学习交流群,大牛在线分享、讲课、视频等等,不容错过。请加群主微信 qshuguang2008 或扫描下方二维码申请入群,需备注:实名+公司名+Rust。
极客头条Rust子社区 ,欢迎你来探讨和交流,直达地址: http://geek.csdn.net/forum/8