./lang/rust, Safe, concurrent, practical language

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.34.2, Package name: rust-1.34.2, Maintainer: pkgsrc-users

Rust is a systems programming language focused on three goals: safety,
speed, and concurrency. It maintains these goals without having a
garbage collector, making it a useful language for a number of use cases
other languages aren't good at: embedding in other languages, programs
with specific space and time requirements, and writing low-level code,
like device drivers and operating systems.

It improves on current languages targeting this space by having a number
of compile-time safety checks that produce no runtime overhead, while
eliminating all data races. Rust also aims to achieve "zero-cost
abstractions" even though some of these abstractions feel like those of
a high-level language. Even then, Rust still allows precise control
like a low-level language would.


Required to build:
[devel/cmake] [pkgtools/cwrappers] [lang/python37]

Master sites:

SHA1: f7129b0ed8801eb11033d72c9a8d22ba58e3206c
RMD160: 5b8903967ae7689b12f57a6278b2a0abd8fde5a4
Filesize: 146411.146 KB

Version history: (Expand)


CVS history: (Expand)


   2019-05-22 11:43:15 by Jonathan Perkin | Files touched by this commit (2)
Log message:
rust: Avoid ambiguous function call.
   2019-05-21 20:00:46 by Jonathan Perkin | Files touched by this commit (1) | Package updated
Log message:
rust: Update x86_64-sun-solaris bootstrap.

This was rebuilt to avoid an issue with the rand crate.
   2019-05-14 17:48:16 by Havard Eidnes | Files touched by this commit (2) | Package updated
Log message:
Update rust to version 1.34.2.

Pkgsrc changes: basically none.

Upstream changes:

Version 1.34.2 (2019-05-14)
===========================

* [Destabilize the `Error::type_id` function due to a security
   vulnerability][60785]

[60785]: https://github.com/rust-lang/rust/pull/60785
   2019-05-09 10:46:56 by Havard Eidnes | Files touched by this commit (2) | Package updated
Log message:
Update rust to version 1.34.1.

Pkgsrc changes: basically none.  Build verified on NetBSD 8.0/i386.

Upstream changes:

Version 1.34.1 (2019-04-25)
===========================

* [Fix false positives for the `redundant_closure` Clippy lint][clippy/3821]
* [Fix false positives for the `missing_const_for_fn` Clippy lint][clippy/3844]
* [Fix Clippy panic when checking some macros][clippy/3805]

[clippy/3821]: https://github.com/rust-lang/rust-clippy/pull/3821
[clippy/3844]: https://github.com/rust-lang/rust-clippy/pull/3844
[clippy/3805]: https://github.com/rust-lang/rust-clippy/pull/3805
   2019-04-25 09:33:32 by Maya Rashish | Files touched by this commit (620)
Log message:
PKGREVISION bump for anything using python without a PYPKGPREFIX.

This is a semi-manual PKGREVISION bump.
   2019-04-16 08:53:26 by Havard Eidnes | Files touched by this commit (2)
Log message:
Bump the various bootstrap kits for NetBSD to 1.34.0.
   2019-04-14 14:49:17 by Havard Eidnes | Files touched by this commit (2)
Log message:
Sorry, messed up one patch; corrected version here.
   2019-04-14 14:42:04 by Havard Eidnes | Files touched by this commit (17) | Package updated
Log message:
Update rust to version 1.34.0.

Pkgsrc changes:
 * Bump required rust version to build to 1.33.0.
 * Adapt patches to changed file locations.
 * (I worry about 32-bit ports, now that Atomic64 apparently is First-Class;
   this has been built on NetBSD/amd64 so far)

Upstream changes:

Version 1.34.0 (2019-04-11)
==========================

Language
--------
- [You can now use `#[deprecated = "reason"]`][58166] as a shorthand for
  `#[deprecated(note = "reason")]`. This was previously allowed by mistake
  but had no effect.
- [You can now accept token streams in `#[attr()]`,`#[attr[]]`, and
  `#[attr{}]` procedural macros.][57367]
- [You can now write `extern crate self as foo;`][57407] to import your
  crate's root into the extern prelude.

Compiler
--------
- [You can now target `riscv64imac-unknown-none-elf` and
  `riscv64gc-unknown-none-elf`.][58406]
- [You can now enable linker plugin LTO optimisations with
  `-C linker-plugin-lto`.][58057] This allows rustc to compile your Rust code
  into LLVM bitcode allowing LLVM to perform LTO optimisations across C/C++ FFI
  boundaries.
- [You can now target `powerpc64-unknown-freebsd`.][57809]

Libraries
---------
- [The trait bounds have been removed on some of `HashMap<K, V, S>`'s and
  `HashSet<T, S>`'s basic methods.][58370] Most notably you no longer require
  the `Hash` trait to create an iterator.
- [The `Ord` trait bounds have been removed on some of `BinaryHeap<T>`'s basic
  methods.][58421] Most notably you no longer require the `Ord` trait to create
  an iterator.
- [The methods `overflowing_neg` and `wrapping_neg` are now `const` functions
  for all numeric types.][58044]
- [Indexing a `str` is now generic over all types that
  implement `SliceIndex<str>`.][57604]
- [`str::trim`, `str::trim_matches`, `str::trim_{start, end}`, and
  `str::trim_{start, end}_matches` are now `#[must_use]`][57106] and will
  produce a warning if their returning type is unused.
- [The methods `checked_pow`, `saturating_pow`, `wrapping_pow`, and
  `overflowing_pow` are now available for all numeric types.][57873] These are
  equivalvent to methods such as `wrapping_add` for the `pow` operation.

Stabilized APIs
---------------

#### std & core
* [`Any::type_id`]
* [`Error::type_id`]
* [`atomic::AtomicI16`]
* [`atomic::AtomicI32`]
* [`atomic::AtomicI64`]
* [`atomic::AtomicI8`]
* [`atomic::AtomicU16`]
* [`atomic::AtomicU32`]
* [`atomic::AtomicU64`]
* [`atomic::AtomicU8`]
* [`convert::Infallible`]
* [`convert::TryFrom`]
* [`convert::TryInto`]
* [`iter::from_fn`]
* [`iter::successors`]
* [`num::NonZeroI128`]
* [`num::NonZeroI16`]
* [`num::NonZeroI32`]
* [`num::NonZeroI64`]
* [`num::NonZeroI8`]
* [`num::NonZeroIsize`]
* [`slice::sort_by_cached_key`]
* [`str::escape_debug`]
* [`str::escape_default`]
* [`str::escape_unicode`]
* [`str::split_ascii_whitespace`]

#### std
* [`Instant::checked_add`]
* [`Instant::checked_sub`]
* [`SystemTime::checked_add`]
* [`SystemTime::checked_sub`]

Cargo
-----
- [You can now use alternative registries to crates.io.][cargo/6654]

Misc
----
- [You can now use the `?` operator in your documentation tests without manually
  adding `fn main() -> Result<(), _> {}`.][56470]

Compatibility Notes
-------------------
- [`Command::before_exec` is now deprecated in favor of the
  unsafe method `Command::pre_exec`.][58059]
- [Use of `ATOMIC_{BOOL, ISIZE, USIZE}_INIT` is now deprecated.][57425] As you
  can now use `const` functions in `static` variables.

[58370]: https://github.com/rust-lang/rust/pull/58370/
[58406]: https://github.com/rust-lang/rust/pull/58406/
[58421]: https://github.com/rust-lang/rust/pull/58421/
[58166]: https://github.com/rust-lang/rust/pull/58166/
[58044]: https://github.com/rust-lang/rust/pull/58044/
[58057]: https://github.com/rust-lang/rust/pull/58057/
[58059]: https://github.com/rust-lang/rust/pull/58059/
[57809]: https://github.com/rust-lang/rust/pull/57809/
[57873]: https://github.com/rust-lang/rust/pull/57873/
[57604]: https://github.com/rust-lang/rust/pull/57604/
[57367]: https://github.com/rust-lang/rust/pull/57367/
[57407]: https://github.com/rust-lang/rust/pull/57407/
[57425]: https://github.com/rust-lang/rust/pull/57425/
[57106]: https://github.com/rust-lang/rust/pull/57106/
[56470]: https://github.com/rust-lang/rust/pull/56470/
[cargo/6654]: https://github.com/rust-lang/cargo/pull/6654/
[`Any::type_id`]: https://doc.rust-lang.org/std/any/trait … od.type_id
[`Error::type_id`]: \ 
https://doc.rust-lang.org/std/error/tra … od.type_id
[`atomic::AtomicI16`]: https://doc.rust-lang.org/std/atomic/st … icI16.html
[`atomic::AtomicI32`]: https://doc.rust-lang.org/std/atomic/st … icI32.html
[`atomic::AtomicI64`]: https://doc.rust-lang.org/std/atomic/st … icI64.html
[`atomic::AtomicI8`]: https://doc.rust-lang.org/std/atomic/st … micI8.html
[`atomic::AtomicU16`]: https://doc.rust-lang.org/std/atomic/st … icU16.html
[`atomic::AtomicU32`]: https://doc.rust-lang.org/std/atomic/st … icU32.html
[`atomic::AtomicU64`]: https://doc.rust-lang.org/std/atomic/st … icU64.html
[`atomic::AtomicU8`]: https://doc.rust-lang.org/std/atomic/st … micU8.html
[`convert::Infallible`]: https://doc.rust-lang.org/std/convert/e … lible.html
[`convert::TryFrom`]: https://doc.rust-lang.org/std/convert/t … yFrom.html
[`convert::TryInto`]: https://doc.rust-lang.org/std/convert/t … yInto.html
[`iter::from_fn`]: https://doc.rust-lang.org/std/iter/fn.from_fn.html
[`iter::successors`]: https://doc.rust-lang.org/std/iter/fn.successors.html
[`num::NonZeroI128`]: https://doc.rust-lang.org/std/num/struc … oI128.html
[`num::NonZeroI16`]: https://doc.rust-lang.org/std/num/struc … roI16.html
[`num::NonZeroI32`]: https://doc.rust-lang.org/std/num/struc … roI32.html
[`num::NonZeroI64`]: https://doc.rust-lang.org/std/num/struc … roI64.html
[`num::NonZeroI8`]: https://doc.rust-lang.org/std/num/struct.NonZeroI8.html
[`num::NonZeroIsize`]: https://doc.rust-lang.org/std/num/struc … Isize.html
[`slice::sort_by_cached_key`]: \ 
https://doc.rust-lang.org/std/slice/fn. … cached_key
[`str::escape_debug`]: \ 
https://doc.rust-lang.org/std/primitive … cape_debug
[`str::escape_default`]: \ 
https://doc.rust-lang.org/std/primitive … pe_default
[`str::escape_unicode`]: \ 
https://doc.rust-lang.org/std/primitive … pe_unicode
[`str::split_ascii_whitespace`]: \ 
https://doc.rust-lang.org/std/primitive … whitespace
[`Instant::checked_add`]: \ 
https://doc.rust-lang.org/std/time/stru … hecked_add
[`Instant::checked_sub`]: \ 
https://doc.rust-lang.org/std/time/stru … hecked_sub
[`SystemTime::checked_add`]: \ 
https://doc.rust-lang.org/std/time/stru … hecked_add
[`SystemTime::checked_sub`]: \ 
https://doc.rust-lang.org/std/time/stru … hecked_sub