From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 07 10:00:28 2021 Received: (at 38606) by debbugs.gnu.org; 7 Nov 2021 15:00:29 +0000 Received: from localhost ([127.0.0.1]:54300 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjjeg-00005x-Ku for submit@debbugs.gnu.org; Sun, 07 Nov 2021 10:00:28 -0500 Received: from mail-oln040092254059.outbound.protection.outlook.com ([40.92.254.59]:6052 helo=APC01-PU1-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjjed-00005f-QB for 38606@debbugs.gnu.org; Sun, 07 Nov 2021 10:00:21 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SaZJSzES6GpN7FuxbIRD4MClVPCbT7F65o40J1uzKeCipszGGXweNu5Ff+jlwWsA5wv0Ad0yFwP1a+1BSAkz4s9ZLSIRLU+/grod8IQFXgiw52QhV3OLw2umacjh+2UuHxlhN1vTkyR9C3Vq2aQQ2n/dftr4L129q3nZz7SVxRHeOmr0PI+y2WEc3t5aSIAdS+MXtbgOtsT6ExL4C6eIexnruw3e0e5iQD/eBq4/8LHG40YGTk55/Dbj2GKQRTjRKxrfmV9G1Gi+6u1zdsSvBoj4Mix/2m6V/Zl2e03gDO7vEgz2Ki0rE+IEadXYGDTPD/HkVv8U39afpGbPD+WQPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/H/cs9S0V3OL9Wnf2n+whYXZjzMW49D2b6rzb7bTbFE=; b=mG1aHF6W/atrwFOKdc0uo6xmtwlnJb1r1pIg3/IXi5VFOyNTKuR0eUIXme2cVURPSoB4cQbkkVGb89ADcgiKolN2UWeYOqnhq/zEibuv5DKc7jPTtogSN6g8gC2w8OzLiswI9/0Htqk9Mj9p2zR0Oke4RAZWLYeq1mFKE4ll7cu2ogZ90VhbeJKUiMsB1LpwuyWCOej3Voh8UuwuuSDb8FWxJBKyuac/dptB7m0SAH91H/8FdT7daCqiRTHWCAWTxbnAJXM+R0DMqcywDCxcp4VxDyG3uJg1USpUhh2FI1a9/Vf8Fu54pwy/+AYKrxdKlHVszLiNefBPUmdKDJ3njg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/H/cs9S0V3OL9Wnf2n+whYXZjzMW49D2b6rzb7bTbFE=; b=jX6J5LgtJQ9CpCYP5kVBHz1SgNo8vAuToU34KXuqwulNmIH6SzWrdgtnDya4jTvivQ4C7c8MEqqbwcUc1pqGON/HYkDu/gFMy4GhuulWEmBMSB+E4M1DqI3jfTM0WR4fT7nsSQBjlcrq2MXMlKKuNJKwaMd00iUZhD8L/FZ8NtuJhf+Jorz98cY+z+hhj4MOp2ze7Ok12XNLaadintQGc4FZHXza3PzbVqDR9+MOgF7D0XnG9pKQhSd/UlUVQJequVdSGfZb3tnTQCBElq83Z4CshgERMyAwtzk2V6ryXC1Fcw9JX0x8ZIlpYca9aBCGDYUAGKdXWb6HOor0Z+pI5g== Received: from PU1PR01MB2155.apcprd01.prod.exchangelabs.com (2603:1096:803:1c::21) by PSAPR01MB3991.apcprd01.prod.exchangelabs.com (2603:1096:301:47::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Sun, 7 Nov 2021 15:00:11 +0000 Received: from PU1PR01MB2155.apcprd01.prod.exchangelabs.com ([fe80::258d:e124:fd3a:40ee]) by PU1PR01MB2155.apcprd01.prod.exchangelabs.com ([fe80::258d:e124:fd3a:40ee%7]) with mapi id 15.20.4669.015; Sun, 7 Nov 2021 15:00:11 +0000 Date: Sun, 7 Nov 2021 15:00:07 +0000 From: Foo Chuan Wei To: 38606@debbugs.gnu.org Subject: Re: [WIP SMLnj 0/1] Add SMLnj. Message-ID: Mail-Followup-To: 38606@debbugs.gnu.org, brettg@gnu.org Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-TMN: [OJuHRBS7ByDe/6kMhmbLzmMJt5H8EDsO] X-ClientProxiedBy: HK2PR0401CA0018.apcprd04.prod.outlook.com (2603:1096:202:2::28) To PU1PR01MB2155.apcprd01.prod.exchangelabs.com (2603:1096:803:1c::21) X-Microsoft-Original-Message-ID: <20211107150007.7j6mirdhkey2dcct@main> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from main (61.6.253.41) by HK2PR0401CA0018.apcprd04.prod.outlook.com (2603:1096:202:2::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend Transport; Sun, 7 Nov 2021 15:00:09 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a6a677a4-7d6d-4e07-98f1-08d9a1ff4baa X-MS-TrafficTypeDiagnostic: PSAPR01MB3991: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bdyqARodXLdF0M6qUa+IEhIk4WrTnzTdtKUui9ZB1mEE3CyN4KK2isEl6Qn7wXHwV0LefurMCv3tpbRIQaUmFhgBX8s3GhZq8Qi0zuRFWiIQ3yDgHcUIUn8BRHOsoe/fCS33Zn/v5B5riApqG3bSSDaRI1NuQMVW5BnawXaVa7dWhxnyYjnr+A3xnSE2b2VO+cVITNUrNoVGcv891t1IQXgRlOyPgwSBXIdSphzZ99akA0ApKYsl8asaaqVEYxvARwSeZ893N2u86SVsgESoLt4UMjQC8jX9q1jmZB4nUNdTVR4KmTayPnzWH3o+0E5uFNUFpmE3FV3nRPrgGcvwe6tbzUzzDLl7NFqY3DhaihoyU1U81/T1Y2rVBvmPpkQ7ILX9M0zHs1KIYlQSAM0AxQHgRoiK1hOBHizleIB1aYxJh3KCMsKLRcbecS1sHBM13ccAL+ZxmDsNA6Zb+cpMdJmNSmUcqDy+9IXMQTIZeDzSnP5ANLBVlQ6mtaue1qaUWqpJAF2Nh8AdX4PNSGzhVMjoHKPBxfqHIVitj2w3G1Aql8yBYmwYJ8cNyvgzMAQmjlhuCpbDbW8xcKr6G6swNcV6clQLyOROr0flYV6AIWYOBuMhFwoxgOD0iJ8TA9AN X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: NLXrr6fVcIRXWqmcesT3Pus120G9ffTXcXwkuU3r905oOZawjunqwqCktIfD72ZPYzLc91cGdSBARgDGX/I6VEWS8zth5uFwqppovZAI1hkbFrMVBWfn6wND/lA9yUxJZTv27QcrEvL4ITfKlHDsS4r2qa0+gDhYpp22KAjXYS0s2X7YkSI2/LIvUforNf2akxcw1N3oasgCVZqPxgNVgLgIIQw1r9Jn2c0pcEMU7RncP8k8yVrJcSdtPRGAcBpa5qyIJ2BsO4luMLz20cbbtYq/iP/+J9XHcIpCYoYlqKWqf15kijVUuEmW+F3f7q+Bs2kKIycliqNf2KkGF1E6YzqC/aLxJE2kgfAkg02mnYTBL9lXGNyoFkcoa5ckjUANQrmR3no4yj7VQKr96Xs+k35vwus0W81OmilkaW7LDrChvzxFdLgFGHdjYbdgQiGB06aErkA9VgafVY1nluGG32pVDIa5mHZJG41wxhm5pH8zNQeQu7yU4WbU8g7u/jJG9mmyuYb+0IxvS+kj5hNca2YxSpYlNMmNfdgXn1eYLPEdExJMLhWBcFw5pKLBVPOUZYadgqhIA64yr/n3HadKqy5pZf88o5wWq1RUsZ8IeGjnnjqF5R7B0VXsYug31uwiL/P+MWeJX4+Pskr9BTPVsLdVYFt5w6ZKrozaKoZiqQSjyOdUVA6OimB6ZwHj3Jsy X-OriginatorOrg: sct-15-20-3174-20-msonline-outlook-5c337.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: a6a677a4-7d6d-4e07-98f1-08d9a1ff4baa X-MS-Exchange-CrossTenant-AuthSource: PU1PR01MB2155.apcprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2021 15:00:11.3926 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PSAPR01MB3991 X-Spam-Score: 2.6 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: I managed to build a working version of SML/NJ 110.99.2 (released on 2021-09-22). The patch is included below (use `git am --scissors` to apply). Major caveats: * This patch only deals with x86-64. For 32-bit, some changes need to be made: * Download "boot.x86-unix.tgz" instead of "boot.amd64-unix.tgz". * Patch "base/runtime/objs/mk.x86-linux" [...] Content analysis details: (2.6 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.2 RCVD_IN_BL_SPAMCOP_NET RBL: Received via a relay in bl.spamcop.net [Blocked - see ] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [40.92.254.59 listed in wl.mailspike.net] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (chuanwei.foo[at]hotmail.com) -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [40.92.254.59 listed in list.dnswl.org] 1.3 URI_DOTEDU Has .edu URI X-Debbugs-Envelope-To: 38606 Cc: brettg@gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) I managed to build a working version of SML/NJ 110.99.2 (released on 2021-09-22). The patch is included below (use `git am --scissors` to apply). Major caveats: * This patch only deals with x86-64. For 32-bit, some changes need to be made: * Download "boot.x86-unix.tgz" instead of "boot.amd64-unix.tgz". * Patch "base/runtime/objs/mk.x86-linux" instead of "base/runtime/objs/mk.amd64-linux". * Invoke the install script using `-default 32` instead of `-default 64`. * This does not install the SML/NJ library. I used the `-nolib` option to disable the building of the library. When I try to build without the `-nolib` option, the build always fails with this error: ----- start of snippet ----- /Users/jhr/Work/smlnj/sml-legacy/base/system/smlnj/installer.cm:29.7-29.32 Error: link-time exception in library code $smlnj/installer.cm@1570(installer/nix-install.sml) SysErr: No such file or directory [noent] /tmp/guix-build-smlnj-110.99.2.drv-0/bin/sml: Fatal error -- Uncaught exception Link with 0 raised at ../cm/compile/link.sml:357.28-357.35 FAILURE: unpacking failed ./config/install.sh: !!! Installation of libraries and programs failed. command "./config/install.sh" "-default" "64" failed with status 1 ----- end of snippet ----- I don't know what this error means. Note that "jhr" is *not* my username. "jhr" appears to be the initials of John H. Reppy, one of the authors of SML/NJ. Surprisingly, when I keep the directory of the failed build (`guix build --keep-failed smlnj`), and then build inside the build directory by hand (i.e. `cd /tmp/guix-build-smlnj-110.99.2.drv-1 && ./config/install.sh -default 64), all SML/NJ libraries are successfully built. I was not able to determine why the build fails in Guix but succeeds manually. Credits: * This patch is based on Brett Gilio's smlnj patches. * I also looked at how smlnj is packaged in NixOS: * https://github.com/NixOS/nixpkgs/blob/21.05/pkgs/development/compilers/smlnj/default.nix * https://web.archive.org/web/20140704103009/http://lists.science.uu.nl/pipermail/nix-dev/attachments/20101215/e1beb921/attachment.obj -- >8 -- Subject: [PATCH] gnu: Add smlnj. * gnu/packages/sml.scm (smlnj): New variable. --- gnu/packages/sml.scm | 187 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 186 insertions(+), 1 deletion(-) diff --git a/gnu/packages/sml.scm b/gnu/packages/sml.scm index b7e96f028c..7447fa1627 100644 --- a/gnu/packages/sml.scm +++ b/gnu/packages/sml.scm @@ -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 utils)) (define-public polyml (package @@ -75,3 +76,187 @@ 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.99.2") + (source #f) ; Sources are passed as native-inputs. + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #: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 "boot.amd64-unix" + "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" + "doc" + "asdl")) + (mkdir "base") + ;; Same directory structure as what the config/unpack script + ;; would produce. + (rename-file "runtime" "base/runtime") + (rename-file "compiler" "base/compiler") + (rename-file "cm" "base/cm") + (rename-file "old-basis" "base/old-basis") + (rename-file "system" "base/system"))) + (delete 'configure) + (replace 'patch-source-shebangs + (lambda _ + (substitute* (list "config/install.sh" + "base/runtime/objs/mk.amd64-linux") + (("SHELL.*=.*/bin/sh") + (string-append "SHELL=" (which "sh")))) + #t)) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "config/chk-global-names.sh" + (("CC=.*") + (string-append "CC=" ,(cc-for-target)))) + (substitute* "config/_arch-n-opsys" + (("export PATH") "") + (("PATH=\"/bin:/usr/bin\"") "") + (("uname") (which "uname"))) + (substitute* "base/runtime/config/gen-posix-names.sh" + (("PATH=/bin:/usr/bin") "")) + (invoke "./config/install.sh" "-default" "64" "-nolib"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out-lib (string-append out "/lib/")) + (out-bin (string-append out "/bin/"))) + (copy-recursively "lib" out-lib) + (copy-recursively "bin" out-bin)) + #t))))) + (native-inputs + `(("boot.amd64-unix" + ,(smlnj-file version + "boot.amd64-unix.tgz" + "0cbaz8sxp30y2a4blm0pzk9aa1g9jj65d6d7kydvn0w7m22rjjff")) + ("config" + ,(smlnj-file version + "config.tgz" + "1sq60frd66kv807bahsyxda355qq67zvvb4sr1d72cv6capv5nsg")) + ("cm" + ,(smlnj-file version + "cm.tgz" + "087yy9k9vyyvhb24rni6js7s8iqbs8vjm9kjd9s311swjd66qhjc")) + ("compiler" + ,(smlnj-file version + "compiler.tgz" + "149vrmiba0dqggr15axqqzzfmd0kx7kchlr49gii6hw5dal6vqnn")) + ("runtime" + ,(smlnj-file version + "runtime.tgz" + "0c3q7qr2i3r91sx9p3z1ar7gvyk6qsm5gcbpbyj6l67qzn192yc3")) + ("system" + ,(smlnj-file version + "system.tgz" + "0aflnqh9zi9f8vs9pjlxysxplrwl98aiaxx4n41sba4m1r30n0za")) + ("MLRISC" + ,(smlnj-file version + "MLRISC.tgz" + "1kkga7r7qnw09s8yhqbhrq8gxf6c8x0fiwsbwkr8ls6xwv48sp74")) + ("smlnj-lib" + ,(smlnj-file version + "smlnj-lib.tgz" + "14fvqgn580k3ylvfhbkwv4cw87ipggq548r7jzp8fzfn2h6wdl01")) + ("old-basis" + ,(smlnj-file version + "old-basis.tgz" + "11j7a0sxyd1kwxjvxnarab5vc3x43gl90m07wxm37fd4jbfd1fn1")) + ("ckit" + ,(smlnj-file version + "ckit.tgz" + "1fbfjb2fhr6zkcz5jhqh3888zska6vffndyqwvk6rpbcl7an8niq")) + ("nlffi" + ,(smlnj-file version + "nlffi.tgz" + "0p5z77x295xfh71481kbd5pwis52kv03vxpad4pzkpk0l6smcgmj")) + ("cml" + ,(smlnj-file version + "cml.tgz" + "13xchaamwanxhwklsgkn1rmkr044h9qsj0rbr9c7pm903yivdwcn")) + ("eXene" + ,(smlnj-file version + "eXene.tgz" + "0p4snql0a1a952h98ma9ybmp7z1q305mz859b0mxhsg3jdrzl9wb")) + ("ml-lpt" + ,(smlnj-file version + "ml-lpt.tgz" + "0m00vglg95apdpzsy6qv88izj5ai4ibylxni01an75xpnxyy5qbg")) + ("ml-lex" + ,(smlnj-file version + "ml-lex.tgz" + "1pmi5qwjcf1h5nfi7d4vvm7cf90g6dlk2mqikj0y9c464ia1l2jc")) + ("ml-yacc" + ,(smlnj-file version + "ml-yacc.tgz" + "1zla2m1rn8r8k85ps9r2mw38xkh276j7aqv9f69v55102hchx13p")) + ("ml-burg" + ,(smlnj-file version + "ml-burg.tgz" + "14cqasasa273x09phykzjgk1wl6vrkdcwrdi39hnacp443cilz7x")) + ("pgraph" + ,(smlnj-file version + "pgraph.tgz" + "183fv61xlac5kpxn5m4iqgdvc2xb1chlxy5ip4i25x589bh4b5k9")) + ("trace-debug-profile" + ,(smlnj-file version + "trace-debug-profile.tgz" + "1k0w581kr43mpjzm7778xgx1rpz45aq1h80jdr6jls5vz3k8ia18")) + ("heap2asm" + ,(smlnj-file version + "heap2asm.tgz" + "0p9s42acngxh0401wm6fqs3im3rzzw9sh448x38zhdi47h8h1m9n")) + ("smlnj-c" + ,(smlnj-file version + "smlnj-c.tgz" + "054b1nhg5yk2jj01p11k08qzq8zc9jzg4mbgkcmcqaq7axp1rnxm")) + ("doc" + ,(smlnj-file version + "doc.tgz" + "0s35zrxdj76wzdz7c1i8ij00n6lfll4vjnypsy2j17q1maw7fq8j")) + ("asdl" + ,(smlnj-file version + "asdl.tgz" + "0mad2df5pmkdsb69gflxma6m6i3gla6hdmjjnkzk76pagpr8zb0m")))) + (home-page "http://www.smlnj.org") + (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.") + (license license:bsd-2))) base-commit: a0f1476e8fa20e80c71f83342b82338ddedbf7fd -- 2.25.1