From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id yP2YI8aLi2F+HQAAgWs5BA (envelope-from ) for ; Wed, 10 Nov 2021 10:07:18 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id eD5cH8aLi2GrSgAAB5/wlQ (envelope-from ) for ; Wed, 10 Nov 2021 09:07:18 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id C565E3087D for ; Wed, 10 Nov 2021 10:07:17 +0100 (CET) Received: from localhost ([::1]:34554 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mkjZc-0001oK-JK for larch@yhetil.org; Wed, 10 Nov 2021 04:07:16 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43870) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mkjZO-0001o5-M8 for guix-patches@gnu.org; Wed, 10 Nov 2021 04:07:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:53663) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mkjZO-0000TW-DK for guix-patches@gnu.org; Wed, 10 Nov 2021 04:07:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mkjZO-0007GM-2O for guix-patches@gnu.org; Wed, 10 Nov 2021 04:07:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#51745] [PATCH 1/1] gnu: Add smlnj. References: In-Reply-To: Resent-From: Foo Chuan Wei Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 10 Nov 2021 09:07:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 51745 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 51745@debbugs.gnu.org Received: via spool by 51745-submit@debbugs.gnu.org id=B51745.163653518827865 (code B ref 51745); Wed, 10 Nov 2021 09:07:02 +0000 Received: (at 51745) by debbugs.gnu.org; 10 Nov 2021 09:06:28 +0000 Received: from localhost ([127.0.0.1]:36976 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkjYf-0007FD-QH for submit@debbugs.gnu.org; Wed, 10 Nov 2021 04:06:28 -0500 Received: from mail-oln040092255095.outbound.protection.outlook.com ([40.92.255.95]:35855 helo=APC01-HK2-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkjYZ-0007Ek-Ii for 51745@debbugs.gnu.org; Wed, 10 Nov 2021 04:06:16 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g+y2wgM4rfkhyfC/cnEFUTcn01H8oPfrW+M8YeqqjC+B38C7sCnDcZFVT+OaKdupL/x5Dj2yrH+l8A6v96Ka56dtcSQXfTPs6jAL2qMFmtvyJkMwmbIhGy8OgxFVpYAO0O4Z1P426TMOCLEHderhQNavPig4o0bntJxXxiCyMlEe72tvvrB0jjWERL6hQzry1hFQp2MDlOSdRgHnEQDVniKOjYpk6RKpFQG87F0csl/r/73zihnScfJ4EmTy99193nfEgnA08hxkoRLjPQCydbrcjfV6skJfoBJj+jJCbTmf8wCAneXVeFGhjigzcHBSRPShf5mcJKbV/PeSJmJ7PA== 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=EHpmMVpbEYSoWNfmw/VjLW4IzZgaFa9OPW4B/NRyPbs=; b=IRKd18/LSJoVhKtrmWHF++sYfcwjpyL1XHSlLnvHv7IqUZqtlGm4G4lpi3XHasWr/aFujrdkEN5Nxmh2VK0n1ommQ4C5BxxLcXKHeBcJiLvkwbZvha6M98lJz+EqG6v7CPG72x5uJL6W0CVvtv9bjmN834tQnYfK+3wlxyZbgiI5vr8ByAK/qMEPiunGYM4uT1p4+YCFmThRu8Aa05kJGlXWF8PnHmWPNXGwfS2w3mz0ZqHcDnFrXt27CqcNvvxYIArA7H2uITWfRay4UgMUo6iArNW8RkAhOOhQbizFMrxrwcsbxfa+2f/BqvjnArr3T28YuVUBq/3dB2RWhOcVmA== 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=EHpmMVpbEYSoWNfmw/VjLW4IzZgaFa9OPW4B/NRyPbs=; b=WRSSKcM9+9J+bg8tQjqg6jdGljc4pWQUymiCdtywaac/gHORuFsZ9251QexvdcJaoHUv4kjkz2/Kl+wBms+bajq8WepPyyyM6RZ62mMp69rVRUSaZrr9TxeGVH8Ej+dSIrkoiyySvCPIhD7xUxC7leiNrM2fxhCYHjdusfgDO4lcJ+S2pspD3eocIq/OifP7GrvF2tjWKfwkSvKBx0KlzCBt4YqhYx+E8TbRU3tASjKZXCAbNMqhmERDImiYzQvrN2z+sc7nakSpMutItbZE0igrmPe1DRQPhvCCl/v4JqJVGmW45iLW7oGl/rJdtHCJNGUEjf7I+roCF+ZztJ3Hog== Received: from PU1PR01MB2155.apcprd01.prod.exchangelabs.com (2603:1096:803:1c::21) by PU1PR01MB1932.apcprd01.prod.exchangelabs.com (2603:1096:803:1b::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Wed, 10 Nov 2021 09:06:02 +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.016; Wed, 10 Nov 2021 09:06:02 +0000 Date: Wed, 10 Nov 2021 09:05:59 +0000 From: Foo Chuan Wei Message-ID: Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-TMN: [azFEI7LVpWEfVRLosGu0gVsgdd7cUUd7] X-ClientProxiedBy: HK2PR02CA0222.apcprd02.prod.outlook.com (2603:1096:201:20::34) To PU1PR01MB2155.apcprd01.prod.exchangelabs.com (2603:1096:803:1c::21) X-Microsoft-Original-Message-ID: <20211110090559.wdugt2ign7p7qcd6@main> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from main (202.160.33.52) by HK2PR02CA0222.apcprd02.prod.outlook.com (2603:1096:201:20::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend Transport; Wed, 10 Nov 2021 09:06:01 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 689ca1c1-9852-4267-c3c4-08d9a429519e X-MS-TrafficTypeDiagnostic: PU1PR01MB1932: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mbeEEaMUIFTzAGtf48i3MyFIxT5egOrm9sHwffAOdhADMp26tYfkXESMYE8/rRV1Rn2kKKmYSZsf2dKK2YHmWFVxMX0OfksT0W8EeZWG5RYcO1KPuQSiT4A7zgR6O+LFyQiv+kK5ZEpAnYZ4h+JjX9RLUlFv4a+2ZIkslA/SpWhyAd5Zi6T2196bAp7L9FBvMY1r4rszH35Q5+CAfp87zVWuVtWbrngEO/zW0tM1eSkEgo5clV/YjJPVxcLNzeW/D9Z5yr3QsMR0QMI0QhJyUWrqnrijx7J0I6egnZfmoj5SvvefHY5f+TAyPJ8ZZlZirjpiOK5oZt1ey3EuT3eDOkvRQaHzfvLt5n9lD0mOccaegLp2rLNsYgCPE1++QbfWgjkr+pgBTmRT3m3kQFqy4SSX+qRvcXN/fkBSXz+/yaT5Ug2p/iW4idlsB73SsCtWPXplDADSs92ZrkJk4cuAs7jYRHj5mxe3Lw4y9uH629GZs77hLeHgh1vEdwYI7nStp2mfTIODS90LBIVl5fl8lnFLnjSojMOjpPJTvwYRPfoj2QSAhpE/aZHQo0FfaF/BIVLhMCX9YXzZIg+4MrAwjw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 45H4jjGWv2Z2RNrVPh5EcNDYdKIEfPmmdo9ZiwtYpOSIujULOUoak8B5FUrwJREX1RRoIV2/BvGMses+HgfOyvusfj5xIZvyjHNljmgTGqy4FUM8khPLy+BR+1QhExaNDHUhpqA+vDx2FTafFsT7t/L7xBotvVyv9tjp75Ysd6gXTXQB80StBfPhjsDMi8QTYImIfbyN5d/8GD/bdPkLtGTRa/azi8vlHQ/kpaZ78M8FQpesdcle/pLbprAsChn1Oal1tY4wdtORJjhdra3a1kf5VX5KIdw2oLGkszdpfDGoM0uk+UMP6XTqmH/j4QC2FhLYXiolz4aTlhV4teVvFetCIMtCl9ArcDebI0LlzS9Aohi32tjt8i9DhFZy8Lhyr6xsmVGK4s5CrHCvWdSUF4LkijmlTk1tZ5M5pePuoJE3ddoXc/IfJiNNkpdylMvdfsDSFXNlB0sorzXUCUadAbI/48k4GmOkbS06LpAKKTfVDQPDIl7RCGtRF7ZkF2swT3CdbRa3lt6OFqprKMR07opRJ57sUbbDVbesC430wlOfaeKO0bx3bGh5qR/3o9/5+A0uPVhTJeZz/HK3GBJvb/STu1Nw54LQtsjFOas6oG7PRBC1zztInw2+30EaMEbwt+SXWjZd0aFhRj21NEx6ZAnQtjMm0ewVSyp1ASB2Y8lH+z21DcheyOQe58QmoIBgsKf63q/PgyrKpOOWwnMdig== X-OriginatorOrg: sct-15-20-3174-20-msonline-outlook-5c337.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: 689ca1c1-9852-4267-c3c4-08d9a429519e X-MS-Exchange-CrossTenant-AuthSource: PU1PR01MB2155.apcprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2021 09:06:02.3087 (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: PU1PR01MB1932 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1636535238; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=EHpmMVpbEYSoWNfmw/VjLW4IzZgaFa9OPW4B/NRyPbs=; b=Y2s+d/tw86WTqitoXaSm8Rtww3nvFFlmaohXqCsS6TAP3X2BGVRlgQiY0Ms3vwa2kaHez9 K5DIU9UB7kGJpCYSQnaSO7GW6tPmEiSWaNa1BWRlzi9u+1EOJXDf2AgS35VpvW5zeHAU9V vK04JjmgC/FhXDycbjRiW59aTTL0ujgret+t4WgNhelFkuK79sXblO5bkXYB6dG1WyLLal lAsEZEl/9a+i9ciTF9altSGUGDRlwkBcTAFREf7S3feulnV6YtfXJ0mErF8SlK9vhyqY23 xRFoSKHjl5y/0k+WYvd50vzPyZMDp95C7nnWtXSaUxAXcKQjAbivlYJUhKwsVw== ARC-Seal: i=2; s=key1; d=yhetil.org; t=1636535238; a=rsa-sha256; cv=fail; b=UAVpqCTXIFOu53wcw9JDDWMEaH8qZ+gVGNxaIy0TEhh9QeB0HzkXj9RoNsM7zEtyZR1fg7 +7TOAF9NHIWnu42UjK3xZIFlek61tYkiVawNsR/BfXyp0zbpTecGJiPvGFfFuXdxXZc4Iz xs5eSrORbKGvEM87Ovf7Dq4ak3trWffSR2zmNSYhsNvjEixkZD22qnDnPl/P2Xr4Q8vGI4 vzZ/4wldX+y9U59WpCYRaWlgsJpX5wpNqj7CbrIhAuQO/Xy99WqMTuj1/wCv8FfGiWhsJN t5tDA5LX3wHzaVlw5PqVuRkMjt92g4fsGoqNRiZF41qFeBhYw5GxXk1CGrS67g== ARC-Authentication-Results: i=2; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=hotmail.com header.s=selector1 header.b=WRSSKcM9; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=fail reason="SPF not aligned (relaxed)" header.from=hotmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Spam-Score: 0.28 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=hotmail.com header.s=selector1 header.b=WRSSKcM9; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=fail reason="SPF not aligned (relaxed)" header.from=hotmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: C565E3087D X-Spam-Score: 0.28 X-Migadu-Scanner: scn1.migadu.com X-TUID: EdG6ZJH0klfV * gnu/packages/sml.scm (smlnj): New variable. --- gnu/packages/sml.scm | 261 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 260 insertions(+), 1 deletion(-) diff --git a/gnu/packages/sml.scm b/gnu/packages/sml.scm index b7e96f028c..c7e8da35e2 100644 --- a/gnu/packages/sml.scm +++ b/gnu/packages/sml.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2017, 2021 Tobias Geerinckx-Rice ;;; Copyright © 2018 Ricardo Wurmus ;;; Copyright © 2019, 2020 Brett Gilio +;;; Copyright © 2021 Foo Chuan Wei ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,7 +29,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 +77,260 @@ 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. + (supported-systems '("x86_64-linux" "i686-linux")) + (build-system gnu-build-system) + (outputs '("out" "doc")) + (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 (if (string=? "i686-linux" ,(%current-system)) + "boot.x86-unix" + "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")) + ;; Same directory structure as what the config/unpack script + ;; would produce. + (mkdir "base") + (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") + #t)) + (delete 'configure) + (replace 'patch-source-shebangs + (lambda _ + ;; Fix paths to /bin/sh. + (substitute* (list "config/install.sh" + (if (string=? "i686-linux" ,(%current-system)) + "base/runtime/objs/mk.x86-linux" + "base/runtime/objs/mk.amd64-linux") + "asdl/configure" + "asdl/src/asdlgen/Makefile.in") + (("^SHELL[[:space:]]*=[[:space:]]*/bin/sh") + (string-append "SHELL=" (which "sh")))) + (substitute* "asdl/configure" + (("^SHELL=\\$\\{CONFIG_SHELL-/bin/sh\\}") + (string-append "SHELL=" (which "sh")))) + (substitute* (list "asdl/src/gen/fragments/mkfrags_sh.in" + "asdl/src/gen/fragments/mkmk_sh.in") + (("^#!/bin/sh") + (string-append "#!" (which "sh")))) + #t)) + (replace 'build + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "config/chk-global-names.sh" + (("^CC=.*") + (string-append "CC=" ,(cc-for-target)))) + + ;; /bin and /usr/bin do not exist in the build environment. + (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") "")) + + ;; The build process uses an SML Basis Library function + ;; `OS.Process.system`, which uses "/bin/sh" (this is hardcoded). + ;; However, /bin/sh does not exist in the Guix build environment. + ;; Solution: binary patch — replace "/bin/sh" with "/tmp/sh". + (symlink (which "sh") "/tmp/sh") + (invoke "sed" "-i" "s,/bin/sh,/tmp/sh," + (if (string=? "i686-linux" ,(%current-system)) + "sml.boot.x86-unix/SMLNJ-BASIS/.cm/x86-unix/basis-common.cm" + "sml.boot.amd64-unix/SMLNJ-BASIS/.cm/amd64-unix/basis-common.cm")) + + ;; Build. + (invoke "./config/install.sh" "-default" + (if (string=? "i686-linux" ,(%current-system)) + "32" + "64")) + + ;; Undo the binary patch. + (for-each + (lambda (file) + (invoke "sed" "-i" "s,/tmp/sh,/bin/sh," file)) + (if (string=? "i686-linux" ,(%current-system)) + '("bin/.heap/sml.x86-linux" + "lib/SMLNJ-BASIS/.cm/x86-unix/basis-common.cm") + '("bin/.heap/sml.amd64-linux" + "lib/SMLNJ-BASIS/.cm/amd64-unix/basis-common.cm"))) + + ;; Set SMLNJ_HOME in the bin/ files, so that `sml` is able to find + ;; the SML/NJ Library. + (let ((out (assoc-ref outputs "out"))) + (for-each + (lambda (file) + (invoke "sed" "-i" + (string-append "2iSMLNJ_HOME=${SMLNJ_HOME:-" out "}") + file)) + '("bin/.link-sml" + "bin/.run-sml" + "bin/ml-build" + "bin/ml-makedepend"))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out-bin (string-append out "/bin/")) + (out-lib (string-append out "/lib/")) + (out-man (string-append out "/share/man/"))) + (copy-recursively "bin" out-bin) + (copy-recursively "lib" out-lib) + (copy-recursively "doc/man" out-man)) + #t)) + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let ((doc (string-append (assoc-ref outputs "doc") + "/share/doc/smlnj"))) + (mkdir-p doc) + (copy-recursively "doc" doc)) + #t))))) + (native-inputs + `(,(if (string=? "i686-linux" (%current-system)) + `("boot.x86-unix" + ,(smlnj-file version + "boot.x86-unix.tgz" + "117dq1g387vcy1105dlpw770gzrg423jng89ynraiy6kiaalvbcq")) + `("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:fsf-free + "https://www.smlnj.org/license.html" + "https://www.gnu.org/licenses/license-list#StandardMLofNJ")))) -- 2.25.1