From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39679) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f339h-0001ik-IW for guix-patches@gnu.org; Mon, 02 Apr 2018 13:22:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f339e-0002nS-9w for guix-patches@gnu.org; Mon, 02 Apr 2018 13:22:05 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:55679) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1f339e-0002nM-5T for guix-patches@gnu.org; Mon, 02 Apr 2018 13:22:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1f339d-0006l4-Te for guix-patches@gnu.org; Mon, 02 Apr 2018 13:22:01 -0400 Subject: [bug#31024] [FIXME] gnu: Add mrustc. Resent-Message-ID: MIME-Version: 1.0 In-Reply-To: <20180402154851.15672-1-dannym@scratchpost.org> References: <20180402154851.15672-1-dannym@scratchpost.org> From: Catonano Date: Mon, 2 Apr 2018 19:21:27 +0200 Message-ID: Content-Type: multipart/alternative; boundary="000000000000efc60b0568e0d1f0" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Danny Milosavljevic Cc: 31024@debbugs.gnu.org --000000000000efc60b0568e0d1f0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 2018-04-02 17:48 GMT+02:00 Danny Milosavljevic : > * gnu/packages/rust.scm (mrustc): New variable. > wow ! Thanks for working on Rust ! I'm not able to evaluate this patch, it's way too complicated for me and yet I'd like to ask you a few questions > > --- > gnu/packages/rust.scm | 88 ++++++++++++++++++++++++++++++ > +++++++++++++++++++++ > 1 file changed, 88 insertions(+) > > diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm > index 70140579b..507c0fe25 100644 > --- a/gnu/packages/rust.scm > +++ b/gnu/packages/rust.scm > @@ -6,6 +6,7 @@ > ;;; Copyright =C2=A9 2017, 2018 Nikolai Merinov org> > ;;; Copyright =C2=A9 2017 Efraim Flashner > ;;; Copyright =C2=A9 2018 Tobias Geerinckx-Rice > +;;; Copyright =C2=A9 2018 Danny Milosavljevic > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -46,6 +47,7 @@ > #:use-module (guix build-system gnu) > #:use-module (guix build-system trivial) > #:use-module (guix download) > + #:use-module (guix git-download) > #:use-module ((guix licenses) #:prefix license:) > #:use-module (guix packages) > #:use-module ((guix build utils) #:select (alist-replace)) > @@ -150,6 +152,92 @@ in turn be used to build the final Rust.") > (modules '((guix build utils))) > (snippet '(begin (delete-file-recursively "src/llvm") #t)))) > > +(define-public mrustc > + (let ((commit "1a16def28935548e29be0fe5a632e25c83045924") > + (revision "0") > + (rustc-version "1.19.0")) > + (package > + (name "mrustc") > + (version (git-version "0.0.0" revision commit)) > + (source (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/thepowersgang/mrustc.git"= ) > + (commit commit))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 > + "0i5kqnzsd1rkj8qm147jx934nyn9sd > 1fz2b4achj9z0r00h84dh6")))) > + (outputs '("out" "cargo")) > + (build-system gnu-build-system) > + (inputs > + `(("llvm" ,llvm-3.9.1))) > Why is llvm needed ? I read on their git repo page that it's tested with the gcc 5.4 and 6 ? https://github.com/thepowersgang/mrustc > + (native-inputs > + `(("bison" ,bison) > + ("flex" ,flex) > + ;; Required for the libstd sources. > + ("rustc" > + ,(rust-source "1.19.0" "0l8c14qsf42rmkqy92ahij4vf356db > yspxcips1aswpvad81y8qm")))) > + (arguments > + `(#:tests? #f > + #:make-flags (list (string-append "LLVM_CONFIG=3D" > + (assoc-ref %build-inputs > "llvm") > + "/bin/llvm-config")) > + #:phases > + (modify-phases %standard-phases > + (add-after 'unpack 'unpack-target-compiler > + (lambda* (#:key inputs outputs #:allow-other-keys) > + (substitute* "minicargo.mk" > + ;; Don't try to build LLVM. > + (("^[$][(]LLVM_CONFIG[)]:") "xxx:") > + ;; Build for the correct target architecture. > + (("^RUSTC_TARGET :=3D x86_64-unknown-linux-gnu") > + (string-append "RUSTC_TARGET :=3D " > + ,(or (%current-target-system) > + (nix-system->gnu-triplet > + (%current-system)))))) > + (invoke "tar" "xf" (assoc-ref inputs "rustc")) > + (chdir "rustc-1.19.0-src") > + (invoke "patch" "-p0" "../rust_src.patch") > + (chdir "..") > + #t)) > + (delete 'configure) > + (add-after 'build 'build-minicargo > + (lambda _ > + (for-each (lambda (target) > + (invoke "make" "-f" "minicargo.mk" target)) > + '("output/libstd.hir" > "output/libpanic_unwind.hir" > + "output/libproc_macro.hir" > "output/libtest.hir")) > + ;; Technically the above already does it - but we want to > be clear. > + (invoke "make" "-C" "tools/minicargo"))) > + (replace 'install > + (lambda* (#:key inputs outputs #:allow-other-keys) > + (let* ((out (assoc-ref outputs "out")) > + (bin (string-append out "/bin")) > + (tools-bin (string-append out "/tools/bin")) > + (cargo-out (assoc-ref outputs "cargo")) > + (cargo-bin (string-append cargo-out "/bin")) > + (lib (string-append out "/lib")) > + (lib/rust (string-append lib "/mrust")) > + (gcc (assoc-ref inputs "gcc"))) > so there's the gcc too ? =F0=9F=A4=94 > + ;; These files are not reproducible. > + (for-each delete-file (find-files "output" "\\.txt$")) > + (mkdir-p lib) > + (copy-recursively "output" lib/rust) > + (mkdir-p bin) > + (mkdir-p tools-bin) > + (install-file "bin/mrustc" bin) > + ;; minicargo uses relative paths to resolve mrustc. > + (install-file "tools/bin/minicargo" tools-bin) > + (install-file "tools/bin/minicargo" cargo-bin) > + #t)))))) > but then it's not used ? > + (synopsis "Compiler for the Rust progamming language") > + (description "Rust is a systems programming language that provides > memory > +safety and thread safety guarantees.") > + (home-page "https://github.com/thepowersgang/mrustc") > + ;; Dual licensed. > + (license (list license:asl2.0 license:expat))))) > + > (define-public rust-1.23 > (package > (name "rust") > > > > Thanks again ! --000000000000efc60b0568e0d1f0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
2018-04-02 17:48 GMT+02:00 Danny Milosavljevic <da= nnym@scratchpost.org>:
* gnu/packages/rust.scm (= mrustc): New variable.

wow !

Th= anks for working on Rust !

I'm not able to evaluate t= his patch, it's way too complicated for me and yet I'd like to ask = you a few questions
=C2=A0
---
=C2=A0gnu/packages/rust.scm | 88 +++++++++++++++++++++++++++++++++++++= ++++++++++++++
=C2=A01 file changed, 88 insertions(+)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 70140579b..507c0fe25 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -6,6 +6,7 @@
=C2=A0;;; Copyright =C2=A9 2017, 2018 Nikolai Merinov <nikolai.merinov@member.fsf.org>= ;
=C2=A0;;; Copyright =C2=A9 2017 Efraim Flashner <efraim@flashner.co.il>
=C2=A0;;; Copyright =C2=A9 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright =C2=A9 2018 Danny Milosavljevic <dannym+a@scratchpost.org>
=C2=A0;;;
=C2=A0;;; This file is part of GNU Guix.
=C2=A0;;;
@@ -46,6 +47,7 @@
=C2=A0 =C2=A0#:use-module (guix build-system gnu)
=C2=A0 =C2=A0#:use-module (guix build-system trivial)
=C2=A0 =C2=A0#:use-module (guix download)
+=C2=A0 #:use-module (guix git-download)
=C2=A0 =C2=A0#:use-module ((guix licenses) #:prefix license:)
=C2=A0 =C2=A0#:use-module (guix packages)
=C2=A0 =C2=A0#:use-module ((guix build utils) #:select (alist-replace))
@@ -150,6 +152,92 @@ in turn be used to build the final Rust.")
=C2=A0 =C2=A0 =C2=A0(modules '((guix build utils)))
=C2=A0 =C2=A0 =C2=A0(snippet '(begin (delete-file-recursively "src= /llvm") #t))))

+(define-public mrustc
+=C2=A0 (let ((commit "1a16def28935548e29be0fe5a632e25c83045= 924")
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 (revision "0")
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 (rustc-version "1.19.0"))
+=C2=A0 =C2=A0 (package
+=C2=A0 =C2=A0 =C2=A0 (name "mrustc")
+=C2=A0 =C2=A0 =C2=A0 (version (git-version "0.0.0" revision comm= it))
+=C2=A0 =C2=A0 =C2=A0 (source (origin
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (method git-fetch)=
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (uri (git-referenc= e
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 (url "https://github.com/thepowersgang/mru= stc.git")
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 (commit commit)))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (file-name (git-fi= le-name name version))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (sha256
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(base32
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "= 0i5kqnzsd1rkj8qm147jx934nyn9sd1fz2b4achj9z0r00h84dh6"))))
+=C2=A0 =C2=A0 =C2=A0 (outputs '("out" "cargo")) +=C2=A0 =C2=A0 =C2=A0 (build-system gnu-build-system)
+=C2=A0 =C2=A0 =C2=A0 (inputs
+=C2=A0 =C2=A0 =C2=A0 =C2=A0`(("llvm" ,llvm-3.9.1)))

Why is llvm needed ?

I read on th= eir git repo page that it's tested with the gcc 5.4 and 6 ?
https://github.com/t= hepowersgang/mrustc

=C2=A0
+=C2=A0 =C2=A0 =C2=A0 (native-inputs
+=C2=A0 =C2=A0 =C2=A0 =C2=A0`(("bison" ,bison)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0("flex" ,flex)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0;; Required for the libstd sources.
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0("rustc"
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ,(rust-source "1.19.0" "= 0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm")))) +=C2=A0 =C2=A0 =C2=A0 (arguments
+=C2=A0 =C2=A0 =C2=A0 =C2=A0`(#:tests? #f
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0#:make-flags (list (string-append "= LLVM_CONFIG=3D"
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0(assoc-ref %build-inputs "llvm")
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0"/bin/llvm-config"))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0#:phases
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(modify-phases %standard-phases
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(add-after 'unpack 'unpac= k-target-compiler
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(lambda* (#:key inputs out= puts #:allow-other-keys)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(substitute* "= minica= rgo.mk"
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0;; Don't= try to build LLVM.
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(("^[$]= [(]LLVM_CONFIG[)]:") "xxx:")
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0;; Build for= the correct target architecture.
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(("^RUS= TC_TARGET :=3D x86_64-unknown-linux-gnu")
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (string-app= end "RUSTC_TARGET :=3D "
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0,(or (%current-target-system)<= br> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (nix-system->= ;gnu-triplet
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(%current= -system))))))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(invoke "tar&q= uot; "xf" (assoc-ref inputs "rustc"))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(chdir "rustc-= 1.19.0-src")
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(invoke "patch= " "-p0" "../rust_src.patch")
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(chdir "..&quo= t;)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0#t))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(delete 'configure)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(add-after 'build 'build-= minicargo
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(lambda _
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(for-each (lambda (= target)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(invoke "make" "-f" "minicargo.m= k" target))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0'("output/libstd.hir" "output/libpanic_= unwind.hir"
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0"output/libproc_macro.hir" "output/l= ibtest.hir"))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0;; Technically the = above already does it - but we want to be clear.
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(invoke "make&= quot; "-C" "tools/minicargo")))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(replace 'install
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(lambda* (#:key inputs out= puts #:allow-other-keys)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(let* ((out (assoc-= ref outputs "out"))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 (bin (string-append out "/bin"))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 (tools-bin (string-append out "/tools/bin"))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 (cargo-out (assoc-ref outputs "cargo"))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 (cargo-bin (string-append cargo-out "/bin"))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 (lib (string-append out "/lib"))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 (lib/rust (string-append lib "/mrust"))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 (gcc (assoc-ref inputs "gcc")))

so there's the gcc too ? =F0=9F=A4=94
=C2=A0
=
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0;; These fil= es are not reproducible.
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(for-each de= lete-file (find-files "output" "\\.txt$"))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(mkdir-p lib= )
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(copy-recurs= ively "output" lib/rust)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(mkdir-p bin= )
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(mkdir-p too= ls-bin)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(install-fil= e "bin/mrustc" bin)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0;; minicargo= uses relative paths to resolve mrustc.
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(install-fil= e "tools/bin/minicargo" tools-bin)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(install-fil= e "tools/bin/minicargo" cargo-bin)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0#t))))))
=

but then it's not used ?

=C2=A0=
+=C2=A0 =C2=A0 =C2=A0 (synopsis "Compiler for the Rust progamming lang= uage")
+=C2=A0 =C2=A0 =C2=A0 (description "Rust is a systems programming lang= uage that provides memory
+safety and thread safety guarantees.")
+=C2=A0 =C2=A0 =C2=A0 (home-page "https://github.com/thepowersgang/mrustc")
+=C2=A0 =C2=A0 =C2=A0 ;; Dual licensed.
+=C2=A0 =C2=A0 =C2=A0 (license (list license:asl2.0 license:expat)))))
+
=C2=A0(define-public rust-1.23
=C2=A0 =C2=A0(package
=C2=A0 =C2=A0 =C2=A0(name "rust")




Thanks again !
<= /div>
--000000000000efc60b0568e0d1f0--