diff --git a/gnu/packages/mercury.scm b/gnu/packages/mercury.scm index d3c150d187..fa230bbc7a 100644 --- a/gnu/packages/mercury.scm +++ b/gnu/packages/mercury.scm @@ -50,116 +50,3 @@ (commit commit))) (sha256 (base32 package-hash))))))) -;; NOTE: Mercury /MUST/ bootstrap from a tarball release. -;; Once the bootstrapping compiler is established, this -;; minimal build can be used for further compiling Mercury -;; from a git checkout with additional grades enabled. -(define-public mercury-minimal - (package - (name "mercury-minimal") - (version "22.01.4") - (source (origin - (method url-fetch) - (uri (string-append - "https://dl.mercurylang.org/release/mercury-srcdist-" - version ".tar.gz")) - (sha256 - (base32 - "1vakjg4rqpplkxw7k91qv8jvlasrr6iwrzrylwqllbq088qs0mbp")))) - (build-system gnu-build-system) - (arguments - `(#:modules ((guix build gnu-build-system) - (guix build utils) - (ice-9 match)) - #:tests? #f ; Tests are run on the stage-2 compiler. - ;; TODO: Find a way to bypass all static linkages. - #:configure-flags (list "--enable-minimal-install") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'replace-boehm-gc - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (libgc (assoc-ref inputs "libgc")) - (libatomic-ops (assoc-ref inputs "libatomic-ops")) - (unpack (assoc-ref %standard-phases 'unpack)) - (patch-source-shebangs - (assoc-ref %standard-phases 'patch-source-shebangs))) - (map (match-lambda - ((src orig-name new-name) - (with-directory-excursion "." - (apply unpack (list #:source src))) - (delete-file-recursively new-name) - (invoke "mv" orig-name new-name) - (with-directory-excursion new-name - (apply patch-source-shebangs (list #:source src))))) - `((,libgc "source" "boehm_gc"))) - (map (match-lambda - ((src orig-name new-name) - (with-directory-excursion "." - (apply unpack (list #:source src))) - (delete-file-recursively new-name) - (invoke "mv" orig-name new-name) - (with-directory-excursion new-name - (apply patch-source-shebangs (list #:source src))))) - `((,libatomic-ops "source" "boehm_gc/libatomic_ops")))))) - (add-after 'replace-boehm-gc 'patch-paths - (lambda _ - (substitute* - (list "Makefile" - "Mmakefile" - "scripts/mercury_update_interface.in" - "scripts/mercury_config.in" - "scripts/mmake.in" - "scripts/Mmake.vars.in" - "scripts/mdb.in" - "scripts/rs6000_hack" - "scripts/mmc.in" - "scripts/canonical_grade" - "scripts/mprof.in" - "scripts/gud.el" - "scripts/ml.in" - "scripts/canonical_grade.in" - "scripts/mdprof.in" - "scripts/vpath_find" - "scripts/mkfifo_using_mknod.in" - "scripts/prepare_install_dir.in" - "scripts/mprof_merge_runs" - "scripts/mtc" - "scripts/mgnuc.in" - "scripts/c2init.in" - "bindist/bindist.Makefile" - "boehm_gc/configure.ac" - "boehm_gc/Makefile.direct") - (("/bin/sh") (which "sh")) - (("/bin/pwd") (which "pwd")) - (("/bin/rm") (which "rm")))))))) - (native-inputs - `(("texinfo" ,texinfo) - ("flex" ,flex) - ("tcsh" ,tcsh) - ("bison" ,bison) - ("readline" ,readline) - ("libatomic-ops" ,(package-source - (gc-fork - libatomic-ops - "https://github.com/Mercury-Language/libatomic_ops.git" - "95809e50a5ff6e765f1af2f589796970a73e9c00" - "0a1y795bvzwzk1v8d9g6wvifj7hvhmxlir1g581bq2slj16h95iz"))) - ("libgc" ,(package-source - (gc-fork - libgc-7 - "https://github.com/Mercury-Language/bdwgc.git" - "def741752f55f9068d4f469a14c4b2c168829730" - "07d94j5l9w6l2kjmcwblgn5lf77aw3r0zjn22pq4hbhknky6ny43"))) - ("pkg-config" ,pkg-config))) - (synopsis "Pure logic programming language (used only for -bootstrapping dependent Mercury)") - (description "Mercury is a logic/functional programming language which -combines the clarity and expressiveness of declarative programming with advanced -static analysis and error detection features. Its highly optimized execution -algorithm delivers efficiency far in excess of existing logic programming -systems, and close to conventional programming systems. Mercury addresses -the problems of large-scale program development, allowing modularity, -separate compilation, and numerous optimization/time trade-offs.") - (home-page "https://mercurylang.org") - (license license:gpl2)))