[PATCH 0/2] gnu: Add smlsharp.

  • Open
  • quality assurance status badge
Details
One participant
  • gemmaro
Owner
unassigned
Submitted by
gemmaro
Severity
normal
G
G
gemmaro wrote on 21 Feb 2023 14:58
(address . guix-patches@gnu.org)(name . gemmaro)(address . gemmaro.dev@gmail.com)
cover.1676987498.git.gemmaro.dev@gmail.com
This series of patches adds SML#, an open source functional programming
language compatible with with Standard ML.

gemmaro (2):
gnu: Add massivethreads.
gnu: Add smlsharp.

gnu/packages/parallel.scm | 26 +++++++++++++++++++++
gnu/packages/sml.scm | 48 +++++++++++++++++++++++++++++++++++++++
2 files changed, 74 insertions(+)


base-commit: 73b5c955ae46af2548625fe31afe60193fb83e2a
--
2.39.1
G
G
gemmaro wrote on 21 Feb 2023 15:33
[PATCH 1/2] gnu: Add massivethreads.
(address . 61678@debbugs.gnu.org)(name . gemmaro)(address . gemmaro.dev@gmail.com)
4c32ecc03c10258f4973efc2792bc28402530436.1676987498.git.gemmaro.dev@gmail.com
* gnu/packages/parallel.scm (massivethreads): New variable.
---
gnu/packages/parallel.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index e2a6cfb668..a26d23d542 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -12,6 +12,7 @@
;;; Copyright © 2019-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
+;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -513,3 +514,28 @@ (define-public psimd
"This header-only C++ library provides a portable interface to
single-instruction multiple-data (SIMD) intrinsics.")
(license license:expat))))
+
+(define-public massivethreads
+ (package
+ (name "massivethreads")
+ (version "1.00")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url
+ "https://www.eidos.ic.i.u-tokyo.ac.jp/research/massivethreads/")
+ (commit "v1.00")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0d93xf2zknq92wlcm7xc7zbja2fh3qyl543xx2qc64k3rslmf8yh"))))
+ (build-system gnu-build-system)
+ (home-page "https://github.com/massivethreads/massivethreads")
+ (synopsis "Lightweight thread library for high productivity languages")
+ (description
+ "A thread library that can spawn threads two orders of magnitude faster
+than native operating system threads. Based on this technology, we are
+working on high-level parallel programming languages that target a
+range of machines from multi-core computers to massively parallel
+processors.")
+ (license license:bsd-2)))
--
2.39.1
G
G
gemmaro wrote on 21 Feb 2023 15:33
[PATCH 2/2] gnu: Add smlsharp.
(address . 61678@debbugs.gnu.org)(name . gemmaro)(address . gemmaro.dev@gmail.com)
475d6cad530869442d8a7372a3d29ddf2cc38eb1.1676987498.git.gemmaro.dev@gmail.com
* gnu/packages/sml.scm (smlsharp): New variable.
---
gnu/packages/sml.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)

Toggle diff (75 lines)
diff --git a/gnu/packages/sml.scm b/gnu/packages/sml.scm
index 368abf6cfa..5509667e03 100644
--- a/gnu/packages/sml.scm
+++ b/gnu/packages/sml.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2021, 2022 Foo Chuan Wei <chuanwei.foo@hotmail.com>
+;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,9 +22,13 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages sml)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages lesstif)
#:use-module (gnu packages libffi)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages parallel)
#:use-module (gnu packages xorg)
#:use-module (guix build-system gnu)
#:use-module (guix download)
@@ -340,3 +345,46 @@ (define-public smlnj
(license (license:fsf-free
"https://www.smlnj.org/license.html"
"https://www.gnu.org/licenses/license-list#StandardMLofNJ"))))
+
+(define-public smlsharp
+ (package
+ (name "smlsharp")
+ (version "4.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/smlsharp/smlsharp/releases/download/v"
+ version "/smlsharp-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1nv567na798qysyw7bc8aaz0v51f239z0s3w37nzqz4z6qgzni0b"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:parallel-build? #t
+ #:parallel-tests? #t
+ #:test-target "test"
+ #:phases (modify-phases %standard-phases
+ ;; NOTE: Needed for running SML# executables
+ (add-after 'install 'wrap-programs
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (libs (map (lambda (name)
+ (string-append (assoc-ref inputs name)
+ "/lib"))
+ '("gmp" "massivethreads" "glibc"))))
+ (with-directory-excursion (string-append out "/bin")
+ (for-each (lambda (file)
+ (wrap-program (basename file)
+ `("LIBRARY_PATH" prefix
+ ,libs)) #t)
+ (find-files ".")))))))))
+ (inputs (list llvm-11 gmp massivethreads glibc bash-minimal))
+ (home-page "https://smlsharp.github.io/en/")
+ (synopsis
+ "Open source functional programming language compatible with with Standard ML")
+ (description
+ "SML# is an open source functional programming language and have been developed
+by the SML# Delelopment Team. While maintaining compatibility with Standard ML, it
+provides practically important features such as interoperability with C and
+databases.")
+ (license license:expat)))
--
2.39.1
G
G
gemmaro wrote on 29 Jun 2023 18:07
[PATCH v2 1/2] gnu: Add massivethreads.
(address . 61678@debbugs.gnu.org)(name . gemmaro)(address . gemmaro.dev@gmail.com)
078f906404a1961b04d246f922c8d21f70e5fc55.1688054848.git.gemmaro.dev@gmail.com
* gnu/packages/parallel.scm (massivethreads): New variable.
---
gnu/packages/parallel.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (54 lines)
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 569e98430c7..da5dd6a0b94 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -12,6 +12,7 @@
;;; Copyright © 2019-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
+;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -48,6 +49,7 @@ (define-module (gnu packages parallel)
#:use-module (gnu packages documentation)
#:use-module (gnu packages flex)
#:use-module (gnu packages freeipmi)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages linux)
#:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
@@ -552,3 +554,29 @@ (define-public psimd
"This header-only C++ library provides a portable interface to
single-instruction multiple-data (SIMD) intrinsics.")
(license license:expat))))
+
+(define-public massivethreads
+ (package
+ (name "massivethreads")
+ (version "1.00")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/massivethreads/massivethreads")
+ (commit "v1.00")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0d93xf2zknq92wlcm7xc7zbja2fh3qyl543xx2qc64k3rslmf8yh"))))
+ (build-system gnu-build-system)
+ ;; Cannot built with glibc 2.34 or later.
+ ;; https://github.com/massivethreads/massivethreads/pull/15
+ (inputs (list glibc-2.33 gcc-10))
+ (home-page "https://www.eidos.ic.i.u-tokyo.ac.jp/research/massivethreads/")
+ (synopsis "Lightweight thread library for high productivity languages")
+ (description
+ "A thread library that can spawn threads two orders of magnitude faster
+than native operating system threads. Based on this technology, we are
+working on high-level parallel programming languages that target a range of
+machines from multi-core computers to massively parallel processors.")
+ (license license:bsd-2)))

base-commit: 2b25bc03a11e1c6a473bbb000c35e94233120346
--
2.40.1
G
G
gemmaro wrote on 29 Jun 2023 18:07
[PATCH v2 2/2] gnu: Add smlsharp.
(address . 61678@debbugs.gnu.org)(name . gemmaro)(address . gemmaro.dev@gmail.com)
d875feffbbc59948b4c0fd9cfc0aef5331e0fae9.1688054848.git.gemmaro.dev@gmail.com
* gnu/packages/sml.scm (smlsharp): New variable.
---
gnu/packages/sml.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)

Toggle diff (82 lines)
diff --git a/gnu/packages/sml.scm b/gnu/packages/sml.scm
index 368abf6cfa9..12c2d89d486 100644
--- a/gnu/packages/sml.scm
+++ b/gnu/packages/sml.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2021, 2022 Foo Chuan Wei <chuanwei.foo@hotmail.com>
+;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,12 +22,17 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages sml)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages lesstif)
#:use-module (gnu packages libffi)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages parallel)
#:use-module (gnu packages xorg)
#:use-module (guix build-system gnu)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
@@ -340,3 +346,49 @@ (define-public smlnj
(license (license:fsf-free
"https://www.smlnj.org/license.html"
"https://www.gnu.org/licenses/license-list#StandardMLofNJ"))))
+
+(define-public smlsharp
+ (package
+ (name "smlsharp")
+ (version "4.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/smlsharp/smlsharp/releases/download/v"
+ version "/smlsharp-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1nv567na798qysyw7bc8aaz0v51f239z0s3w37nzqz4z6qgzni0b"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:parallel-build? #t
+ #:parallel-tests? #t
+ #:test-target "test"
+ #:phases #~(modify-phases %standard-phases
+ ;; NOTE: Needed for running SML# executables
+ (add-after 'install 'wrap-programs
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (libs (map (lambda (name)
+ (string-append (assoc-ref
+ inputs name)
+ "/lib"))
+ '("gmp" "massivethreads" "glibc"))))
+ (with-directory-excursion (string-append out
+ "/bin")
+ (for-each (lambda (file)
+ (wrap-program (basename file)
+ `("LIBRARY_PATH" prefix
+ ,libs)) #t)
+ (find-files ".")))))))))
+ (inputs (list llvm-11 gmp massivethreads glibc bash-minimal))
+ (home-page "https://smlsharp.github.io/en/")
+ (synopsis
+ "Open source functional programming language compatible with with
+Standard ML")
+ (description
+ "SML# is an open source functional programming language and have been
+developed by the SML# Delelopment Team. While maintaining compatibility with
+Standard ML, it provides practically important features such as
+interoperability with C and databases.")
+ (license license:expat)))
--
2.40.1
G
G
gemmaro wrote on 1 Jul 2023 15:49
[PATCH v3 1/2] gnu: Add massivethreads.
(address . 61678@debbugs.gnu.org)(name . gemmaro)(address . gemmaro.dev@gmail.com)
cb33dd735b858eacc1541cc6475332afc7303303.1688219342.git.gemmaro.dev@gmail.com
* gnu/packages/parallel.scm (massivethreads): New variable.
---
gnu/packages/parallel.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (54 lines)
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 569e98430c..a5c297b04a 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -12,6 +12,7 @@
;;; Copyright © 2019-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
+;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -48,6 +49,7 @@ (define-module (gnu packages parallel)
#:use-module (gnu packages documentation)
#:use-module (gnu packages flex)
#:use-module (gnu packages freeipmi)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages linux)
#:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
@@ -552,3 +554,29 @@ (define-public psimd
"This header-only C++ library provides a portable interface to
single-instruction multiple-data (SIMD) intrinsics.")
(license license:expat))))
+
+(define-public massivethreads
+ (package
+ (name "massivethreads")
+ (version "1.00")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/massivethreads/massivethreads")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0d93xf2zknq92wlcm7xc7zbja2fh3qyl543xx2qc64k3rslmf8yh"))))
+ (build-system gnu-build-system)
+ ;; Cannot built with glibc 2.34 or later.
+ ;; https://github.com/massivethreads/massivethreads/pull/15
+ (inputs (list glibc-2.33 gcc-10))
+ (home-page "https://www.eidos.ic.i.u-tokyo.ac.jp/research/massivethreads/")
+ (synopsis "Lightweight thread library")
+ (description
+ "MassiveThreads is a thread library that can spawn threads two orders of
+magnitude faster than native operating system threads. It provides three APIs
+to use: native intefrace, pthread-compatible interface, and TBB-like
+interface.")
+ (license license:bsd-2)))

base-commit: 889e1dbae3b0d4ac2300b524b3dd6b8f0499ff5e
--
2.40.1
G
G
gemmaro wrote on 1 Jul 2023 15:49
[PATCH v3 2/2] gnu: Add smlsharp.
(address . 61678@debbugs.gnu.org)(name . gemmaro)(address . gemmaro.dev@gmail.com)
eeb344e9d4092116ece0ed4a57d5fac3a1cb96b5.1688219342.git.gemmaro.dev@gmail.com
* gnu/packages/sml.scm (smlsharp): New variable.
---
gnu/packages/sml.scm | 57 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 57 insertions(+)

Toggle diff (87 lines)
diff --git a/gnu/packages/sml.scm b/gnu/packages/sml.scm
index 368abf6cfa..81fa20e7ce 100644
--- a/gnu/packages/sml.scm
+++ b/gnu/packages/sml.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2021, 2022 Foo Chuan Wei <chuanwei.foo@hotmail.com>
+;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,12 +22,17 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages sml)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages lesstif)
#:use-module (gnu packages libffi)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages parallel)
#:use-module (gnu packages xorg)
#:use-module (guix build-system gnu)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
@@ -340,3 +346,54 @@ (define-public smlnj
(license (license:fsf-free
"https://www.smlnj.org/license.html"
"https://www.gnu.org/licenses/license-list#StandardMLofNJ"))))
+
+(define-public smlsharp
+ (package
+ (name "smlsharp")
+ (version "4.0.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/smlsharp/smlsharp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0cwpp4azkr79vf3c0w3g3zxv1rdcbi4gs7kp80b7aa1b5cqv04bj"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:parallel-build? #t
+ #:parallel-tests? #t
+ #:test-target "test"
+ #:phases #~(modify-phases %standard-phases
+ ;; NOTE: Needed for running SML# executables
+ (add-after 'install 'wrap-programs
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (libs (map (lambda (name)
+ (string-append (assoc-ref
+ inputs name)
+ "/lib"))
+ '("gmp" "massivethreads" "glibc"))))
+ (with-directory-excursion (string-append out
+ "/bin")
+ (for-each (lambda (file)
+ (wrap-program (basename file)
+ `("LIBRARY_PATH" prefix
+ ,libs)) #t)
+ (find-files ".")))))))))
+ (inputs (list llvm-11 gmp massivethreads glibc bash-minimal))
+ (home-page "https://smlsharp.github.io/en/")
+ (synopsis
+ "New language in the Standard ML family")
+ (description
+ "SML# is a new generation of the Standard ML family. The main features
+of SML# include the following:
+@itemize
+@item record polymorphism
+@item integration with SQL
+@item interoperability with C
+@item separate compilation and linking
+@item multithread support
+@end itemize")
+ (license license:expat)))
--
2.40.1
G
G
gemmaro wrote on 1 Jan 11:57 +0100
[PATCH v4 1/2] gnu: Add massivethreads.
(address . 61678@debbugs.gnu.org)(name . gemmaro)(address . gemmaro.dev@gmail.com)
21f20b6629cab9d353b3618525cd4094fa248e24.1704106646.git.gemmaro.dev@gmail.com
* gnu/packages/parallel.scm (massivethreads): New variable.
---
gnu/packages/parallel.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index e12035e47d..f1cda36b70 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -12,6 +12,7 @@
;;; Copyright © 2019-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
+;;; Copyright © 2024 gemmaro <gemmaro.dev@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -48,6 +49,7 @@ (define-module (gnu packages parallel)
#:use-module (gnu packages documentation)
#:use-module (gnu packages flex)
#:use-module (gnu packages freeipmi)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages linux)
#:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
@@ -566,3 +568,30 @@ (define-public psimd
"This header-only C++ library provides a portable interface to
single-instruction multiple-data (SIMD) intrinsics.")
(license license:expat))))
+
+(define-public massivethreads
+ (package
+ (name "massivethreads")
+ (version "1.00")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/massivethreads/massivethreads")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0d93xf2zknq92wlcm7xc7zbja2fh3qyl543xx2qc64k3rslmf8yh"))))
+ (build-system gnu-build-system)
+ ;; Cannot built with glibc 2.34 or later.
+ ;; https://github.com/massivethreads/massivethreads/pull/15
+ (inputs (list glibc-2.33 gcc-5))
+ (home-page
+ "https://www.eidos.ic.i.u-tokyo.ac.jp/contents/research/massivethreads.html")
+ (synopsis "Lightweight thread library")
+ (description
+ "MassiveThreads is a thread library that can spawn threads two orders of
+magnitude faster than native operating system threads. It provides three APIs
+to use: native intefrace, pthread-compatible interface, and TBB-like
+interface.")
+ (license license:bsd-2)))

base-commit: 86b5fa100992527c434616482ba9cfd92b636d12
--
2.41.0
G
G
gemmaro wrote on 1 Jan 11:57 +0100
[PATCH v4 2/2] gnu: Add smlsharp.
(address . 61678@debbugs.gnu.org)(name . gemmaro)(address . gemmaro.dev@gmail.com)
15a07e5595ea1fda4bbb0825375926898140c9c5.1704106646.git.gemmaro.dev@gmail.com
* gnu/packages/sml.scm (smlsharp): New variable.

Change-Id: I3418d7219d88653432f16e6bca3e4aa6e7467bd8
---
gnu/packages/sml.scm | 56 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)

Toggle diff (86 lines)
diff --git a/gnu/packages/sml.scm b/gnu/packages/sml.scm
index 368abf6cfa..8d5373328d 100644
--- a/gnu/packages/sml.scm
+++ b/gnu/packages/sml.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2021, 2022 Foo Chuan Wei <chuanwei.foo@hotmail.com>
+;;; Copyright © 2024 gemmaro <gemmaro.dev@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,12 +22,17 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages sml)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages lesstif)
#:use-module (gnu packages libffi)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages parallel)
#:use-module (gnu packages xorg)
#:use-module (guix build-system gnu)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
@@ -340,3 +346,53 @@ (define-public smlnj
(license (license:fsf-free
"https://www.smlnj.org/license.html"
"https://www.gnu.org/licenses/license-list#StandardMLofNJ"))))
+
+(define-public smlsharp
+ (package
+ (name "smlsharp")
+ (version "4.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/smlsharp/smlsharp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0cwpp4azkr79vf3c0w3g3zxv1rdcbi4gs7kp80b7aa1b5cqv04bj"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:parallel-build? #t
+ #:parallel-tests? #t
+ #:test-target "test"
+ #:phases #~(modify-phases %standard-phases
+ ;; NOTE: Needed for running SML# executables
+ (add-after 'install 'wrap-programs
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (libs (map (lambda (name)
+ (string-append (assoc-ref inputs
+ name)
+ "/lib"))
+ '("gmp" "massivethreads" "glibc"))))
+ (with-directory-excursion (string-append out "/bin")
+ (for-each (lambda (file)
+ (wrap-program (basename file)
+ `("LIBRARY_PATH" prefix
+ ,libs)) #t)
+ (find-files ".")))))))))
+ (inputs (list llvm-11 gmp massivethreads glibc bash-minimal))
+ (home-page "https://smlsharp.github.io/en/")
+ (synopsis "New language in the Standard ML family")
+ (description
+ "SML# is a new generation of the Standard ML family. The main features
+of SML# include the following:
+@itemize
+@item record polymorphism
+@item integration with SQL
+@item interoperability with C
+@item separate compilation and linking
+@item multithread support
+@end itemize")
+ (license license:expat)))
--
2.41.0
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 61678@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 61678
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch