chicken.scm 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
  3. ;;; Copyright © 2020 Evan Hanson <evhan@foldling.org>
  4. ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
  5. ;;;
  6. ;;; This file is part of GNU Guix.
  7. ;;;
  8. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  9. ;;; under the terms of the GNU General Public License as published by
  10. ;;; the Free Software Foundation; either version 3 of the License, or (at
  11. ;;; your option) any later version.
  12. ;;;
  13. ;;; GNU Guix is distributed in the hope that it will be useful, but
  14. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  15. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. ;;; GNU General Public License for more details.
  17. ;;;
  18. ;;; You should have received a copy of the GNU General Public License
  19. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  20. (define-module (gnu packages chicken)
  21. #:use-module (gnu packages)
  22. #:use-module (guix packages)
  23. #:use-module (guix build-system chicken)
  24. #:use-module (guix build-system gnu)
  25. #:use-module (guix download)
  26. #:use-module (guix git-download)
  27. #:use-module (guix svn-download)
  28. #:use-module (gnu packages commencement)
  29. #:use-module ((guix licenses)
  30. #:prefix license:))
  31. (define-public chicken
  32. (package
  33. (name "chicken")
  34. (version "5.2.0")
  35. (source (origin
  36. (method url-fetch)
  37. (uri (string-append "https://code.call-cc.org/releases/"
  38. version "/chicken-" version ".tar.gz"))
  39. (sha256
  40. (base32
  41. "1yl0hxm9cirgcp8jgxp6vv29lpswfvaw3zfkh6rsj0vkrv44k4c1"))))
  42. (build-system gnu-build-system)
  43. (arguments
  44. `(#:modules ((guix build gnu-build-system)
  45. (guix build utils)
  46. (srfi srfi-1))
  47. ;; No `configure' script; run "make check" after "make install" as
  48. ;; prescribed by README.
  49. #:phases
  50. (modify-phases %standard-phases
  51. (delete 'configure)
  52. (delete 'check)
  53. (add-after 'install 'check
  54. (assoc-ref %standard-phases 'check)))
  55. #:make-flags (let ((out (assoc-ref %outputs "out")))
  56. (list "PLATFORM=linux"
  57. (string-append "PREFIX=" out)
  58. (string-append "VARDIR=" out "/var/lib")))
  59. ;; Parallel builds are not supported, as noted in README.
  60. #:parallel-build? #f))
  61. (native-search-paths
  62. (list (search-path-specification
  63. (variable "CHICKEN_REPOSITORY_PATH")
  64. ;; TODO extract binary version into a module level definition.
  65. (files (list "var/lib/chicken/11")))))
  66. (propagated-inputs `(("gcc-toolchain" ,gcc-toolchain)))
  67. (home-page "https://www.call-cc.org/")
  68. (synopsis "R5RS Scheme implementation that compiles native code via C")
  69. (description
  70. "CHICKEN is a compiler for the Scheme programming language. CHICKEN
  71. produces portable and efficient C, supports almost all of the R5RS Scheme
  72. language standard, and includes many enhancements and extensions.")
  73. (license license:bsd-3)))
  74. (define-public chicken-srfi-1
  75. (package
  76. (name "chicken-srfi-1")
  77. (version "0.5.1")
  78. (source
  79. (origin
  80. (method svn-fetch)
  81. (uri (svn-reference
  82. (url (string-append
  83. "https://code.call-cc.org/svn/chicken-eggs/"
  84. "release/5/srfi-1/tags/"
  85. version))
  86. (revision 39055)
  87. (user-name "anonymous")
  88. (password "")))
  89. (file-name (string-append "chicken-srfi-1" version "-checkout"))
  90. (sha256
  91. (base32
  92. "02940zsjrmn7c34rnp1rllm2nahh9jvszlzrw8ak4pf31q09cmq1"))))
  93. (build-system chicken-build-system)
  94. (arguments '(#:egg-name "srfi-1"))
  95. (inputs
  96. `(("chicken-test" ,chicken-test)))
  97. (home-page "https://wiki.call-cc.org/eggref/5/srfi-1")
  98. (synopsis "SRFI-1 list library")
  99. (description
  100. "The list library defined in
  101. @uref{https://srfi.schemers.org/srfi-1/srfi-1.html, SRFI-1} contains a lot of
  102. useful list processing procedures for construction, examining, destructuring
  103. and manipulating lists and pairs.")
  104. (license license:bsd-3)))
  105. (define-public chicken-srfi-14
  106. (package
  107. (name "chicken-srfi-14")
  108. (version "0.2.1")
  109. (source
  110. (origin
  111. (method svn-fetch)
  112. (uri (svn-reference
  113. (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
  114. "release/5/srfi-14/tags/" version))
  115. (revision 39057)
  116. (user-name "anonymous")
  117. (password "")))
  118. (file-name (string-append "chicken-srfi-14-" version "-checkout"))
  119. (sha256
  120. (base32
  121. "0wjsqfwawh9bx6vvii1gwag166bxkflc0ib374fbws14914g2ac1"))))
  122. (build-system chicken-build-system)
  123. (arguments '(#:egg-name "srfi-14"))
  124. (home-page "https://wiki.call-cc.org/eggref/5/srfi-14")
  125. (synopsis "Character set library")
  126. (description
  127. "Character sets can be created, extended, tested for the membership of
  128. a characters and be compared to other character sets")
  129. (license (license:non-copyleft
  130. "http://wiki.call-cc.org/eggref/5/srfi-14#license"))))
  131. (define-public chicken-srfi-69
  132. (package
  133. (name "chicken-srfi-69")
  134. (version "0.4.1")
  135. (source
  136. (origin
  137. (method svn-fetch)
  138. (uri (svn-reference
  139. (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
  140. "release/5/srfi-69/tags/"
  141. version))
  142. (revision 39057)
  143. (user-name "anonymous")
  144. (password "")))
  145. (file-name (string-append "chicken-srfi-69-" version "-checkout"))
  146. (sha256
  147. (base32
  148. "1z0m9vmg9bj9z0a941pls6igvg8nmhq4mj5psjjidbp0fac572mp"))))
  149. (arguments '(#:egg-name "srfi-69"))
  150. (build-system chicken-build-system)
  151. (home-page "https://wiki.call-cc.org/eggref/5/srfi-69")
  152. (synopsis "Implementation of SRFI 69 with SRFI 90 extensions")
  153. (description
  154. "This package provides an implementation of
  155. @uref{https://srfi.schemers.org/srfi-69/srfi-69.html, SRFI-69 hash tables} for
  156. CHICKEN Scheme, along with
  157. @uref{https://srfi.schemers.org/srfi-90/srfi-90.html, SRFI-90} extensions.")
  158. (license license:bsd-3)))
  159. (define-public chicken-agrep
  160. (package
  161. (name "chicken-agrep")
  162. (version "1.7")
  163. (source
  164. (origin
  165. (method git-fetch)
  166. (uri (git-reference
  167. (url "https://github.com/iraikov/chicken-agrep")
  168. (commit version)))
  169. (file-name (string-append "chicken-agrep-" version "-checkout"))
  170. (sha256
  171. (base32
  172. "0z05x7f154n9bgmainrsmncf5i6dil43r9ymr3rdgwbg4wnxmz4s"))))
  173. ;; TODO do we really have to make these propagated?
  174. ;; I don't know Chicken's module system well enough to tell
  175. (propagated-inputs
  176. `(("chicken-datatype" ,chicken-datatype)
  177. ("chicken-srfi-1" ,chicken-srfi-1)
  178. ("chicken-srfi-14" ,chicken-srfi-14)))
  179. (inputs
  180. `(("chicken-test" ,chicken-test)))
  181. (build-system chicken-build-system)
  182. (arguments '(#:egg-name "agrep"))
  183. (synopsis "Approximate string matching library")
  184. (home-page "https://wiki.call-cc.org/eggref/5/agrep")
  185. (description
  186. "This library implements the Wu-Manber algorithm for approximate string
  187. searching with errors, popularized by the agrep Unix command and the glimpse
  188. file indexing tool.")
  189. (license license:gpl3+)))
  190. (define-public chicken-datatype
  191. (package
  192. (name "chicken-datatype")
  193. (version "1.6")
  194. (source
  195. (origin
  196. (method svn-fetch)
  197. (uri (svn-reference
  198. (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
  199. "release/5/datatype/tags/" version))
  200. (revision 39266)
  201. (user-name "anonymous")
  202. (password "")))
  203. (file-name (string-append "chicken-datatype-" version "-checkout"))
  204. (sha256
  205. (base32
  206. "1a58q8ypjkjz6wdv25247wixds4179239d36nnvsfn6gp70s9jfq"))))
  207. (build-system chicken-build-system)
  208. (arguments '(#:egg-name "datatype"))
  209. (inputs
  210. `(("chicken-srfi-1" ,chicken-srfi-1)
  211. ("chicken-test" ,chicken-test)))
  212. (home-page "https://wiki.call-cc.org/eggref/5/datatype")
  213. (synopsis "Facility for creating and using variant records")
  214. (description
  215. "This CHICKEN Scheme library provides a facility for creating and using
  216. variant records, as described in the book @i{Essentials of Programming
  217. Languages} by Friedman, Wand, and Haynes.")
  218. (license license:bsd-3)))
  219. (define-public chicken-iset
  220. (package
  221. (name "chicken-iset")
  222. (version "2.2")
  223. (source
  224. (origin
  225. (method svn-fetch)
  226. (uri (svn-reference
  227. (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
  228. "release/5/iset/tags/" version))
  229. (revision 39057)
  230. (user-name "anonymous")
  231. (password "")))
  232. (file-name (string-append "chicken-iset-" version "-checkout"))
  233. (sha256
  234. (base32
  235. "0gz50n5i561n5sk9prry0lrxz6bfrq9if5bclaq6a0f7lzinhnzb"))))
  236. (inputs
  237. `(("chicken-test" ,chicken-test)))
  238. (build-system chicken-build-system)
  239. (arguments '(#:egg-name "iset"))
  240. (synopsis "Integer set library")
  241. (home-page "https://wiki.call-cc.org/eggref/5/iset")
  242. (description
  243. "This ``integer set'' CHICKEN Scheme library implements bit vectors.
  244. Bit-vectors provide an abstract interface to bitwise operations typically done
  245. with integers.")
  246. (license license:bsd-3)))
  247. (define-public chicken-test
  248. (package
  249. (name "chicken-test")
  250. (version "1.1")
  251. (source
  252. (origin
  253. (method svn-fetch)
  254. (uri (svn-reference
  255. (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
  256. "release/5/test/tags/" version))
  257. (revision 39263)
  258. (user-name "anonymous")
  259. (password "")))
  260. (file-name (string-append "chicken-test-" version "-checkout"))
  261. (sha256
  262. (base32
  263. "14i91cxsn6hjkx6kqf7i9syck73cw71jik61jmhg87vpxx5kfnzx"))))
  264. (build-system chicken-build-system)
  265. (arguments '(#:egg-name "test"))
  266. (home-page "https://wiki.call-cc.org/eggref/5/test")
  267. (synopsis "Yet another testing utility")
  268. (description
  269. "This package provides a simple testing utility for CHICKEN Scheme.")
  270. (license license:bsd-3)))