Rust是一个由Mozilla主导开发的通用、编译型编程语言。它的设计准则为“安全,并发,实用”,支持函数式,并发式,过程式以及面向对象的编程风格。Rust 的设计目标之一,是要使设计大型的互联网客户端和服务器的任务变得更容易。因此更加强调安全性、内存配置、以及并发处理等方面的特性。在性能上,具有额外安全保证的代码会比 C++ 慢一些,但是如果以 C++ 也手工提供保证的情况下,则两者性能上是相似的。
更新日志
- The compiler’s dead_code lint now accounts for type aliases.
- Uninhabitable enums (those without any variants) no longer permit wildcard match patterns
- Clean up semantics of self in an import list
- Self may appear in impl headers
- Self may appear in struct expressions
编译器
- rustc now supports –emit=metadata, which causes rustc to emit a .rmeta file containing only crate metadata. This can be used by tools like the Rust Language Service to perform metadata-only builds.
- Levenshtein based typo suggestions now work in most places, while previously they worked only for fields and sometimes for local variables. Together with the overhaul of “no resolution”/”unexpected resolution” errors (#38154) they result in large and systematic improvement in resolution diagnostics.
- Fix transmute::<T, U> where T requires a bigger alignment than U
- rustc: use -Xlinker when specifying an rpath with ‘,’ in it
- rustc no longer attempts to provide “consider using an explicit lifetime” suggestions. They were inaccurate.
- [T]::binary_search and [T]::binary_search_by_key now take their argument by Borrow parameter
- All public types in std implement Debug
- IpAddr implements From<Ipv4Addr> and From<Ipv6Addr>
- Ipv6Addr implements From<[u16; 8]>
- Ctrl-Z returns from Stdin.read() when reading from the console on Windows
- std: Fix partial writes in LineWriter
- std: Clamp max read/write sizes on Unix
- Use more specific panic message for &str slicing errors
- TcpListener::set_only_v6 is deprecated. This functionality cannot be achieved in std currently.
- writeln!, like println!, now accepts a form with no string or formatting arguments, to just print a newline
- Implement iter::Sum and iter::Product for Result
- Reduce the size of static data in std_unicode::tables
- char::EscapeDebug, EscapeDefault, EscapeUnicode, CaseMappingIter, ToLowercase, ToUppercase, implementDisplay
- Duration implements Sum
- String implements ToSocketAddrs
- The cargo check command does a type check of a project without building it
- crates.io will display CI badges from Travis and AppVeyor, if specified in Cargo.toml
- crates.io will display categories listed in Cargo.toml
- Compilation profiles accept integer values for debug, in addition to true and false. These are passed to rustc as the value to -C debuginfo
- Implement cargo –version –verbose
- All builds now output ‘dep-info’ build dependencies compatible with make and ninja
- Build all workspace members with build –all
- Document all workspace members with doc –all
- Path deps outside workspace are not members
- rustdoc has a –sysroot argument that, like rustc, specifies the path to the Rust implementation
- The armv7-linux-androideabi target no longer enables NEON extensions, per Google’s ABI guide
- The stock standard library can be compiled for Redox OS
- Rust has initial SPARC support. Tier 3. No builds available.
- Rust has experimental support for Nvidia PTX. Tier 3. No builds available.
- Fix backtraces on i686-pc-windows-gnu by disabling FPO
- Uninhabitable enums (those without any variants) no longer permit wildcard match patterns
- In this release, references to uninhabited types can not be pattern-matched. This was accidentally allowed in 1.15.
- The compiler’s dead_code lint now accounts for type aliases.
- Ctrl-Z returns from Stdin.read() when reading from the console on Windows
- Clean up semantics of self in an import list
下载
本站原创,转载时保留以下信息:
本文转自:深度开源(open-open.com)
原文地址:http://www.open-open.com/news/view/406fa7f
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/12030.html