all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Brett Gilio <brettg@gnu.org>
To: 38606@debbugs.gnu.org
Subject: [bug#38606] [WIP v2 1/1] gnu: Add smlnj.
Date: Wed, 15 Jan 2020 18:36:43 -0600	[thread overview]
Message-ID: <87ftggw82s.fsf@gnu.org> (raw)
In-Reply-To: <871rt77dsl.fsf@posteo.net>

[-- Attachment #1: [WIP v2 1/1] gnu: Add smlnj. --]
[-- Type: text/x-patch, Size: 7445 bytes --]

From 51d83f01e80f274fe30cf6cf39f5f0eff554c7a6 Mon Sep 17 00:00:00 2001
From: Brett Gilio <brettg@posteo.net>
Date: Fri, 13 Dec 2019 22:02:20 -0600
Subject: [WIP v2 1/1] gnu: Add smlnj.

* gnu/packages/sml.scm (smlnj): New variable.
---
 gnu/packages/sml.scm | 158 ++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 156 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/sml.scm b/gnu/packages/sml.scm
index d441dcf638..af7f15512b 100644
--- a/gnu/packages/sml.scm
+++ b/gnu/packages/sml.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2017 Andy Patterson <ajpatter@uwaterloo.ca>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,7 +28,8 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix packages))
+  #:use-module (guix packages)
+  #:use-module (guix gexp))
 
 (define-public polyml
   (package
@@ -75,3 +76,156 @@ function interface, and a symbolic debugger.")
     (license
      (list license:lgpl2.1
            license:lgpl2.1+))))
+
+(define (smlnj-file version filename hash)
+  (origin
+    (method url-fetch)
+    (uri (string-append "http://smlnj.cs.uchicago.edu/dist/working/" version "/" filename))
+    (sha256
+     (base32
+      hash))))
+
+(define-public smlnj
+  (package
+    (name "smlnj")
+    (version "110.94")
+    (source #f) ; Sources are passed as native-inputs.
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'unpack
+           (lambda* (#:key inputs #:allow-other-keys)
+             (for-each
+              (lambda (file)
+                (invoke "tar" "xvf" (assoc-ref inputs file)))
+              (list "config"
+                    "cm"
+                    "compiler"
+                    "runtime"
+                    "system"
+                    "MLRISC"
+                    "smlnj-lib"
+                    "old-basis"
+                    "ckit"
+                    "nlffi"
+                    "cml"
+                    "eXene"
+                    "ml-lpt"
+                    "ml-lex"
+                    "ml-yacc"
+                    "ml-burg"
+                    "pgraph"
+                    "trace-debug-profile"
+                    "heap2asm"
+                    "smlnj-c"))
+             #t))
+         (delete 'configure)
+         (replace 'patch-source-shebangs
+           (lambda _ (substitute*
+                         (list "config/install.sh"
+                               "runtime/objs/mk.amd64-linux")
+                       (("/bin/sh") (which "sh")))))
+         (replace 'build
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "config/chk-global-names.sh"
+               (("CC=.*") "CC=gcc"))
+             (substitute* "config/unpack"
+               (("# Now do it:") "exit 0"))
+             (substitute* "config/_arch-n-opsys"
+               (("uname") (which "uname")))
+             (substitute* "config/install.sh"
+               (("DEFAULT_SIZE=\"32\"")
+                "DEFAULT_SIZE=\"64\"")
+               (("BASEDIR=\\$ROOT/base")
+                "BASEDIR=$ROOT"))
+             (invoke "sh" "config/install.sh"))))))
+    (native-inputs
+     `(("cm"
+        ,(smlnj-file version
+                     "cm.tgz"
+                     "1x70nrk1gnxrzx16c7dyns35zkrqc0ngqyk34880ih04ccwmyxkp"))
+       ("smlnj-c"
+        ,(smlnj-file version
+                     "smlnj-c.tgz"
+                     "1w6yrckbn5yxi3m0hqb57lwmf7pri66yi0zs2ahvcv5bwbr4dfh1"))
+       ("config"
+        ,(smlnj-file version
+                     "config.tgz"
+                     "16ynwrakbcv5mp8i596aw8da09qdjkx9j0y5wxgix8aa99px4aba"))
+       ("compiler"
+        ,(smlnj-file version
+                     "compiler.tgz"
+                     "1fmxj017s9bg1hr4psvcxasp0hcrc00bk9f0845fr7gy8mb743a3"))
+       ("runtime"
+        ,(smlnj-file version
+                     "runtime.tgz"
+                     "08xq9ddp4ciqi1rwsnma0rsj7ydlbzcb9pc9m27n4krd61h8k4z9"))
+       ("system"
+        ,(smlnj-file version
+                     "system.tgz"
+                     "0lmi03mx9fbrdshazqmrvg1j4s6hnpyfm90rl7f8qhgy0qi8almh"))
+       ("MLRISC"
+        ,(smlnj-file version
+                     "MLRISC.tgz"
+                     "0y3f1ffzpqfn03a941dmjsr0zz4lz742ww1zbfnp15jbcy7mybiv"))
+       ("smlnj-lib"
+        ,(smlnj-file version
+                     "smlnj-lib.tgz"
+                     "1vvlgws7kb53v63hwfakvq5xbiix1pqiafk5m86qas46ayy731g7"))
+       ("old-basis"
+        ,(smlnj-file version
+                     "old-basis.tgz"
+                     "1kjgwnz0caymk4im9mjf88f2cym8bndnz0r84di5l4bd6pkwl8b2"))
+       ("ckit"
+        ,(smlnj-file version
+                     "ckit.tgz"
+                     "158973wwd4pkf6fpzwyfm9968xl7pmb2sd2zf1fb3s055gm5anz2"))
+       ("nlffi"
+        ,(smlnj-file version
+                     "nlffi.tgz"
+                     "13b3561b2bxpxyyy8ld359na7vimndw53nsc0fgr9li4xa3y70hl"))
+       ("cml"
+        ,(smlnj-file version
+                     "cml.tgz"
+                     "0q00nmsqq33vdykyz9mgsy7r437l26gnxxmfl03ls88kiq7fbq3l"))
+       ("eXene"
+        ,(smlnj-file version
+                     "eXene.tgz"
+                     "0phxh34psji67z30lq61b8pkwp7m45pakn6vnk592lmibikax2q0"))
+       ("ml-lpt"
+        ,(smlnj-file version
+                     "ml-lpt.tgz"
+                     "053784lbf57pzd80gz4x7chqyxvdn580ix6pkqwcr1vwpv980zyj"))
+       ("ml-lex"
+        ,(smlnj-file version
+                     "ml-lex.tgz"
+                     "052w6ck80v1jgql4m0k24hkkx9k4qwvqgxvk22hnwfh6k1avrk1i"))
+       ("ml-yacc"
+        ,(smlnj-file version
+                     "ml-yacc.tgz"
+                     "1vj346ffzx7vbcnzhw49cqzlmfw35hzzhvlivyakdqalqwc97h6m"))
+       ("ml-burg"
+        ,(smlnj-file version
+                     "ml-burg.tgz"
+                     "02qw4xkdh4h6ngj8a5yhgg4k4ph6lnhslbfh1drdz79whd389lzx"))
+       ("pgraph"
+        ,(smlnj-file version
+                     "pgraph.tgz"
+                     "0c4qgm46dvkix4s56hj3ii9025m3pcxj4hc2z4mcdxlw0gj0r684"))
+       ("trace-debug-profile"
+        ,(smlnj-file version
+                     "trace-debug-profile.tgz"
+                     "1z8ip80hgnj637ywcpzj9hfbnsci3qsdhssdbgparkzh7mk2bi4i"))
+       ("heap2asm"
+        ,(smlnj-file version
+                     "heap2asm.tgz"
+                     "0g0ndf4wj197igrac136lsc8wpj9686vv0kwarrbwffrrrkb1w76"))))
+    (synopsis "Standard ML of New Jersey interactive compiler")
+    (description "SML/NJ is an implementation of the Standard ML programming
+language.  Standard ML has many features, including type safety, polymorphism,
+algebraic data types with pattern matching, higher-order functions, and a
+sophisticated module system.  It is especially well-suited for writing
+compilers and other language processors.")
+    (home-page "http://www.smlnj.org/")
+    (license license:bsd-2)))
-- 
2.24.1

  parent reply	other threads:[~2020-01-16  0:37 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-14  4:04 [bug#38606] [WIP SMLnj 0/1] Add SMLnj Brett Gilio
2019-12-14  4:06 ` [bug#38606] [WIP SMLnj 1/1] gnu: Add smlnj Brett Gilio
2020-01-16  0:36 ` [bug#38606] [WIP v2 0/1] Add SMLNJ Brett Gilio
2020-01-16  0:36 ` Brett Gilio [this message]
2020-01-16 14:59   ` [bug#38606] [WIP v2 1/1] gnu: Add smlnj Brett Gilio
2021-10-29 23:33     ` [bug#38606] [WIP SMLnj 0/1] Add SMLnj Tim Lee
2021-11-10 11:07     ` [bug#38606] [WIP v2 1/1] gnu: Add smlnj Foo Chuan Wei
2021-11-07 15:00 ` [bug#38606] [WIP SMLnj 0/1] Add SMLnj Foo Chuan Wei
2021-11-08 21:40   ` Foo Chuan Wei
2021-11-09 10:03     ` Josselin Poiret via Guix-patches via
2021-11-10  9:21       ` Foo Chuan Wei
2021-12-12 16:37 ` bug#38606: " Chuan Wei Foo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87ftggw82s.fsf@gnu.org \
    --to=brettg@gnu.org \
    --cc=38606@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.