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

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

Branch: CURRENT, Version: 1.31.1nb1, Package name: rust-1.31.1nb1, 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] [lang/python27] [pkgtools/cwrappers]

Master sites:

SHA1: b4276b400bade8e3fc13aed023c5356ec28bdc80
RMD160: 5c3ffa2ab47b20755e6acd5d98fbd692627b2158
Filesize: 147620.945 KB

Version history: (Expand)

CVS history: (Expand)

   2019-01-06 00:29:40 by Tobias Nygren | Files touched by this commit (4)
Log message:
rust: add some kludges to better support NetBSD HEAD-llvm

1) bootstrap rustc adds -lgcc_s when linking

2) bootstrap rustc has shared linkage to libgcc_s.so.1
-> Until upstream changes this to static linkage, we look for
   libgcc_s.so.1 in ${FILESDIR} where the user must place it manually.

3) newly built rustc adds -lstdc++ instead of -lc++ when linking llvm
-> fixed with patch-src_librustc__llvm_build.rs

4) newly built rustc adds -lgcc_s when linking
-> fixed with patch-src_libunwind_build.rs
   2019-01-03 04:12:30 by Tobias Nygren | Files touched by this commit (1)
Log message:
   2019-01-03 02:05:46 by Tobias Nygren | Files touched by this commit (1)
Log message:
rust: builds just fine with python-3.7. Remove PYTHON_VERSIONS_ACCEPTED.
   2018-12-22 00:12:34 by Havard Eidnes | Files touched by this commit (6)
Log message:
Upgrade rust to version 1.31.1.

Pkgsrc changes:
 * Sadly, I had to reinstate the "make tar files" rust code to make
   it possible to build cross-compiled bootstrap kits.
 * Add an adjustable "BUILD_TARGET", "dist" for cross-building
   a bootstrap kit, "build" for a normal native build.
 * New bootstrap kits built for NetBSD/powerpc, NetBSD/earmv7hf,
   and NetBSD/sparc64 version 1.31.1.
 * gcc-wrap script amended to also drop -Wl,--enable-new-dtags
   (so it could be used outside pkgsrc)
 * Worked around use of AtomicU64 in release build tool (ugly band-aid patch).
   Some platforms lack support for that type and associated operations.

Upstream changes:
 - [Fix Rust failing to build on `powerpc-unknown-netbsd`][56562]
 - [Fix broken go-to-definition in RLS][rls/1171]
 - [Fix infinite loop on hover in RLS][rls/1170]

[56562]: https://github.com/rust-lang/rust/pull/56562
[rls/1171]: https://github.com/rust-lang/rls/issues/1171
[rls/1170]: https://github.com/rust-lang/rls/pull/1170
   2018-12-15 13:41:43 by Jonathan Perkin | Files touched by this commit (2)
Log message:
rust: Restore SunOS support.
   2018-12-08 08:24:54 by Ryo ONODERA | Files touched by this commit (2) | Package updated
Log message:
Update to 1.31.0

Version 1.31.0 (2018-12-06)

    This version marks the release of the 2018 edition of Rust.
    New lifetime elision rules now allow for eliding lifetimes in functions and \ 
impl headers. E.g. impl<'a> Reader for BufReader<'a> {} can now be \ 
impl Reader for BufReader<'_> {}. Lifetimes are still required to be \ 
defined in structs.
    You can now define and use const functions. These are currently a strict \ 
minimal subset of the const fn RFC. Refer to the language reference for what \ 
exactly is available.
    You can now use tool lints, which allow you to scope lints from external \ 
tools using attributes. E.g. #[allow(clippy::filter_map)].
    #[no_mangle] and #[export_name] attributes can now be located anywhere in a \ 
crate, not just in exported functions.
    You can now use parentheses in pattern matches.


    Updated musl to 1.1.20


    You can now convert num::NonZero* types to their raw equivalvents using the \ 
From trait. E.g. u8 now implements From<NonZeroU8>.
    You can now convert a &Option<T> into Option<&T> and \ 
&mut Option<T> into Option<&mut T> using the From trait.
    You can now multiply (*) a time::Duration by a u32.

Stabilized APIs




    Cargo will now download crates in parallel using HTTP/2.
    You can now rename packages in your Cargo.toml We have a guide on how to use \ 
the package key in your dependencies.
   2018-11-29 15:32:14 by Jonathan Perkin | Files touched by this commit (1) | Package updated
Log message:
rust: Ensure the bundled http-parser is used.

Trying to mix and match pkgsrc and bundled dependencies resulted in conflicts
between libgit and http-parser, such that cargo was unable to fetch indexes
from crates.io with spurious network error regarding Content-Type headers.

While here add a note about why these dependencies are currently disabled.

   2018-11-27 16:45:23 by Adam Ciarcinski | Files touched by this commit (9)
Log message:
rust: speed-up building; clean-ups

- use 'build' target for building, not 'dist'
- set jobs also for install target
- do not generate tarballs; we don't need them, but they take a lot of disk-space
- do not install 'src'
- do not generate 'install.log' nor 'uninstall.sh'
- on Darwin, use headerpad_max_install_names to be able to fix all dylibs
- make optimized bootstrap
- pkglint fixes
- get ready to depend on lang/llvm and devel/jemalloc