Subject: [PATCH 1/5] lisp-xyz: + sbcl-posix-shm

From: Grigory Shepelev <[email-masked]>
Date: Tue, 22 Oct 2024 11:51:02 +0300

Change-Id: I5ac9a3751977bf98d817acd8b98d1a2ad9d393f7
---
1. Add spaces between @itemize
2. Move hash from upper let to the package def (according to lisp-xyz style)
3. Applied guix style sbcl-posix-shm

 gnu/packages/lisp-xyz.scm | 42 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 16b1b8d873..5dce85d341 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -30226,6 +30226,48 @@ (define-public sbcl-trivial-raw-io
 Lisp.")
       (license license:bsd-2))))

+(define-public sbcl-posix-shm
+  (let ((commit "9443da23bcda0a2bd727aed675f92ee7d3c51802")
+        (revision "0.0.7"))
+    (package
+      (name "sbcl-posix-shm")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://git.sr.ht/~shunter/posix-shm")
+               (commit commit)))
+         (file-name (git-file-name "sbcl-posix-shm" version))
+         (sha256
+          (base32 "0ah7xh7dxvdk58slic60gx7k56idjw5x30q5ifg90hxfhd32qz6l"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       (list
+        #:asd-systems ''("posix-shm" "posix-shm/ffi" "posix-shm/test")))
+      (inputs (list sbcl-cffi sbcl-alexandria sbcl-trivial-features))
+      (native-inputs (list sbcl-osicat sbcl-parachute))
+      (home-page "https://git.sr.ht/~shunter/posix-shm")
+      (synopsis
+       "Common Lisp bindings and wrapper for the POSIX shared memory API")
+      (description
+       "This library provides two strata to access the POSIX shm API:
+
+@itemize
+@item The package @code{posix-shm/ffi}, a collection of slim bindings to the POSIX API
+@item The package @code{posix-shm}, a lispy wrapper around the FFI that integrates more closely to the features of Common Lisp, and provides a handful of utilities and macros
+@end itemize
+
+Features include:
+
+@itemize
+@item open, close, create, resize, change ownership of, change permissions of, and memory map to shared memory objects
+@item @code{open-shm} appears more like @code{open} from the standard library
+@item @code{open-shm*}, for creating anonymous shm objects
+@item @code{with-open-shm}, @code{with-mmap} and similar @code{with-} macros for safely accessing resources with dynamic extent
+@end itemize")
+      (license license:bsd-3))))
+
 (define-public cl-trivial-raw-io
   (sbcl-package->cl-source-package sbcl-trivial-raw-io))

--
2.46.0