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

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

Branch: CURRENT, Version: 1.36.0, Package name: rust-1.36.0, 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]

Package options: rust-llvm

Master sites:

SHA1: c9e5473d342e49440a8cc30f72e2605325f2cf95
RMD160: 9a845895fcca685cd61b66b4c543e96132dc8933
Filesize: 151018.676 KB

Version history: (Expand)

CVS history: (Expand)

   2019-07-16 16:23:04 by Havard Eidnes | Files touched by this commit (2) | Package updated
Log message:
Bump the NetBSD/aarch64 bootstrap to 1.36.0.
Please note: this bootstrap is built against 8.99.50, i.e. fairly
recent -current.  This should make it possible to build rust on
this OS version.  The previous bootstrap kit was built against
8.99.35, and apparently a C++ update happened since then making
the older bootstrap kit unusable on a fresh, new -current.
   2019-07-11 12:24:14 by Nia Alarie | Files touched by this commit (2)
Log message:
rust: Make building the internal LLVM optional for everyone

(not just Darwin and SunOS).

This was posted to tech-pkg@ a while ago with no objections,
I've been using it for a while too.
   2019-07-08 17:16:40 by Havard Eidnes | Files touched by this commit (2)
Log message:
Bump bootstrap version to 1.35.0 for the rest which were not
already done, mostly non-NetBSD and non-SunOS.
   2019-07-06 08:58:49 by Jonathan Perkin | Files touched by this commit (2)
Log message:
rust: Switch to the 1.35.0 bootstrap on SunOS.
   2019-07-05 11:55:31 by Havard Eidnes | Files touched by this commit (4) | Package updated
Log message:
Update rust to version 1.36.0

Pkgsrc changes:
 * NetBSD/sparc64 disabling of "packed" removed ("packed" \ 
removed upstream)
 * Adapt src_libstd_build.rs patch, update sed'ing of .cargo-checksum.json

Build verified on NetBSD 8.0/amd64.

Upstream changes:

Version 1.36.0 (2019-07-04)

- [Non-Lexical Lifetimes are now enabled on the 2015 edition.][59114]
- [The order of traits in trait objects no longer affects the semantics of that
  object.][59445] e.g. `dyn Send + fmt::Debug` is now equivalent to
  `dyn fmt::Debug + Send`, where this was previously not the case.

- [`HashMap`'s implementation has been replaced with `hashbrown::HashMap` implem
- [`TryFromSliceError` now implements `From<Infallible>`.][60318]
- [`mem::needs_drop` is now available as a const fn.][60364]
- [`alloc::Layout::from_size_align_unchecked` is now available as a const fn.][6
- [`String` now implements `BorrowMut<str>`.][60404]
- [`io::Cursor` now implements `Default`.][60234]
- [Both `NonNull::{dangling, cast}` are now const fns.][60244]
- [The `alloc` crate is now stable.][59675] `alloc` allows you to use a subset
  of `std` (e.g. `Vec`, `Box`, `Arc`) in `#![no_std]` environments if the
  environment has access to heap memory allocation.
- [`String` now implements `From<&String>`.][59825]
- [You can now pass multiple arguments to the `dbg!` macro.][59826] `dbg!` will
  return a tuple of each argument when there is multiple arguments.
- [`Result::{is_err, is_ok}` are now `#[must_use]` and will produce a warning if
  not used.][59648]

Stabilized APIs
- [`VecDeque::rotate_left`]
- [`VecDeque::rotate_right`]
- [`Iterator::copied`]
- [`io::IoSlice`]
- [`io::IoSliceMut`]
- [`Read::read_vectored`]
- [`Write::write_vectored`]
- [`str::as_mut_ptr`]
- [`mem::MaybeUninit`]
- [`pointer::align_offset`]
- [`future::Future`]
- [`task::Context`]
- [`task::RawWaker`]
- [`task::RawWakerVTable`]
- [`task::Waker`]
- [`task::Poll`]

- [Cargo will now produce an error if you attempt to use the name of a required
dependency as a feature.][cargo/6860]
- [You can now pass the `--offline` flag to run cargo without accessing the netw

You can find further change's in [Cargo's 1.36.0 release notes][cargo-1-36-0].

There have been numerous additions and fixes to clippy, see [Clippy's 1.36.0 rel
ease notes][clippy-1-36-0] for more details.


Compatibility Notes
- [`std::arch::x86::_rdtsc` returns `u64` instead of `i64`][stdsimd/559]
- [`std::arch::x86_64::_mm_shuffle_ps` takes an `i32` instead of `u32` for `mask
- With the stabilisation of `mem::MaybeUninit`, `mem::uninitialized` use is no
  longer recommended, and will be deprecated in 1.38.0.

[60318]: https://github.com/rust-lang/rust/pull/60318/
[60364]: https://github.com/rust-lang/rust/pull/60364/
[60370]: https://github.com/rust-lang/rust/pull/60370/
[60404]: https://github.com/rust-lang/rust/pull/60404/
[60234]: https://github.com/rust-lang/rust/pull/60234/
[60244]: https://github.com/rust-lang/rust/pull/60244/
[58623]: https://github.com/rust-lang/rust/pull/58623/
[59648]: https://github.com/rust-lang/rust/pull/59648/
[59675]: https://github.com/rust-lang/rust/pull/59675/
[59825]: https://github.com/rust-lang/rust/pull/59825/
[59826]: https://github.com/rust-lang/rust/pull/59826/
[59445]: https://github.com/rust-lang/rust/pull/59445/
[59114]: https://github.com/rust-lang/rust/pull/59114/
[cargo/6860]: https://github.com/rust-lang/cargo/pull/6860/
[cargo/6934]: https://github.com/rust-lang/cargo/pull/6934/
[`VecDeque::rotate_left`]: \ 
https://doc.rust-lang.org/std/collectio … otate_left
[`VecDeque::rotate_right`]: \ 
https://doc.rust-lang.org/std/collectio … tate_right
[`Iterator::copied`]: \ 
https://doc.rust-lang.org/std/iter/trai … hod.copied
[`io::IoSlice`]: https://doc.rust-lang.org/std/io/struct.IoSlice.html
[`io::IoSliceMut`]: https://doc.rust-lang.org/std/io/struct.IoSliceMut.html
[`Read::read_vectored`]: \ 
https://doc.rust-lang.org/std/io/trait. … d_vectored
[`Write::write_vectored`]: \ 
https://doc.rust-lang.org/std/io/trait. … e_vectored
[`str::as_mut_ptr`]: \ 
https://doc.rust-lang.org/std/primitive … as_mut_ptr
[`mem::MaybeUninit`]: https://doc.rust-lang.org/std/mem/union … ninit.html
[`pointer::align_offset`]: \ 
https://doc.rust-lang.org/std/primitive … ign_offset
[`future::Future`]: https://doc.rust-lang.org/std/future/trait.Future.html
[`task::Context`]: https://doc.rust-lang.org/beta/std/task … ntext.html
[`task::RawWaker`]: https://doc.rust-lang.org/beta/std/task … Waker.html
[`task::RawWakerVTable`]: \ 
https://doc.rust-lang.org/beta/std/task … Table.html
[`task::Waker`]: https://doc.rust-lang.org/beta/std/task … Waker.html
[`task::Poll`]: https://doc.rust-lang.org/beta/std/task/enum.Poll.html
[clippy-1-36-0]: \ 
https://github.com/rust-lang/rust-clipp … d#rust-136
[cargo-1-36-0]: \ 
https://github.com/rust-lang/cargo/blob … 2019-07-04
[stdsimd/522]: https://github.com/rust-lang-nursery/stdsimd/issues/522
[stdsimd/559]: https://github.com/rust-lang-nursery/stdsimd/issues/559
   2019-06-13 21:06:30 by Tobias Nygren | Files touched by this commit (3)
Log message:
rust: work around problem in rand vendor crate that made rustc very slow

... on some NetBSD hosts. To be discussed with upstream.
   2019-06-03 00:50:04 by Ryo ONODERA | Files touched by this commit (1)
Log message:
Add missing checksums
   2019-06-03 00:12:39 by Havard Eidnes | Files touched by this commit (2)
Log message:
Bump the various NetBSD bootstrap kits to 1.35.0.