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

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


Branch: CURRENT, Version: 1.37.0, Package name: rust-1.37.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 run:
[www/curl] [lang/llvm]

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

Master sites:

SHA1: 8613fc28896b2f0d6d8770ea52ce54804ca751df
RMD160: 13355233d894bad13fd6b63277a72f81f9a25ff0
Filesize: 150502.856 KB

Version history: (Expand)


CVS history: (Expand)


   2019-09-19 19:37:29 by Jonathan Perkin | Files touched by this commit (3)
Log message:
rust: SunOS now requires libnsl.

While here fix some tabs->spaces to make the test suite work again.
   2019-09-18 09:25:00 by Adam Ciarcinski | Files touched by this commit (1)
Log message:
rust: buildlink with curl; fixes linking on Darwin

Rust needs cURL with HTTP2 option enabled; when not found, curl will be built
from internal sources.
   2019-09-17 10:03:27 by Havard Eidnes | Files touched by this commit (2)
Log message:
Bump the version for the following NetBSD bootstraps to 1.37.0:
x86_64, i386, powerpc, sparc64, aarch64.  The first is built by
the rust team, the rest are natively built by yours truly.
Cross-builds are currently broken due to
  https://github.com/rust-lang/rust/issues/62558
   2019-09-09 18:19:49 by Adam Ciarcinski | Files touched by this commit (5)
Log message:
rust: on Darwin, use proper shared library name instead of @rpath
   2019-08-29 16:09:57 by Havard Eidnes | Files touched by this commit (5) | Package updated
Log message:
Update rust to version 1.37.0

Pkgsrc changes:
 * Add a patch to llvm to deal with const dli_saddr.
 * Adapt two other patches.
 * Cross-build currently fails, so i386, powerpc and sparc64 bootstrap
   kits for 1.37.0 are built natively.  Missing aarch64 hardware, so that's
   not available yet.
 * Bump bootstrap requirements to 1.36.0 except for armv7-unknown-netbsd-eabihf
   which I've not managed to cross-build.

Upstream changes:

Version 1.37.0 (2019-08-15)
==========================

Language
--------
- `#[must_use]` will now warn if the type is contained in a [tuple][61100],
  [`Box`][62228], or an [array][62235] and unused.
- [You can now use the `cfg` and `cfg_attr` attributes on
  generic parameters.][61547]
- [You can now use enum variants through type alias.][61682] e.g. You can
  write the following:
  ```rust
  type MyOption = Option<u8>;

  fn increment_or_zero(x: MyOption) -> u8 {
      match x {
          MyOption::Some(y) => y + 1,
          MyOption::None => 0,
      }
  }
  ```
- [You can now use `_` as an identifier for consts.][61347] e.g. You can write
  `const _: u32 = 5;`.
- [You can now use `#[repr(align(X)]` on enums.][61229]
- [The  `?`/_"Kleene"_ macro operator is now available in the
  2015 edition.][60932]

Compiler
--------
- [You can now enable Profile-Guided Optimization with the `-C profile-generate`
  and `-C profile-use` flags.][61268] For more information on how to use profile
  guided optimization, please refer to the [rustc book][rustc-book-pgo].
- [The `rust-lldb` wrapper script should now work again.][61827]

Libraries
---------
- [`mem::MaybeUninit<T>` is now ABI-compatible with `T`.][61802]

Stabilized APIs
---------------
- [`BufReader::buffer`]
- [`BufWriter::buffer`]
- [`Cell::from_mut`]
- [`Cell<[T]>::as_slice_of_cells`][`Cell<slice>::as_slice_of_cells`]
- [`DoubleEndedIterator::nth_back`]
- [`Option::xor`]
- [`Wrapping::reverse_bits`]
- [`i128::reverse_bits`]
- [`i16::reverse_bits`]
- [`i32::reverse_bits`]
- [`i64::reverse_bits`]
- [`i8::reverse_bits`]
- [`isize::reverse_bits`]
- [`slice::copy_within`]
- [`u128::reverse_bits`]
- [`u16::reverse_bits`]
- [`u32::reverse_bits`]
- [`u64::reverse_bits`]
- [`u8::reverse_bits`]
- [`usize::reverse_bits`]

Cargo
-----
- [`Cargo.lock` files are now included by default when publishing executable crates
  with executables.][cargo/7026]
- [You can now specify `default-run="foo"` in `[package]` to specify the
  default executable to use for `cargo run`.][cargo/7056]

Misc
----

Compatibility Notes
-------------------
- [Using `...` for inclusive range patterns will now warn by default.][61342]
  Please transition your code to using the `..=` syntax for inclusive
  ranges instead.
- [Using a trait object without the `dyn` will now warn by default.][61203]
  Please transition your code to use `dyn Trait` for trait objects instead.

[62228]: https://github.com/rust-lang/rust/pull/62228/
[62235]: https://github.com/rust-lang/rust/pull/62235/
[61802]: https://github.com/rust-lang/rust/pull/61802/
[61827]: https://github.com/rust-lang/rust/pull/61827/
[61547]: https://github.com/rust-lang/rust/pull/61547/
[61682]: https://github.com/rust-lang/rust/pull/61682/
[61268]: https://github.com/rust-lang/rust/pull/61268/
[61342]: https://github.com/rust-lang/rust/pull/61342/
[61347]: https://github.com/rust-lang/rust/pull/61347/
[61100]: https://github.com/rust-lang/rust/pull/61100/
[61203]: https://github.com/rust-lang/rust/pull/61203/
[61229]: https://github.com/rust-lang/rust/pull/61229/
[60932]: https://github.com/rust-lang/rust/pull/60932/
[cargo/7026]: https://github.com/rust-lang/cargo/pull/7026/
[cargo/7056]: https://github.com/rust-lang/cargo/pull/7056/
[`BufReader::buffer`]: \ 
https://doc.rust-lang.org/std/io/struct … hod.buffer
[`BufWriter::buffer`]: \ 
https://doc.rust-lang.org/std/io/struct … hod.buffer
[`Cell::from_mut`]: \ 
https://doc.rust-lang.org/std/cell/stru … d.from_mut
[`Cell<slice>::as_slice_of_cells`]: \ 
https://doc.rust-lang.org/std/cell/stru … e_of_cells
[`DoubleEndedIterator::nth_back`]: \ 
https://doc.rust-lang.org/std/iter/trai … d.nth_back
[`Option::xor`]: https://doc.rust-lang.org/std/option/en … method.xor
[`RefCell::try_borrow_unguarded`]: \ 
https://doc.rust-lang.org/std/cell/stru … _unguarded
[`Wrapping::reverse_bits`]: \ 
https://doc.rust-lang.org/std/num/struc … verse_bits
[`i128::reverse_bits`]: \ 
https://doc.rust-lang.org/std/primitive … verse_bits
[`i16::reverse_bits`]: \ 
https://doc.rust-lang.org/std/primitive … verse_bits
[`i32::reverse_bits`]: \ 
https://doc.rust-lang.org/std/primitive … verse_bits
[`i64::reverse_bits`]: \ 
https://doc.rust-lang.org/std/primitive … verse_bits
[`i8::reverse_bits`]: \ 
https://doc.rust-lang.org/std/primitive … verse_bits
[`isize::reverse_bits`]: \ 
https://doc.rust-lang.org/std/primitive … verse_bits
[`slice::copy_within`]: \ 
https://doc.rust-lang.org/std/primitive … opy_within
[`u128::reverse_bits`]: \ 
https://doc.rust-lang.org/std/primitive … verse_bits
[`u16::reverse_bits`]: \ 
https://doc.rust-lang.org/std/primitive … verse_bits
[`u32::reverse_bits`]: \ 
https://doc.rust-lang.org/std/primitive … verse_bits
[`u64::reverse_bits`]: \ 
https://doc.rust-lang.org/std/primitive … verse_bits
[`u8::reverse_bits`]: \ 
https://doc.rust-lang.org/std/primitive … verse_bits
[`usize::reverse_bits`]: \ 
https://doc.rust-lang.org/std/primitive … verse_bits
[rustc-book-pgo]: https://doc.rust-lang.org/rustc/profile … ation.html
   2019-08-27 19:23:48 by Amitai Schleier | Files touched by this commit (1)
Log message:
Set PKG_SUPPORTED_OPTIONS to empty string by default. Fixes the
following on macOS:

ERROR: This package has set PKG_FAIL_REASON:
ERROR: [bsd.options.mk] The package has no options, but includes this file.
   2019-08-14 18:00:23 by Nia Alarie | Files touched by this commit (1)
Log message:
rust: Avoid using external llvm when external llvm isn't pkgsrc llvm.

Reported as a build failure in #pkgsrc by ng0.
   2019-08-14 15:05:25 by Nia Alarie | Files touched by this commit (2) | Package updated
Log message:
rust: Build against non-internal LLVM by default.

This should help with some people's problems with the rust builds being
excessively long, and if we ever run into compatibility problems between
rust's llvm-current and our shipped version it should be easy to switch
on the internal LLVM by default again.

I've been using this for some time with Firefox without problems.

Bump PKGREVISION.