From 96ce8b5507166e67bb2ed8128889d333a2963124 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 25 Nov 2018 12:35:04 +0100 Subject: gnu: Add cl-markup. * gnu/packages/lisp.scm (cl-markup, ecl-cl-markup, sbcl-cl-markup): New variables. --- gnu/packages/lisp.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index a3649e5bd6..1d8b0f0cdd 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -3494,3 +3494,39 @@ Lisp, featuring: (define-public ecl-lparallel (sbcl-package->ecl-package sbcl-lparallel)) + +(define-public sbcl-cl-markup + (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390")) + (package + (name "sbcl-cl-markup") + (version (git-version "0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/arielnetworks/cl-markup/") + (commit commit))) + (file-name (git-file-name "cl-markup" version)) + (sha256 + (base32 + "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7")))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/arielnetworks/cl-markup/") + (synopsis "Markup generation library for Common Lisp") + (description + "A modern markup generation library for Common Lisp that features: + +@itemize +@item Fast (even faster through compiling the code) +@item Safety +@item Support for multiple document types (markup, xml, html, html5, xhtml) +@item Output with doctype +@item Direct output to stream +@end itemize\n") + (license license:lgpl3+)))) + +(define-public cl-markup + (sbcl-package->cl-source-package sbcl-cl-markup)) + +(define-public ecl-cl-markup + (sbcl-package->ecl-package sbcl-cl-markup)) -- cgit v1.2.3 From 9eeef6abb2452725a4595279078ed530dc4c5679 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 25 Nov 2018 12:40:32 +0100 Subject: gnu: Add cl-css. * gnu/packages/lisp.scm (cl-css, ecl-cl-css, sbcl-cl-css): New variables. --- gnu/packages/lisp.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 1d8b0f0cdd..b049fb485d 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -3530,3 +3530,33 @@ Lisp, featuring: (define-public ecl-cl-markup (sbcl-package->ecl-package sbcl-cl-markup)) + +(define-public sbcl-cl-css + (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f")) + (package + (name "sbcl-cl-css") + (version (git-version "0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/inaimathi/cl-css/") + (commit commit))) + (file-name (git-file-name "cl-css" version)) + (sha256 + (base32 + "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd")))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/inaimathi/cl-css/") + (synopsis "Non-validating, inline CSS generator for Common Lisp") + (description + "This is a dead-simple, non validating, inline CSS generator for Common +Lisp. Its goals are axiomatic syntax, simple implementation to support +portability, and boilerplate reduction in CSS.") + (license license:expat)))) + +(define-public cl-css + (sbcl-package->cl-source-package sbcl-cl-css)) + +(define-public ecl-cl-markup + (sbcl-package->ecl-package sbcl-cl-css)) -- cgit v1.2.3 From 9fabcb6ce24a2fa497dedd35967507df0f1c6b58 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 25 Nov 2018 13:30:35 +0100 Subject: gnu: Add portable-threads. * gnu/packages/lisp.scm (cl-portable-threads, ecl-portable-threads, sbcl-portable-threads): New variables. --- gnu/packages/lisp.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index b049fb485d..42ce0bbf67 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -3560,3 +3560,35 @@ portability, and boilerplate reduction in CSS.") (define-public ecl-cl-markup (sbcl-package->ecl-package sbcl-cl-css)) + +(define-public sbcl-portable-threads + (let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920")) + (package + (name "sbcl-portable-threads") + (version (git-version "2.3" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/binghe/portable-threads/") + (commit commit))) + (file-name (git-file-name "portable-threads" version)) + (sha256 + (base32 + "03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq")))) + (build-system asdf-build-system/sbcl) + (arguments + `(;; Tests seem broken. + #:tests? #f)) + (home-page "https://github.com/binghe/portable-threads") + (synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp") + (description + "Portable Threads (and Scheduled and Periodic Functions) API for Common +Lisp (from GBBopen project).") + (license license:asl2.0)))) + +(define-public cl-portable-threads + (sbcl-package->cl-source-package sbcl-portable-threads)) + +(define-public ecl-portable-threada + (sbcl-package->ecl-package sbcl-portable-threads)) -- cgit v1.2.3 From 75c95c7652916319f00ffdb563b17de373756bbd Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 25 Nov 2018 13:31:54 +0100 Subject: gnu: Add sbcl-usocket-boot0. * gnu/packages/lisp.scm (sbcl-usocket-boot0): New variable. --- gnu/packages/lisp.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 42ce0bbf67..23438003c4 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -3592,3 +3592,34 @@ Lisp (from GBBopen project).") (define-public ecl-portable-threada (sbcl-package->ecl-package sbcl-portable-threads)) + +(define-public sbcl-usocket-boot0 + ;; usocket's test rely on usocket-server which depends on usocket itself. + ;; We break this cyclic dependency with -boot0 that packages usocket. + (let ((commit "86e7efbfe50101931edf4b67cdcfa7e221ecfde9")) + (package + (name "sbcl-usocket-boot0") + (version (git-version "0.7.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/usocket/usocket/") + (commit commit))) + (file-name (git-file-name "usocket" version)) + (sha256 + (base32 + "1lk6ipakrib7kdgzw44hrgmls9akp5pz4h35yynw0k5zwmmq6374")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("split-sequence" ,sbcl-split-sequence))) + (arguments + `(#:tests? #f + #:asd-system-name "usocket")) + (home-page "https://common-lisp.net/project/usocket/") + (synopsis "Universal socket library for Common Lisp (server side)") + (description + "This library strives to provide a portable TCP/IP and UDP/IP socket +interface for as many Common Lisp implementations as possible, while keeping +the abstraction and portability layer as thin as possible.") + (license license:expat)))) -- cgit v1.2.3 From be01e79caa2fdf5ff66adf31a1edf071d2f830ca Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 25 Nov 2018 13:32:12 +0100 Subject: gnu: Add usocket-server. * gnu/packages/lisp.scm (cl-usocket-server, ecl-usocket-server, sbcl-usocket-server): New variables. --- gnu/packages/lisp.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 23438003c4..359f8376d5 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -3623,3 +3623,20 @@ Lisp (from GBBopen project).") interface for as many Common Lisp implementations as possible, while keeping the abstraction and portability layer as thin as possible.") (license license:expat)))) + +(define-public sbcl-usocket-server + (package + (inherit sbcl-usocket-boot0) + (name "sbcl-usocket-server") + (inputs + `(("usocket" ,sbcl-usocket-boot0) + ("portable-threads" ,sbcl-portable-threads))) + (arguments + '(#:asd-system-name "usocket-server")) + (synopsis "Universal socket library for Common Lisp (server side)"))) + +(define-public cl-usocket-server + (sbcl-package->cl-source-package sbcl-usocket-server)) + +(define-public ecl-socket-server + (sbcl-package->ecl-package sbcl-usocket-server)) -- cgit v1.2.3 From 79dc47c9c937ecf08680dace26cca029d7de4a2e Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 25 Nov 2018 13:32:49 +0100 Subject: gnu: Add usocket. * gnu/packages/lisp.scm (cl-usocket, ecl-usocket, sbcl-usocket): New variables. --- gnu/packages/lisp.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 359f8376d5..06d1e6fe46 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -3640,3 +3640,21 @@ the abstraction and portability layer as thin as possible.") (define-public ecl-socket-server (sbcl-package->ecl-package sbcl-usocket-server)) + +(define-public sbcl-usocket + (package + (inherit sbcl-usocket-boot0) + (name "sbcl-usocket") + (arguments + ;; FIXME: Tests need network access? + `(#:tests? #f)) + (native-inputs + ;; Testing only. + `(("usocket-server" ,sbcl-usocket-server) + ("rt" ,sbcl-rt))))) + +(define-public cl-usocket + (sbcl-package->cl-source-package sbcl-usocket)) + +(define-public ecl-socket + (sbcl-package->ecl-package sbcl-usocket)) -- cgit v1.2.3 From c931f8098c85fdaa44e4603f39acad86a609079c Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 25 Nov 2018 13:47:54 +0100 Subject: gnu: Add s-xml. * gnu/packages/lisp.scm (cl-s-xml, ecl-s-xml, sbcl-s-xml): New variables. --- gnu/packages/lisp.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 06d1e6fe46..ceb2cfc472 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -3658,3 +3658,51 @@ the abstraction and portability layer as thin as possible.") (define-public ecl-socket (sbcl-package->ecl-package sbcl-usocket)) + +(define-public sbcl-s-xml + (package + (name "sbcl-s-xml") + (version "3") + (source + (origin + (method url-fetch) + (uri "https://common-lisp.net/project/s-xml/s-xml.tgz") + (sha256 + (base32 + "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf")))) + (build-system asdf-build-system/sbcl) + (home-page "https://common-lisp.net/project/s-xml/") + (synopsis "Simple XML parser implemented in Common Lisp") + (description + "S-XML is a simple XML parser implemented in Common Lisp. This XML +parser implementation has the following features: + +@itemize +@item It works (handling many common XML usages). +@item It is very small (the core is about 700 lines of code, including +comments and whitespace). +@item It has a core API that is simple, efficient and pure functional, much +like that from SSAX (see also http://ssax.sourceforge.net). +@item It supports different DOM models: an XSML-based one, an LXML-based one +and a classic xml-element struct based one. +@item It is reasonably time and space efficient (internally avoiding garbage +generatation as much as possible). +@item It does support CDATA. +@item It should support the same character sets as your Common Lisp +implementation. +@item It does support XML name spaces. +@end itemize + +This XML parser implementation has the following limitations: + +@itemize +@item It does not support any special tags (like processing instructions). +@item It is not validating, even skips DTD's all together. +@end itemize\n") + (license license:lgpl3+))) + +(define-public cl-s-xml + (sbcl-package->cl-source-package sbcl-s-xml)) + +(define-public ecl-s-xml + (sbcl-package->ecl-package sbcl-s-xml)) -- cgit v1.2.3 From 8c5160dbd5d4f6b5f414a4d563355a11a6afce59 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 25 Nov 2018 13:48:28 +0100 Subject: gnu: Add s-xml-rpc. * gnu/packages/lisp.scm (cl-s-xml-rpc, ecl-s-xml-rpc, sbcl-s-xml-rpc): New variables. --- gnu/packages/lisp.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index ceb2cfc472..87ba39b986 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -3706,3 +3706,30 @@ This XML parser implementation has the following limitations: (define-public ecl-s-xml (sbcl-package->ecl-package sbcl-s-xml)) + +(define-public sbcl-s-xml-rpc + (package + (name "sbcl-s-xml-rpc") + (version "7") + (source + (origin + (method url-fetch) + (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz") + (sha256 + (base32 + "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("s-xml" ,sbcl-s-xml))) + (home-page "https://common-lisp.net/project/s-xml-rpc/") + (synopsis "Implementation of XML-RPC in Common Lisp for both client and server") + (description + "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both +client and server.") + (license license:lgpl3+))) + +(define-public cl-s-xml-rpc + (sbcl-package->cl-source-package sbcl-s-xml-rpc)) + +(define-public ecl-s-xml-rpc + (sbcl-package->ecl-package sbcl-s-xml-rpc)) -- cgit v1.2.3 From 76d520facb54f4f86977683fd21bf1d4ac5ba45d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 29 Nov 2018 11:54:57 +0200 Subject: gnu: sbcl: bootstrap with clisp on non-Intel machines. * gnu/packages/lisp.scm (sbcl)[native-inputs]: If the current system is not x86_64-linux or i686-linux, use clisp in place of ccl. [arguments]: In the custom build phase, use the correct bootstrap lisp. --- gnu/packages/lisp.scm | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 87ba39b986..90b57efe74 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -333,7 +333,6 @@ an interpreter, a compiler, a debugger, and much more.") #t)))) (build-system gnu-build-system) (outputs '("out" "doc")) - ;; Bootstrap with CLISP. (native-inputs ;; From INSTALL: ;; Supported build hosts are: @@ -343,15 +342,20 @@ an interpreter, a compiler, a debugger, and much more.") ;; ABCL (recent versions only) ;; CLISP (only some versions: 2.44.1 is OK, 2.47 is not) ;; XCL - ;; CCL seems ideal then. - `(("ccl" ,ccl) + ;; CCL seems ideal then, but it unfortunately only builds reliably + ;; on some architectures. + `(,@(match (%current-system) + ((or "x86_64-linux" "i686-linux") + `(("ccl" ,ccl))) + (_ + `(("clisp" ,clisp)))) ("which" ,which) ("inetutils" ,inetutils) ;for hostname(1) ("ed" ,ed) ("texlive" ,(texlive-union (list texlive-tex-texinfo))) ("texinfo" ,texinfo))) (arguments - '(#:modules ((guix build gnu-build-system) + `(#:modules ((guix build gnu-build-system) (guix build utils) (srfi srfi-1)) #:phases @@ -410,7 +414,11 @@ an interpreter, a compiler, a debugger, and much more.") (replace 'build (lambda* (#:key outputs #:allow-other-keys) (setenv "CC" "gcc") - (invoke "sh" "make.sh" "ccl" + (invoke "sh" "make.sh" ,@(match (%current-system) + ((or "x86_64-linux" "i686-linux") + `("ccl")) + (_ + `("clisp"))) (string-append "--prefix=" (assoc-ref outputs "out"))))) (replace 'install -- cgit v1.2.3