./lang/rust-bin, Safe, concurrent, practical language (official binaries)

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


Branch: CURRENT, Version: 1.44.0, Package name: rust-bin-1.44.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.

This package installs a released binary.


Required to build:
[pkgtools/cwrappers]

Master sites:


Version history: (Expand)


CVS history: (Expand)


   2020-07-15 17:13:57 by Nia Alarie | Files touched by this commit (1)
Log message:
urst-bin: Correct sense of condition
   2020-06-14 17:33:29 by Nia Alarie | Files touched by this commit (17)
Log message:
Rename rust-bin's PKGNAME to rust-bin. Add rust.mk for rust packages.

This allows rust-bin and rust to coexist in bulk builds (for testing, etc),
but the packages still may not be installed at the same time.

rust.mk as a solution for picking the correct rust variant was suggested
by gdt@. It is intended to be included directly by packages that do not
use cargo.mk, and indirectly by packages that do use cargo.mk.

rust.mk provides one user-settable variable:

RUST_TYPE
	as before, whether to bootstrap rust from source or use
	official binaries. may be "src" or "bin"

And two package-settable variables:

RUST_REQ
	the minimum version of Rust required by the package.
	defaults to "1.20.0"

RUST_RUNTIME
	whether Rust is a runtime dependency, may be "yes" or "no"
   2020-06-09 17:58:05 by Nia Alarie | Files touched by this commit (2) | Package updated
Log message:
rustc: Update to 1.44.0

Version 1.44.0 (2020-06-04)
==========================

Language
--------
- [You can now use `async/.await` with `#[no_std]` enabled.][69033]
- [Added the `unused_braces` lint.][70081]

**Syntax-only changes**

- [Expansion-driven outline module parsing][69838]
```rust
#[cfg(FALSE)]
mod foo {
    mod bar {
        mod baz; // `foo/bar/baz.rs` doesn't exist, but no error!
    }
}
```

These are still rejected semantically, so you will likely receive an error but
these changes can be seen and parsed by macros and conditional compilation.

Compiler
--------
- [Rustc now respects the `-C codegen-units` flag in incremental mode.][70156]
  Additionally when in incremental mode rustc defaults to 256 codegen units.
- [Refactored `catch_unwind` to have zero-cost, unless unwinding is enabled and
  a panic is thrown.][67502]
- [Added tier 3\* support for the `aarch64-unknown-none` and
  `aarch64-unknown-none-softfloat` targets.][68334]
- [Added tier 3 support for `arm64-apple-tvos` and
  `x86_64-apple-tvos` targets.][68191]

Libraries
---------
- [Special cased `vec![]` to map directly to `Vec::new()`.][70632] This allows
  `vec![]` to be able to be used in `const` contexts.
- [`convert::Infallible` now implements `Hash`.][70281]
- [`OsString` now implements `DerefMut` and `IndexMut` returning
  a `&mut OsStr`.][70048]
- [Unicode 13 is now supported.][69929]
- [`String` now implements `From<&mut str>`.][69661]
- [`IoSlice` now implements `Copy`.][69403]
- [`Vec<T>` now implements `From<[T; N]>`.][68692] Where `N` is at \ 
most 32.
- [`proc_macro::LexError` now implements `fmt::Display` and `Error`.][68899]
- [`from_le_bytes`, `to_le_bytes`, `from_be_bytes`, `to_be_bytes`,
  `from_ne_bytes`, and `to_ne_bytes` methods are now `const` for all
  integer types.][69373]

Stabilized APIs
---------------
- [`PathBuf::with_capacity`]
- [`PathBuf::capacity`]
- [`PathBuf::clear`]
- [`PathBuf::reserve`]
- [`PathBuf::reserve_exact`]
- [`PathBuf::shrink_to_fit`]
- [`f32::to_int_unchecked`]
- [`f64::to_int_unchecked`]
- [`Layout::align_to`]
- [`Layout::pad_to_align`]
- [`Layout::array`]
- [`Layout::extend`]

Cargo
-----
- [Added the `cargo tree` command which will print a tree graph of
  your dependencies.][cargo/8062] E.g.
  ```
    mdbook v0.3.2 (/Users/src/rust/mdbook)
  ├── ammonia v3.0.0
  │   ├── html5ever v0.24.0
  │   │   ├── log v0.4.8
  │   │   │   └── cfg-if v0.1.9
  │   │   ├── mac v0.1.1
  │   │   └── markup5ever v0.9.0
  │   │       ├── log v0.4.8 (*)
  │   │       ├── phf v0.7.24
  │   │       │   └── phf_shared v0.7.24
  │   │       │       ├── siphasher v0.2.3
  │   │       │       └── unicase v1.4.2
  │   │       │           [build-dependencies]
  │   │       │           └── version_check v0.1.5
  ...
  ```
  You can also display dependencies on multiple versions of the same crate with
  `cargo tree -d` (short for `cargo tree --duplicates`).

Misc
----
- [Rustdoc now allows you to specify `--crate-version` to have rustdoc include
  the version in the sidebar.][69494]

Compatibility Notes
-------------------
- [Rustc now correctly generates static libraries on Windows GNU targets with
  the `.a` extension, rather than the previous `.lib`.][70937]
- [Removed the `-C no_integrated_as` flag from rustc.][70345]
- [The `file_name` property in JSON output of macro errors now points the actual
  source file rather than the previous format of `<NAME macros>`.][70969]
  **Note:** this may not point to a file that actually exists on the user's system.
- [The minimum required external LLVM version has been bumped to LLVM 8.][71147]
- [`mem::{zeroed, uninitialised}` will now panic when used with types that do
  not allow zero initialization such as `NonZeroU8`.][66059] This was
  previously a warning.
- [In 1.45.0 (the next release) converting a `f64` to `u32` using the `as`
  operator has been defined as a saturating operation.][71269] This was previously
  undefined behaviour, but you can use the `{f64, f32}::to_int_unchecked` methods to
  continue using the current behaviour, which may be desirable in rare performance
  sensitive situations.

Internal Only
-------------
These changes provide no direct user facing benefits, but represent significant
improvements to the internals and overall performance of rustc and
related tools.

- [dep_graph Avoid allocating a set on when the number reads are small.][69778]
- [Replace big JS dict with JSON parsing.][71250]

[69373]: https://github.com/rust-lang/rust/pull/69373/
[66059]: https://github.com/rust-lang/rust/pull/66059/
[68191]: https://github.com/rust-lang/rust/pull/68191/
[68899]: https://github.com/rust-lang/rust/pull/68899/
[71147]: https://github.com/rust-lang/rust/pull/71147/
[71250]: https://github.com/rust-lang/rust/pull/71250/
[70937]: https://github.com/rust-lang/rust/pull/70937/
[70969]: https://github.com/rust-lang/rust/pull/70969/
[70632]: https://github.com/rust-lang/rust/pull/70632/
[70281]: https://github.com/rust-lang/rust/pull/70281/
[70345]: https://github.com/rust-lang/rust/pull/70345/
[70048]: https://github.com/rust-lang/rust/pull/70048/
[70081]: https://github.com/rust-lang/rust/pull/70081/
[70156]: https://github.com/rust-lang/rust/pull/70156/
[71269]: https://github.com/rust-lang/rust/pull/71269/
[69838]: https://github.com/rust-lang/rust/pull/69838/
[69929]: https://github.com/rust-lang/rust/pull/69929/
[69661]: https://github.com/rust-lang/rust/pull/69661/
[69778]: https://github.com/rust-lang/rust/pull/69778/
[69494]: https://github.com/rust-lang/rust/pull/69494/
[69403]: https://github.com/rust-lang/rust/pull/69403/
[69033]: https://github.com/rust-lang/rust/pull/69033/
[68692]: https://github.com/rust-lang/rust/pull/68692/
[68334]: https://github.com/rust-lang/rust/pull/68334/
[67502]: https://github.com/rust-lang/rust/pull/67502/
[cargo/8062]: https://github.com/rust-lang/cargo/pull/8062/
[`PathBuf::with_capacity`]: \ 
https://doc.rust-lang.org/std/path/stru … h_capacity
[`PathBuf::capacity`]: \ 
https://doc.rust-lang.org/std/path/stru … d.capacity
[`PathBuf::clear`]: \ 
https://doc.rust-lang.org/std/path/stru … thod.clear
[`PathBuf::reserve`]: \ 
https://doc.rust-lang.org/std/path/stru … od.reserve
[`PathBuf::reserve_exact`]: \ 
https://doc.rust-lang.org/std/path/stru … erve_exact
[`PathBuf::shrink_to_fit`]: \ 
https://doc.rust-lang.org/std/path/stru … ink_to_fit
[`f32::to_int_unchecked`]: \ 
https://doc.rust-lang.org/std/primitive … _unchecked
[`f64::to_int_unchecked`]: \ 
https://doc.rust-lang.org/std/primitive … _unchecked
[`Layout::align_to`]: \ 
https://doc.rust-lang.org/std/alloc/str … d.align_to
[`Layout::pad_to_align`]: \ 
https://doc.rust-lang.org/std/alloc/str … d_to_align
[`Layout::array`]: \ 
https://doc.rust-lang.org/std/alloc/str … thod.array
[`Layout::extend`]: \ 
https://doc.rust-lang.org/std/alloc/str … hod.extend
   2020-06-03 12:45:04 by Nia Alarie | Files touched by this commit (2)
Log message:
rust*: Add PKG_SKIP_REASON depending on the value of RUST_TYPE
   2020-05-25 19:53:21 by Havard Eidnes | Files touched by this commit (1) | Package updated
Log message:
The ld.elf_so in NetBSD/8.x only obeys RPATH, not RUNPATH,
so fix to force RPATH usage on that platform.
Bump PKGREVISION for good measure.
   2020-05-20 00:23:16 by Nia Alarie | Files touched by this commit (1)
Log message:
rust-bin: llvm-ar needs fixing too.
   2020-05-19 23:59:03 by Nia Alarie | Files touched by this commit (1)
Log message:
rust-bin: Add compat80 to the local llvm rpath. Limit this to NetBSD<9

Workaround for a problem reported by wiz on pkgsrc-users, pending
more investigation
   2020-05-19 21:01:10 by Thomas Klausner | Files touched by this commit (1)
Log message:
rust-bin: set CHECK_RELRO_SKIP for prebuilt binaries