Link [ pkgsrc | NetBSD | pkgsrc git mirror | PR fulltext-search | netbsd commit viewer ]


   
        usage: [branch:branch] [user:user] [path[@revision]] keyword [... [-excludekeyword [...]]] (e.g. branch:MAIN pkgtools/pkg)




switch to index mode

recent branches: MAIN (8h)  pkgsrc-2024Q1 (9d)  pkgsrc-2023Q4 (56d)  pkgsrc-2023Q2 (88d)  pkgsrc-2023Q3 (168d) 

2024-05-27 04:50:21 UTC Now

2018-06-24 08:05:26 UTC MAIN commitmail json YAML

Update to 1.27.0

* SunOS parts are from jperkin@.

Changelog:
Version 1.27.0 (2018-06-21)
Language

    Removed 'proc' from the reserved keywords list. This allows proc to be used as an identifer.
    The dyn syntax is now available. This syntax is equivalent to the bare Trait syntax, and should make it clearer when being used in tandem with impl Trait. Since it is equivalent to the following syntax: &Trait == &dyn Trait, &mut Trait == &mut dyn Trait, and Box<Trait> == Box<dyn Trait>.
    Attributes on generic parameters such as types and lifetimes are now stable. e.g. fn foo<#[lifetime_attr] 'a, #[type_attr] T: 'a>() {}
    The #[must_use] attribute can now also be used on functions as well as types. It provides a lint that by default warns users when the value returned by a function has not been used.

Compiler

    Added the armv5te-unknown-linux-musl target.

Libraries

    SIMD (Single Instruction Multiple Data) on x86/x86_64 is now stable. This includes arch::x86 & arch::x86_64 modules which contain SIMD intrinsics, a new macro called is_x86_feature_detected!, the #[target_feature(enable="")] attribute, and adding target_feature = "" to the cfg attribute.
    A lot of methods for [u8], f32, and f64 previously only available in std are now available in core.
    The generic Rhs type parameter on ops::{Shl, ShlAssign, Shr} now defaults to Self.
    std::str::replace now has the #[must_use] attribute to clarify that the operation isn't done in place.
    Clone::clone, Iterator::collect, and ToOwned::to_owned now have the #[must_use] attribute to warn about unused potentially expensive allocations.

Stabilized APIs

    DoubleEndedIterator::rfind
    DoubleEndedIterator::rfold
    DoubleEndedIterator::try_rfold
    Duration::from_micros
    Duration::from_nanos
    Duration::subsec_micros
    Duration::subsec_millis
    HashMap::remove_entry
    Iterator::try_fold
    Iterator::try_for_each
    NonNull::cast
    Option::filter
    String::replace_range
    Take::set_limit
    hint::unreachable_unchecked
    os::unix::process::parent_id
    process::id
    ptr::swap_nonoverlapping
    slice::rsplit_mut
    slice::rsplit
    slice::swap_with_slice

Cargo

    cargo-metadata now includes authors, categories, keywords, readme, and repository fields.
    Added the --target-dir optional argument. This allows you to specify a different directory than target for placing compilation artifacts.
    Cargo will be adding automatic target inference for binaries, benchmarks, examples, and tests in the Rust 2018 edition. If your project specifies specific targets e.g. using [[bin]] and have other binaries in locations where cargo would infer a binary, Cargo will produce a warning. You can disable this feature ahead of time by setting any of the following autobins, autobenches, autoexamples, autotests to false.
    Cargo will now cache compiler information. This can be disabled by setting CARGO_CACHE_RUSTC_INFO=0 in your environment.

Misc

    Added "The Rustc book" into the official documentation. "The Rustc book" documents and teaches how to use the rustc compiler.
    All books available on doc.rust-lang.org are now searchable.

Compatibility Notes

    Calling a CharExt or StrExt method directly on core will no longer work. e.g. ::core::prelude::v1::StrExt::is_empty("") will not compile, "".is_empty() will still compile.
    Debug output on atomic::{AtomicBool, AtomicIsize, AtomicPtr, AtomicUsize} will only print the inner type. e.g. print!("{:?}", AtomicBool::new(true)) will print true not AtomicBool(true).
    The maximum number for repr(align(N)) is now 2^29. Previously you could enter higher numbers but they were not supported by LLVM. Up to 512MB alignment should cover all use cases.

(ryoon)