From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:59148) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFDxw-0004yp-2b for guix-patches@gnu.org; Tue, 01 Oct 2019 04:57:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFDxu-0003kj-Sf for guix-patches@gnu.org; Tue, 01 Oct 2019 04:57:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:52037) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFDxt-0003kI-Rn for guix-patches@gnu.org; Tue, 01 Oct 2019 04:57:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iFDxt-0007SP-P8 for guix-patches@gnu.org; Tue, 01 Oct 2019 04:57:01 -0400 Subject: [bug#37566] [PATCH] gnu: Add chanl. Resent-Message-ID: Received: from eggs.gnu.org ([2001:470:142:3::10]:58951) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFDwv-0004Mt-FD for guix-patches@gnu.org; Tue, 01 Oct 2019 04:56:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFDwu-0003GJ-2p for guix-patches@gnu.org; Tue, 01 Oct 2019 04:56:01 -0400 Received: from mout02.posteo.de ([185.67.36.66]:42871) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iFDwt-0003FJ-KD for guix-patches@gnu.org; Tue, 01 Oct 2019 04:56:00 -0400 Received: from submission (posteo.de [89.146.220.130]) by mout02.posteo.de (Postfix) with ESMTPS id D89682400FC for ; Tue, 1 Oct 2019 10:55:56 +0200 (CEST) From: Guillaume Le Vaillant Date: Tue, 1 Oct 2019 10:55:24 +0200 Message-Id: <20191001085524.22204-1-glv@posteo.net> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 37566@debbugs.gnu.org Cc: Guillaume Le Vaillant * gnu/packages/lisp.scm (sbcl-chanl, cl-chanl, ecl-chanl): New variables. --- gnu/packages/lisp.scm | 54 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index ba009bb7a6..fd46b967e7 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -7360,3 +7360,57 @@ compression/decompression using bindings to the lz= lib C library.") =20 (define-public ecl-lzlib (sbcl-package->ecl-package sbcl-lzlib)) + +(define-public sbcl-chanl + (let ((commit "2362b57550c2c9238cc882d03553aaa1040b7340") + (revision "0")) + (package + (name "sbcl-chanl") + (version (git-version "0.4.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zkat/chanl.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ag3wz7yrqwp0s5069wwda98z3rrqd25spg8sa8rdqghj084w28w")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (inputs + `(("bordeaux-threads" ,sbcl-bordeaux-threads))) + (synopsis "Portable channel-based concurrency for Common Lisp") + (description "Common Lisp library for channel-based concurrency. = In +a nutshell, you create various threads sequentially executing tasks you = need +done, and use channel objects to communicate and synchronize the state o= f these +threads.") + (home-page "https://github.com/zkat/chanl") + (license (list license:expat license:bsd-3))))) + +(define-public cl-chanl + (sbcl-package->cl-source-package sbcl-chanl)) + +(define-public ecl-chanl + (let ((base (sbcl-package->ecl-package sbcl-chanl))) + (package + (inherit base) + (arguments + (substitute-keyword-arguments (package-arguments base) + ;; The CHANL.ACTORS package uses the :ARGUMENTS option of + ;; DEFINE-METHOD-COMBINATION, which is not implemented in ECL y= et + ;; (see https://gitlab.com/embeddable-common-lisp/ecl/issues/30= 5). + ;; So let's disable it for now, as it allows compiling the libr= ary + ;; and using the rest of it. + ((#:phases phases '%standard-phases) + `(modify-phases ,phases + (add-after 'unpack 'disable-chanl-actors + (lambda _ + (substitute* "chanl.asd" + (("\\(:file \"actors\"\\)") "")) + #t)))) + ;; Disable the tests for now, as the SEND-SEQUENCE test seems t= o + ;; never end. + ((#:tests? _ #f) #f)))))) --=20 2.23.0