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

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


Branch: CURRENT, Version: 1.30.0, Package name: rust-1.30.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:
[lang/python27] [www/http-parser]

Required to build:
[devel/cmake] [pkgtools/cwrappers]

Master sites:

SHA1: 682f6dddecf0d612ab3029afe63fc4f49ca8e3d8
RMD160: 94a3905854ed41875c6b68b0cc5c056d095fefa4
Filesize: 145986.923 KB

Version history: (Expand)


CVS history: (Expand)


   2018-10-31 17:30:44 by Martin Husemann | Files touched by this commit (2)
Log message:
Add patch from jakllsch (not merged upstream yet) to fix some pthread/
mutex types for some NetBSD architectures.
   2018-10-31 16:53:18 by Jonathan Perkin | Files touched by this commit (3)
Log message:
lang/rust: Various fixes.

SunOS now needs -D_POSIX_PTHREAD_SEMANTICS and a patch to the rand module
to work around getrandom() system call failures.

Add -j argument to x.py for the number of make jobs.
   2018-10-29 23:24:11 by Havard Eidnes | Files touched by this commit (6) | Package updated
Log message:
Upgrade rust to version 1.30.0.

Upstream changes:

Language
 * Procedural macros are now available. These kinds of macros allow
   for more powerful code generation. There is a new chapter available
   in the Rust Programming Language book that goes further in depth.
 * You can now use keywords as identifiers using the raw identifiers
   syntax (r#), e.g. let r#for = true;
 * Using anonymous parameters in traits is now deprecated with a
   warning and will be a hard error in the 2018 edition.
 * You can now use crate in paths. This allows you to refer to the
   crate root in the path, e.g. use crate::foo; refers to foo in
   src/lib.rs.
 * Using a external crate no longer requires being prefixed with
   ::. Previously, using a external crate in a module without a
   use statement required let json = ::serde_json::from_str(foo);
   but can now be written as let json = serde_json::from_str(foo);.
 * You can now apply the #[used] attribute to static items to
   prevent the compiler from optimising them away, even if they
   appear to be unused, e.g. #[used] static FOO: u32 = 1;
 * You can now import and reexport macros from other crates with
   the use syntax. Macros exported with #[macro_export] are now
   placed into the root module of the crate. If your macro relies
   on calling other local macros, it is recommended to export with
   the #[macro_export(local_inner_macros)] attribute so users won't
   have to import those macros.
 * You can now catch visibility keywords (e.g. pub, pub(crate)) in
   macros using the vis specifier.
 * Non-macro attributes now allow all forms of literals, not just
   strings. Previously, you would write #[attr("true")], and you
   can now write #[attr(true)].
 * You can now specify a function to handle a panic in the Rust
   runtime with the #[panic_handler] attribute.

Compiler
 * Added the riscv32imc-unknown-none-elf target.
 * Added the aarch64-unknown-netbsd target

Libraries
 * ManuallyDrop now allows the inner type to be unsized.

Stabilized APIs
 * Ipv4Addr::BROADCAST
 * Ipv4Addr::LOCALHOST
 * Ipv4Addr::UNSPECIFIED
 * Ipv6Addr::LOCALHOST
 * Ipv6Addr::UNSPECIFIED
 * Iterator::find_map
 * The following methods are replacement methods for trim_left,
   trim_right, trim_left_matches, and trim_right_matches, which
   will be deprecated in 1.33.0:
 * str::trim_end_matches
 * str::trim_end
 * str::trim_start_matches
 * str::trim_start

Cargo
 * cargo run doesn't require specifying a package in workspaces.
 * cargo doc now supports --message-format=json. This is equivalent
   to calling rustdoc --error-format=json.
 * Cargo will now provide a progress bar for builds.

Misc
 * rustdoc allows you to specify what edition to treat your code
   as with the --edition option.
 * rustdoc now has the --color (specify whether to output color)
   and --error-format (specify error format, e.g. json) options.
 * We now distribute a rust-gdbgui script that invokes gdbgui with
   Rust debug symbols.
 * Attributes from Rust tools such as rustfmt or clippy are now
   available, e.g. #[rustfmt::skip] will skip formatting the next
   item.

Pkgsrc changest:
 * Explicitly list bootstrap kit version number for each kit we carry,
   so that one entry's version doesn't "bleed into" following kits.
 * Tweak for handling "earmv7hf" CPU type for NetBSD in the bootstrap.py
   script
 * Add two patches from Debian for sparc64; rust would generate code
   generating unaligned accesses, causing SIGBUS on sparc64
 * Update most of the bootstrap kits to version 1.29.2; need minimum
   1.29.0 to build 1.30.0.
 * Rust regrettably doesn't build for powerpc or earmv7hf in this version,
   most probably due to "char" being "unsigned char" on \ 
these platforms.
   Ref. https://github.com/rust-lang/rust/issues/55465
   2018-10-28 14:21:36 by Havard Eidnes | Files touched by this commit (4) | Package updated
Log message:
Upgrade rust to version 1.29.2.

Upstream changes:
 * Workaround for an aliasing-related LLVM bug, which caused miscompilation.
 * The rls-preview component on the windows-gnu targets has been restored.

Pkgsrc changes:
 * More commented-out settings for cross builds on NetBSD.
 * Bump bootstrap kit versions to 1.29.2 for powerpc, sparc64
   and earm7hf.  Anyone up for testing for earm7hf?
 * Because the built-in versions of libgit2, libssh2 and curl
   can no longer be built with the pkgsrc-provided headers for
   those packages (due to version skew; the built-in versions
   have been updated to un-released newer code), the buildlink3.mk
   files for those packages have been commented out.
 * Similarly, to avoid using the native pkgsrc host's headers when cross-
   building, the gcc-wrap script has been adjusted to also re-point
   /usr/pkg/include into the destination's root (where those above pacakges
   are not to be installed).
 * Also have the gcc-wrap script deal with "-I dir" style directives,
   and re-point these also into the destination's root.
 * One patch has been integrated upstream, so removed here.
   2018-10-18 17:35:49 by Havard Eidnes | Files touched by this commit (1)
Log message:
Make a tentative fix for pkg/53671 by placing the cross compiler
wrapper scripts in ${WRKDIR}/scripts instead of modifying the files/
directory, which conflicts with a read-only pkgsrc.
   2018-10-18 13:49:46 by Martin Husemann | Files touched by this commit (1)
Log message:
Fix ${WRKDIR} reference, hint from leot
   2018-10-17 10:39:13 by Jonathan Perkin | Files touched by this commit (5)
Log message:
*: Replace custom tool setup with new ggrep.
   2018-10-15 13:22:23 by Havard Eidnes | Files touched by this commit (3) | Package updated
Log message:
Add pointers to (so far untested) bootstrap kits for sparc64 and earmv7hf.

Prepare wrapper script handling for use of clang (not yet fully verified).

Adjust the cross-compiler wrapper script to improve the handling
when used as the linker:
 * Insert "linker tweaks" before first -L or -l
 * Handle "-L arg" style as well as "-Larg"
 * Add "-Wl,-rpath-link" to the linker tweaks just to be sure...

Bump PKGREVISION.