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

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


Branch: CURRENT, Version: 1.16.0, Package name: rust-1.16.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] [lang/gcc48-libs]

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

Master sites:

SHA1: c0a66ad539b1ca9f3b1d174f4a233228cb422cd7
RMD160: 42bb8759c98787d07293d81e45183fe5cf55ebc2
Filesize: 27803.098 KB

Version history: (Expand)


CVS history: (Expand)


   2017-06-18 11:21:56 by Ryo ONODERA | Files touched by this commit (1)
Log message:
Fix build under NetBSD etc. using internal llvm

lang/llvm 4.0 is not compatible for this version of rust.
   2017-03-20 12:36:35 by Jonathan Perkin | Files touched by this commit (3) | Package updated
Log message:
Update lang/rust to 1.16.0.  Changes since 1.15.1:

Version 1.16.0 (2017-03-16)
===========================

Language
--------

* Lifetimes in statics and consts default to `'static`. [RFC 1623]
* [The compiler's `dead_code` lint now accounts for type aliases][38051].
* [Uninhabitable enums (those without any variants) no longer permit wildcard
  match patterns][38069]
* [Clean up semantics of `self` in an import list][38313]
* [`Self` may appear in `impl` headers][38920]
* [`Self` may appear in struct expressions][39282]

Compiler
--------

* [`rustc` now supports `--emit=metadata`, which causes rustc to emit
  a `.rmeta` file containing only crate metadata][38571]. This can be
  used by tools like the Rust Language Service to perform
  metadata-only builds.
* [Levenshtein based typo suggestions now work in most places, while
  previously they worked only for fields and sometimes for local
  variables][38927]. Together with the overhaul of "no
  resolution"/"unexpected resolution" errors (#[38154]) they result in
  large and systematic improvement in resolution diagnostics.
* [Fix `transmute::<T, U>` where `T` requires a bigger alignment than
  `U`][38670]
* [rustc: use -Xlinker when specifying an rpath with ',' in it][38798]
* [`rustc` no longer attempts to provide "consider using an explicit
  lifetime" suggestions][37057]. They were inaccurate.

Stabilized APIs
---------------

* [`VecDeque::truncate`]
* [`VecDeque::resize`]
* [`String::insert_str`]
* [`Duration::checked_add`]
* [`Duration::checked_sub`]
* [`Duration::checked_div`]
* [`Duration::checked_mul`]
* [`str::replacen`]
* [`str::repeat`]
* [`SocketAddr::is_ipv4`]
* [`SocketAddr::is_ipv6`]
* [`IpAddr::is_ipv4`]
* [`IpAddr::is_ipv6`]
* [`Vec::dedup_by`]
* [`Vec::dedup_by_key`]
* [`Result::unwrap_or_default`]
* [`<*const T>::wrapping_offset`]
* [`<*mut T>::wrapping_offset`]
* `CommandExt::creation_flags`
* [`File::set_permissions`]
* [`String::split_off`]

Libraries
---------

* [`[T]::binary_search` and `[T]::binary_search_by_key` now take
  their argument by `Borrow` parameter][37761]
* [All public types in std implement `Debug`][38006]
* [`IpAddr` implements `From<Ipv4Addr>` and `From<Ipv6Addr>`][38327]
* [`Ipv6Addr` implements `From<[u16; 8]>`][38131]
* [Ctrl-Z returns from `Stdin.read()` when reading from the console on
  Windows][38274]
* [std: Fix partial writes in `LineWriter`][38062]
* [std: Clamp max read/write sizes on Unix][38062]
* [Use more specific panic message for `&str` slicing errors][38066]
* [`TcpListener::set_only_v6` is deprecated][38304]. This
  functionality cannot be achieved in std currently.
* [`writeln!`, like `println!`, now accepts a form with no string
  or formatting arguments, to just print a newline][38469]
* [Implement `iter::Sum` and `iter::Product` for `Result`][38580]
* [Reduce the size of static data in `std_unicode::tables`][38781]
* [`char::EscapeDebug`, `EscapeDefault`, `EscapeUnicode`,
  `CaseMappingIter`, `ToLowercase`, `ToUppercase`, implement
  `Display`][38909]
* [`Duration` implements `Sum`][38712]
* [`String` implements `ToSocketAddrs`][39048]

Cargo
-----

* [The `cargo check` command does a type check of a project without
  building it][cargo/3296]
* [crates.io will display CI badges from Travis and AppVeyor, if
  specified in Cargo.toml][cargo/3546]
* [crates.io will display categories listed in Cargo.toml][cargo/3301]
* [Compilation profiles accept integer values for `debug`, in addition
  to `true` and `false`. These are passed to `rustc` as the value to
  `-C debuginfo`][cargo/3534]
* [Implement `cargo --version --verbose`][cargo/3604]
* [All builds now output 'dep-info' build dependencies compatible with
  make and ninja][cargo/3557]
* [Build all workspace members with `build --all`][cargo/3511]
* [Document all workspace members with `doc --all`][cargo/3515]
* [Path deps outside workspace are not members][cargo/3443]

Misc
----

* [`rustdoc` has a `--sysroot` argument that, like `rustc`, specifies
  the path to the Rust implementation][38589]
* [The `armv7-linux-androideabi` target no longer enables NEON
  extensions, per Google's ABI guide][38413]
* [The stock standard library can be compiled for Redox OS][38401]
* [Rust has initial SPARC support][38726]. Tier 3. No builds
  available.
* [Rust has experimental support for Nvidia PTX][38559]. Tier 3. No
  builds available.
* [Fix backtraces on i686-pc-windows-gnu by disabling FPO][39379]

Compatibility Notes
-------------------

* [Uninhabitable enums (those without any variants) no longer permit wildcard
  match patterns][38069]
* In this release, references to uninhabited types can not be
  pattern-matched. This was accidentally allowed in 1.15.
* [The compiler's `dead_code` lint now accounts for type aliases][38051].
* [Ctrl-Z returns from `Stdin.read()` when reading from the console on
  Windows][38274]
* [Clean up semantics of `self` in an import list][38313]

[37057]: https://github.com/rust-lang/rust/pull/37057
[37761]: https://github.com/rust-lang/rust/pull/37761
[38006]: https://github.com/rust-lang/rust/pull/38006
[38051]: https://github.com/rust-lang/rust/pull/38051
[38062]: https://github.com/rust-lang/rust/pull/38062
[38062]: https://github.com/rust-lang/rust/pull/38622
[38066]: https://github.com/rust-lang/rust/pull/38066
[38069]: https://github.com/rust-lang/rust/pull/38069
[38131]: https://github.com/rust-lang/rust/pull/38131
[38154]: https://github.com/rust-lang/rust/pull/38154
[38274]: https://github.com/rust-lang/rust/pull/38274
[38304]: https://github.com/rust-lang/rust/pull/38304
[38313]: https://github.com/rust-lang/rust/pull/38313
[38314]: https://github.com/rust-lang/rust/pull/38314
[38327]: https://github.com/rust-lang/rust/pull/38327
[38401]: https://github.com/rust-lang/rust/pull/38401
[38413]: https://github.com/rust-lang/rust/pull/38413
[38469]: https://github.com/rust-lang/rust/pull/38469
[38559]: https://github.com/rust-lang/rust/pull/38559
[38571]: https://github.com/rust-lang/rust/pull/38571
[38580]: https://github.com/rust-lang/rust/pull/38580
[38589]: https://github.com/rust-lang/rust/pull/38589
[38670]: https://github.com/rust-lang/rust/pull/38670
[38712]: https://github.com/rust-lang/rust/pull/38712
[38726]: https://github.com/rust-lang/rust/pull/38726
[38781]: https://github.com/rust-lang/rust/pull/38781
[38798]: https://github.com/rust-lang/rust/pull/38798
[38909]: https://github.com/rust-lang/rust/pull/38909
[38920]: https://github.com/rust-lang/rust/pull/38920
[38927]: https://github.com/rust-lang/rust/pull/38927
[39048]: https://github.com/rust-lang/rust/pull/39048
[39282]: https://github.com/rust-lang/rust/pull/39282
[39379]: https://github.com/rust-lang/rust/pull/39379
[`<*const T>::wrapping_offset`]: \ 
https://doc.rust-lang.org/std/primitive … ing_offset
[`<*mut T>::wrapping_offset`]: \ 
https://doc.rust-lang.org/std/primitive … ing_offset
[`Duration::checked_add`]: \ 
https://doc.rust-lang.org/std/time/stru … hecked_add
[`Duration::checked_div`]: \ 
https://doc.rust-lang.org/std/time/stru … hecked_div
[`Duration::checked_mul`]: \ 
https://doc.rust-lang.org/std/time/stru … hecked_mul
[`Duration::checked_sub`]: \ 
https://doc.rust-lang.org/std/time/stru … hecked_sub
[`File::set_permissions`]: \ 
https://doc.rust-lang.org/std/fs/struct … ermissions
[`IpAddr::is_ipv4`]: \ 
https://doc.rust-lang.org/std/net/enum. … od.is_ipv4
[`IpAddr::is_ipv6`]: \ 
https://doc.rust-lang.org/std/net/enum. … od.is_ipv6
[`Result::unwrap_or_default`]: \ 
https://doc.rust-lang.org/std/result/en … or_default
[`SocketAddr::is_ipv4`]: \ 
https://doc.rust-lang.org/std/net/enum. … od.is_ipv4
[`SocketAddr::is_ipv6`]: \ 
https://doc.rust-lang.org/std/net/enum. … od.is_ipv6
[`String::insert_str`]: \ 
https://doc.rust-lang.org/std/string/st … insert_str
[`String::split_off`]: \ 
https://doc.rust-lang.org/std/string/st … .split_off
[`Vec::dedup_by_key`]: \ 
https://doc.rust-lang.org/std/vec/struc … dup_by_key
[`Vec::dedup_by`]: https://doc.rust-lang.org/std/vec/struc … d.dedup_by
[`VecDeque::resize`]:  \ 
https://doc.rust-lang.org/std/collectio … hod.resize
[`VecDeque::truncate`]: \ 
https://doc.rust-lang.org/std/collectio … d.truncate
[`str::repeat`]: https://doc.rust-lang.org/std/primitive … hod.repeat
[`str::replacen`]: https://doc.rust-lang.org/std/primitive … d.replacen
[cargo/3296]: https://github.com/rust-lang/cargo/pull/3296
[cargo/3301]: https://github.com/rust-lang/cargo/pull/3301
[cargo/3443]: https://github.com/rust-lang/cargo/pull/3443
[cargo/3511]: https://github.com/rust-lang/cargo/pull/3511
[cargo/3515]: https://github.com/rust-lang/cargo/pull/3515
[cargo/3534]: https://github.com/rust-lang/cargo/pull/3534
[cargo/3546]: https://github.com/rust-lang/cargo/pull/3546
[cargo/3557]: https://github.com/rust-lang/cargo/pull/3557
[cargo/3604]: https://github.com/rust-lang/cargo/pull/3604
[RFC 1623]: https://github.com/rust-lang/rfcs/blob/ … -static.md
   2017-02-23 10:35:17 by Jonathan Perkin | Files touched by this commit (20) | Package updated
Log message:
Update lang/rust to 1.15.1.  Changes since 1.11.0 are too numerous to
list, but can be found here:

	https://github.com/rust-lang/rust/blob/ … ELEASES.md

Add a stage0-bootstrap target to simplify generation of bootstrap kits
for platforms which are not supported upstream (primarily SmartOS).
   2017-01-08 15:38:13 by Maya Rashish | Files touched by this commit (2)
Log message:
rust: match newer versions of llvm, too.

while I didn't complete the build, it is likely necessary, as pkgsrc llvm
is 3.9 and doesn't match this test.
   2016-11-14 21:56:10 by Ryo ONODERA | Files touched by this commit (3)
Log message:
Recursive revbump from llvm 3.9.0
   2016-09-13 14:37:08 by Ryo ONODERA | Files touched by this commit (3)
Log message:
Restore accidentally deleted comment and use .NetBSD suffix
Thank you, jperkin@.
   2016-09-12 15:27:33 by Ryo ONODERA | Files touched by this commit (5)
Log message:
Add NetBSD/amd64 support

This package must be built with pkgtools/cwrappers with USE_CWRAPPERS=yes.
   2016-09-11 20:19:54 by Jonathan Perkin | Files touched by this commit (1)
Log message:
Only try to fetch stage2 if it's available for the target.