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

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


Branch: CURRENT, Version: 1.76.0nb1, Package name: rust-1.76.0nb1, 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] [security/openssl] [lang/llvm]

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

Master sites:

Filesize: 294921.085 KB

Version history: (Expand)


CVS history: (Expand)


   2024-04-24 14:04:25 by Tobias Nygren | Files touched by this commit (1)
Log message:
rust: add CHECK_PORTABILITY skip and use wildcard for ci scripts
   2024-04-22 21:00:31 by pin | Files touched by this commit (1) | Package updated
Log message:
lang/rust: revision bump for llvm update
   2024-04-18 14:00:45 by Jonathan Perkin | Files touched by this commit (1) | Package updated
Log message:
rust: Revert part of last update to fix lib names.
   2024-04-18 11:29:43 by pin | Files touched by this commit (64) | Package updated
Log message:
lang/rust: update to 1.76.0

Language
 - Document Rust ABI compatibility between various types
 - Also: guarantee that char and u32 are ABI-compatible
 - Add lint ambiguous_wide_pointer_comparisons that supersedes \ 
clippy::vtable_address_comparisons

Compiler
 - Lint pinned #[must_use] pointers (in particular, Box<T> where T is \ 
#[must_use]) in unused_must_use.
 - Soundness fix: fix computing the offset of an unsized field in a packed struct
 - Soundness fix: fix dynamic size/align computation logic for packed types with \ 
dyn Trait tail
 - Add $message_type field to distinguish json diagnostic outputs
 - Enable Rust to use the EHCont security feature of Windows
 - Add tier 3 {x86_64,i686}-win7-windows-msvc targets
 - Add tier 3 aarch64-apple-watchos target
 - Add tier 3 arm64e-apple-ios & arm64e-apple-darwin targets

Refer to Rust's platform support page for more information on Rust's tiered \ 
platform support.

Libraries
 - Add a column number to dbg!()
 - Add std::hash::{DefaultHasher, RandomState} exports
 - Fix rounding issue with exponents in fmt
 - Add T: ?Sized to RwLockReadGuard and RwLockWriteGuard's Debug impls.
 - Windows: Allow File::create to work on hidden files

Stabilized APIs
 - Arc::unwrap_or_clone
 - Rc::unwrap_or_clone
 - Result::inspect
 - Result::inspect_err
 - Option::inspect
 - type_name_of_val
 - std::hash::{DefaultHasher, RandomState} These were previously available only \ 
through std::collections::hash_map.
 - ptr::{from_ref, from_mut}
 - ptr::addr_eq

Cargo

See Cargo release notes.

Rustdoc
 - Don't merge cfg and doc(cfg) attributes for re-exports
 - rustdoc: allow resizing the sidebar / hiding the top bar
 - rustdoc-search: add support for traits and associated types
 - rustdoc: Add highlighting for comments in items declaration

Compatibility Notes
 - Add allow-by-default lint for unit bindings This is expected to be upgraded \ 
to a warning by default in a future Rust release. Some macros emit bindings with \ 
type () with user-provided spans, which means that this lint will warn for user \ 
code.
 - Remove x86_64-sun-solaris target.
 - Remove asmjs-unknown-emscripten target
 - Report errors in jobserver inherited through environment variables This may \ 
warn on benign problems too.
 - Update the minimum external LLVM to 16.
 - Improve print_tts This change can break some naive manual parsing of token \ 
trees in proc macro code which expect a particular structure after .to_string(), \ 
rather than just arbitrary Rust code.
 - Make IMPLIED_BOUNDS_ENTAILMENT into a hard error from a lint
 - Vec's allocation behavior was changed when collecting some iterators \ 
Allocation behavior is currently not specified, nevertheless changes can be \ 
surprising. See impl FromIterator for Vec for more details.
 - Properly reject default on free const items
   2024-04-12 21:59:38 by Taylor R Campbell | Files touched by this commit (1)
Log message:
lang/rust: Need cmake as tool, not as buildlink.
   2024-04-11 21:54:42 by Tobias Nygren | Files touched by this commit (2)
Log message:
fix typo in comment
   2024-04-11 21:53:50 by Tobias Nygren | Files touched by this commit (3)
Log message:
rust: allow linking with external libunwind on Linux
   2024-03-21 03:14:14 by Nia Alarie | Files touched by this commit (1)
Log message:
rust: Make the list of supported platforms constant, requested by gdt.