summary refs log tree commit diff
path: root/gnu/packages/rust.scm
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2022-08-11 23:36:10 +0200
committerMarius Bakke <marius@gnu.org>2022-08-11 23:36:10 +0200
commit77eb3008e350c069e0ae8df6a91bf0ebdcfc2ac0 (patch)
treeb899e65aa79099be3f4b27dfcd565bb143681211 /gnu/packages/rust.scm
parentf7e8be231806a904e6817e8ab3404b32f2511db2 (diff)
parentb50eaa67642ebc25e9c896f2e700c08610e0a5da (diff)
downloadguix-77eb3008e350c069e0ae8df6a91bf0ebdcfc2ac0.tar.gz
Merge branch 'staging' into core-updates
Diffstat (limited to 'gnu/packages/rust.scm')
-rw-r--r--gnu/packages/rust.scm50
1 files changed, 40 insertions, 10 deletions
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 759bf9a631..8aad752054 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 (unmatched parenthesis <paren@disroot.org>
 ;;; Copyright © 2022 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2022 Jim Newsome <jnewsome@torproject.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -540,10 +541,45 @@ safety and thread safety guarantees.")
                  (generate-all-checksums "vendor"))))))))))
 
 (define rust-1.57
-  (let ((base-rust
-         (rust-bootstrapped-package
-          rust-1.56 "1.57.0"
-          "06jw8ka2p3kls8p0gd4p0chhhb1ia1mlvj96zn78n7qvp71zjiim")))
+  (rust-bootstrapped-package
+   ;; Verified that it *doesn't* build with 1.55. e.g.:
+   ;; * feature `edition2021` is required
+   rust-1.56 "1.57.0" "06jw8ka2p3kls8p0gd4p0chhhb1ia1mlvj96zn78n7qvp71zjiim"))
+
+(define rust-1.58
+  (rust-bootstrapped-package
+   ;; Verified that it *doesn't* build with 1.56. e.g.:
+   ;; * error: attributes starting with `rustc` are reserved for use by the
+   ;;   `rustc` compiler
+   ;; * error: cannot find attribute `rustc_do_not_const_check` in this scope
+   ;; * error[E0522]: definition of an unknown language item:
+   ;;   `const_eval_select_ct`
+   rust-1.57 "1.58.1" "1iq7kj16qfpkx8gvw50d8rf7glbm6s0pj2y1qkrz7mi56vfsyfd8"))
+
+(define rust-1.59
+  (rust-bootstrapped-package
+   ;; Verified that it *doesn't* build with 1.57. e.g.:
+   ;; * error: `doc(primitive)` should never have been stable
+   ;; * error[E0522]: definition of an unknown language item:
+   ;;   `generator_return`
+   ;; * error[E0206]: the trait `Copy` may not be implemented for this type
+   rust-1.58 "1.59.0" "1yc5bwcbmbwyvpfq7zvra78l0r8y3lbv60kbr62fzz2vx2pfxj57"))
+
+(define rust-1.60
+  (rust-bootstrapped-package
+   ;; Verified that it *doesn't* build with 1.58. e.g.:
+   ;; * error: unknown codegen option: `symbol-mangling-version`
+   rust-1.59 "1.60.0" "1drqr0a26x1rb2w3kj0i6abhgbs3jx5qqkrcwbwdlx7n3inq5ji0"))
+
+;;; Note: Only the latest versions of Rust are supported and tested.  The
+;;; intermediate rusts are built for bootstrapping purposes and should not
+;;; be relied upon.  This is to ease maintenance and reduce the time
+;;; required to build the full Rust bootstrap chain.
+;;;
+;;; Here we take the latest included Rust, make it public, and re-enable tests
+;;; and extra components such as rustfmt.
+(define-public rust
+  (let ((base-rust rust-1.60))
     (package
       (inherit base-rust)
       (outputs (cons "rustfmt" (package-outputs base-rust)))
@@ -682,12 +718,6 @@ safety and thread safety guarantees.")
                             `("procps" ,procps)
                             (package-native-inputs base-rust))))))
 
-;;; Note: Only the latest versions of Rust are supported and tested.  The
-;;; intermediate rusts are built for bootstrapping purposes and should not
-;;; be relied upon.  This is to ease maintenance and reduce the time
-;;; required to build the full Rust bootstrap chain.
-(define-public rust rust-1.57)
-
 (define-public rust-src
   (hidden-package
    (package