Package: guix-patches;
Reported by: Brett Gilio <brettg <at> posteo.net>
Date: Sat, 14 Dec 2019 03:59:02 UTC
Severity: normal
Done: zimoun <zimon.toutoune <at> gmail.com>
Bug is archived. No further changes may be made.
Message #38 received at 38605 <at> debbugs.gnu.org (full text, mbox):
From: zimoun <zimon.toutoune <at> gmail.com> To: Brett Gilio <brettg <at> posteo.net> Cc: 38605 <at> debbugs.gnu.org Subject: Re: [bug#38605] [WIP MLton 1/1] gnu: Add mlton. Date: Mon, 14 Sep 2020 19:36:37 +0200
Hi Brett, Digging in old unmerged patches, I hit this one. :-) On Fri, 13 Dec 2019 at 21:59, Brett Gilio <brettg <at> posteo.net> wrote: >>From d6e94b0a04bf71e51d29b7228bd4233bf763eaaa Mon Sep 17 00:00:00 2001 > From: Brett Gilio <brettg <at> posteo.net> > Date: Fri, 13 Dec 2019 21:54:13 -0600 > Subject: [WIP MLton 1/1] gnu: Add mlton. > > * gnu/packages/sml.scm (mlton-no-gcc): New variable. > --- > gnu/packages/sml.scm | 138 +++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 138 insertions(+) What is the status of the WIP? Have you make progress? > diff --git a/gnu/packages/sml.scm b/gnu/packages/sml.scm > index 30ee58c498..e45ce4c59c 100644 > --- a/gnu/packages/sml.scm > +++ b/gnu/packages/sml.scm > @@ -75,3 +75,141 @@ function interface, and a symbolic debugger.") > (license > (list license:lgpl2.1 > license:lgpl2.1+)))) > + > +(define-private mlton-reduced > + (package > + (name "mlton") > + (version "20180207") > + (source (origin > + (method url-fetch) > + (uri (string-append "https://github.com/MLton/" name > + "/releases/download/on-" version > + "-release/" name "-" version > + "-1.amd64-linux.tgz")) > + (sha256 > + (base32 > + "0f4q575yfm5dpg4a2wsnqn4l2zrar96p6rlsk0dw10ggyfwvsjlf")))) > + (build-system trivial-build-system) > + ;; TODO: The build arguments can be much more programmatic. > + (arguments > + '(#:modules > + ((guix build utils)) > + #:builder > + (begin > + (use-modules (guix build utils)) > + (let* > + ((out (assoc-ref %outputs "out")) > + (source (assoc-ref %build-inputs "source")) > + (tar (string-append (assoc-ref %build-inputs "tar") "/bin/tar")) > + (patchelf (string-append (assoc-ref %build-inputs "patchelf") "/bin/patchelf")) > + (ld (string-append (assoc-ref %build-inputs "glibc") "/lib/ld-linux-x86-64.so.2")) > + (gmp (string-append (assoc-ref %build-inputs "gmp") "/lib")) > + (bash (string-append (assoc-ref %build-inputs "bash") "/bin/bash")) > + (rm (string-append (assoc-ref %build-inputs "coreutils") "/bin/rm")) > + (PATH > + (string-append > + (assoc-ref %build-inputs "gzip") "/bin" > + ":" > + (assoc-ref %build-inputs "tar") "/bin"))) > + (mkdir-p out) > + (mkdir-p (string-append out "/bin")) > + (with-directory-excursion out > + (setenv "PATH" PATH) > + (system* tar "xf" source "--strip-components=1") > + ;; PATCHES FOR /LIB/MLTON/MLTON-COMPILE > + (system* patchelf > + "--set-interpreter" > + ld > + (string-append out "/lib/mlton/mlton-compile")) > + (system* patchelf > + "--set-rpath" > + gmp > + (string-append out "/lib/mlton/mlton-compile")) > + ;; PATCHES FOR /BIN/MLLEX > + (system* patchelf > + "--set-interpreter" > + ld > + (string-append out "/bin/mllex")) > + (system* patchelf > + "--set-rpath" > + gmp > + (string-append out "/bin/mllex")) > + ;; PATCHES FOR /BIN/MLYACC > + (system* patchelf > + "--set-interpreter" > + ld > + (string-append out "/bin/mlyacc")) > + (system* patchelf > + "--set-rpath" > + gmp > + (string-append out "/bin/mlyacc")) > + ;; DELETE ALL UNNEEDED COMPONENTS > + (system* rm "-rf" > + "bin/mlprof" > + "bin/mlnlffigen" > + "LICENSE" > + "Makefile" > + "CHANGELOG.adoc" > + "README.adoc" > + "share") > + ;; PATCH SHEBANG FOR BIN/MLTON > + (substitute* "bin/mlton" > + (("/usr/bin/env bash") > + bash))))))) > + (native-inputs `(("glibc" ,glibc) > + ("patchelf" ,patchelf) > + ("tar" ,tar) > + ("bash" ,bash) > + ("coreutils" ,coreutils) > + ("gzip" ,gzip) > + ("gmp" ,gmp))) > + (supported-systems '("x86_64-linux")) > + (synopsis #f) > + (description #f) > + (home-page #f) > + (license #f))) > + > +(define-public mlton-no-gcc > + (package > + (name "mlton-no-gcc") > + (version "20180207") > + (source (origin > + (method url-fetch) > + (uri (string-append "https://github.com/MLton/" name > + "/archive/on-" version > + "-release.tar.gz")) > + (sha256 > + (base32 > + "1l1flhxx8hr4n3mf87m02231r3m2f3sh28zfxma3g41jscmj21zi")))) > + (build-system gnu-build-system) > + (arguments > + `(#:parallel-build? #f ; See: https://github.com/MLton/mlton/issues/348 > + #:phases > + (modify-phases %standard-phases > + (delete 'configure) > + (replace 'install > + (lambda _ > + (invoke "make" > + (string-append "PREFIX=" (assoc-ref %outputs "out")) > + "install")))))) > + (native-inputs > + `(("mlton" ,mlton-reduced) > + ("which" ,which))) > + (propagated-inputs > + `(("gmp" ,gmp))) > + (supported-systems '("x86_64-linux")) > + (synopsis "Whole-program, optimizing Standard ML compiler") > + (description "MLton is a whole-program optimizing compiler for Standard ML. > +MLton generates standalone executables with excellent runtime performance, is > +SML '97 compliant, and has a complete basis library. MLton has source-level > +profiling, a fast C FFI, an interface to the GNU multiprecision library, and > +lots of useful libraries.") > + (home-page "http://mlton.org/") > + (license license:hpnd))) > + > +(define-public mlton > + (package (inherit mlton-no-gcc) > + (name "mlton") > + (propagated-inputs > + `(("gcc-toolchain" ,gcc-toolchain) > + ,@(package-propagated-inputs mlton-no-gcc))))) All the best, simon
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.