;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Ekaitz Zarraga ;;; Copyright © 2020 Evan Hanson ;;; Copyright © 2020 raingloom ;;; Copyright © 2026 Malte Frank Ferdes ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages chicken) #:use-module (gnu packages) #:use-module (gnu packages bash) #:use-module (gnu packages curl) #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix utils) #:use-module (guix build-system chicken) #:use-module (guix build-system gnu) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix svn-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (srfi srfi-1)) ;; This package is build from pre-built C source code, provided in the CHICKEN ;; release tarball. Based on this bootstrap compiler, we build CHICKEN from ;; the Scheme source, thus enabling us to (at least) patch it. ;; ;; See . (define-public chicken-bootstrap (hidden-package (package (name "chicken-bootstrap") (version "6.0.0") (source (origin (method url-fetch) (uri (string-append "https://code.call-cc.org/releases/" version "/chicken-" version ".tar.gz")) (sha256 (base32 "0hzl875whdnkyv06x0gq57s0nl9np9d9nhkyfckav1xnn595b0wj")))) (build-system gnu-build-system) (arguments (list #:modules '((guix build gnu-build-system) (guix build utils) (srfi srfi-1)) ;; No `configure' script; run "make check" after "make install" as ;; prescribed by README. #:phases #~(modify-phases %standard-phases (delete 'configure) (delete 'check) (add-after 'install 'check (assoc-ref %standard-phases 'check))) #:make-flags #~(list "PLATFORM=linux" (string-append "PREFIX=" #$output) (string-append "VARDIR=" #$output "/var/lib")) ;; Parallel builds are not supported, as noted in README. #:parallel-build? #f)) (native-search-paths (list (search-path-specification (variable "CHICKEN_REPOSITORY_PATH") ;; TODO extract binary version into a module level definition. (files (list "var/lib/chicken/12"))))) ;; Reference gcc-toolchain lazily to avoid circular module dependency ;; problems. (propagated-inputs (list (module-ref (resolve-interface '(gnu packages commencement)) 'gcc-toolchain))) (home-page "https://www.call-cc.org/") (synopsis "Practical and portable scheme system") (description "CHICKEN is a compiler for the Scheme programming language. It produces portable and efficient C and supports the R5RS and R7RS standards, and many extensions.") (license license:bsd-3)))) ;; The CHICKEN compiler is itself written in CHICKEN, the CHICKEN release ;; tarballs includes auto-generated C code to mitigate the compiler ;; bootstrapping problem. To be able to patch the original Scheme source, ;; we compile from this Scheme source here using the chicken-bootstrap ;; compiler obtained from the autogenerated C code. ;; ;; See . (define-public chicken (package (inherit chicken-bootstrap) (name "chicken") (arguments (substitute-keyword-arguments (package-arguments chicken-bootstrap) ((#:phases phases) #~(modify-phases #$phases ;; CHICKEN contains auto-generated C code, remove it and ;; compile from the Scheme source using chicken-bootstrap. (add-after 'unpack 'remove-auto-generated-code (lambda _ (invoke "make" "PLATFORM=linux" "spotless"))) ;; Invoke commands by name, not by path. ;; ;; See . (add-after 'unpack 'fix-paths (lambda* (#:key inputs #:allow-other-keys) (let ((sh (search-input-file inputs "/bin/sh")) (cp (search-input-file inputs "/bin/cp"))) (substitute* "egg-compile.scm" (("/bin/sh") sh) (("\"cp ") (string-append "\"" cp " ")) (("\"cp\"") (string-append "\"" cp "\""))) (substitute* "posixunix.scm" (("/bin/sh") sh)) (substitute* "chicken-install.scm" (("\"sh \"") (string-append "\"" sh " \"")))))))))) (inputs (list chicken-bootstrap)) (properties (alist-delete 'hidden? (package-properties chicken-bootstrap))))) (define-public chicken-agrep (package (name "chicken-agrep") (version "1.7") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/iraikov/chicken-agrep") (commit version))) (file-name (string-append "chicken-agrep-" version "-checkout")) (sha256 (base32 "0z05x7f154n9bgmainrsmncf5i6dil43r9ymr3rdgwbg4wnxmz4s")))) (native-inputs (list chicken-test)) (propagated-inputs (list chicken-blob chicken-datatype chicken-srfi-1 chicken-srfi-14)) (build-system chicken-build-system) (arguments (list #:egg-name "agrep")) (synopsis "Approximate string matching library") (home-page "https://wiki.call-cc.org/eggref/5/agrep") (description "This library implements the Wu-Manber algorithm for approximate string searching with errors, popularized by the agrep Unix command and the glimpse file indexing tool.") (license license:gpl3+))) (define-public chicken-apropos (package (name "chicken-apropos") (version "4.0.2") (source (origin (method url-fetch) (uri (egg-uri "apropos" version)) (sha256 (base32 "05x659abn65mrplvk7lyvy44s4p2w8kwrz1bv2isi1qsnmfnnfgy")))) (build-system chicken-build-system) (arguments (list #:egg-name "apropos")) (native-inputs (list chicken-test chicken-test-utils)) (propagated-inputs (list chicken-check-errors chicken-srfi-1 chicken-srfi-13 chicken-symbol-utils)) (home-page "https://wiki.call-cc.org/egg/apropos") (synopsis "CHICKEN apropos") (description "An apropos facility for chicken scheme allowing to display information about symbols in the toplevel environment.") (license license:expat))) (define-public chicken-autocompile (package (name "chicken-autocompile") (version "1.1.1") (source (origin (method url-fetch) (uri (egg-uri "autocompile" version)) (sha256 (base32 "1yh8gzpyyflfmnv243ky0vzrpbnlxykq6s69v6f92lnk2qgb9nx6")))) (build-system chicken-build-system) (arguments (list #:egg-name "autocompile")) (propagated-inputs (list chicken-matchable)) (home-page "https://wiki.call-cc.org/egg/autocompile") (synopsis "Automatically compile Scheme scripts on demand") (description "A program named chicken-scheme takes a Scheme file and a number of arguments and if the script has not been compiled before or has changed as compared to the last compiled version, compiles it, storing the result in a cache in the user's $HOME directory.") (license license:public-domain))) (define-public chicken-base64 (package (name "chicken-base64") (version "1.1") (source (origin (method url-fetch) (uri (egg-uri "base64" version)) (sha256 (base32 "1fdnxmwb336sx8kx1l5yjpryhivr8wsrvljsxywnx9439038gq02")))) (build-system chicken-build-system) (arguments (list #:egg-name "base64")) (native-inputs (list chicken-test)) (propagated-inputs (list chicken-srfi-13)) (home-page "https://wiki.call-cc.org/egg/base64") (synopsis "Encoding and decoding of base64 strings") (description "This egg provides base64 encoding and decoding compliant with RFC4648.") (license license:expat))) (define-public chicken-blob (package (name "chicken-blob") (version "0.2") (source (origin (method url-fetch) (uri (egg-uri "chicken-blob" version)) (sha256 (base32 "0ng6zz7y8xz0w0gplsrd2rlrrjbcd5jgvj7jidr66c5pqwnq2ih2")))) (build-system chicken-build-system) (arguments (list #:egg-name "chicken-blob")) (home-page "https://wiki.call-cc.org/man/5/Module%20%28chicken%20blob%29") (synopsis "Replacement for CHICKEN 5's 'blob' module") (description "This module provides a shim around the bytevector procedures to let old code work after blobs have been renamed to bytevectors in CHICKEN 6.") (license license:expat))) (define-public chicken-bytevector-utils (package (name "chicken-bytevector-utils") (version "1.0.1") (source (origin (method url-fetch) (uri (egg-uri "bytevector-utils" version)) (sha256 (base32 "1z9ybzbr6vp7w79ric5f8jfdy28s9pvm87h9pfgy2mq3jcsqpm0k")))) (build-system chicken-build-system) (arguments (list #:egg-name "bytevector-utils")) (native-inputs (list chicken-test chicken-test-utils)) (propagated-inputs (list chicken-string-utils chicken-check-errors)) (home-page "https://wiki.call-cc.org/egg/bytevector-utils") (synopsis "Bytevector Utilities") (description #f) (license license:expat))) (define-public chicken-check-errors (package (name "chicken-check-errors") (version "4.0.1") (source (origin (method url-fetch) (uri (egg-uri "check-errors" version)) (sha256 (base32 "08hn6vw631q5k4adarq8fr146arbbxvxy36j77df3xvr0dqx7pjp")))) (build-system chicken-build-system) (arguments (list #:egg-name "check-errors")) (native-inputs (list chicken-test chicken-test-utils)) (home-page "https://wiki.call-cc.org/egg/check-errors") (synopsis "Argument checks & errors") (description "This egg provides functions and error types to check arguments. If the unsafe feature is specified these checks are no-ops.") (license license:expat))) (define-public chicken-chibi-term (package (name "chicken-chibi-term") (version "0.1.0") (source (origin (method url-fetch) (uri (egg-uri "chibi-term" version)) (sha256 (base32 "1i6zs998jamdr4kfpchigx7jq7jpybnb5i893n2qlv23lyc2g869")))) (build-system chicken-build-system) (arguments (list #:egg-name "chibi-term")) (native-inputs (list chicken-test)) (home-page "https://wiki.call-cc.org/egg/chibi-term") (synopsis "Chibi Scheme's term library") (description "A library to use ANSI escape codes to format text and background color, font weight, and underlining.") (license license:bsd-3))) (define-public chicken-compile-file (package (name "chicken-compile-file") (version "1.4") (source (origin (method url-fetch) (uri (egg-uri "compile-file" version)) (sha256 (base32 "0zjbk2s9nb35qhpf8wd2m3by7ykvicihb1zxk71v2j2zjr3za82k")))) (build-system chicken-build-system) (arguments (list #:egg-name "compile-file")) (home-page "https://wiki.call-cc.org/egg/compile-file") (synopsis "Programmatic compiler invocation") (description "This egg provides a way to do on-the-fly compilation of source code and load it into the running process.") (license license:bsd-3))) (define-public chicken-crunch (package (name "chicken-crunch") (version "0.998") (source (origin (method url-fetch) (uri (egg-uri "crunch" version)) (sha256 (base32 "1lfvnzxnvkry74jj4lx2bcib9dr82hm7332mjsyk34ncf6162sj2")))) (build-system chicken-build-system) (arguments (list #:egg-name "crunch")) (native-inputs (list chicken-compile-file chicken-miscmacros)) (propagated-inputs (list chicken-srfi-1 chicken-srfi-13 chicken-matchable)) (home-page "https://wiki.call-cc.org/egg/crunch") (synopsis "Embedded compiler for a statically typed subset of R7RS Scheme") (description "CRUNCH is an embedded compiler for a statically typed subset of R7RS Scheme, generating C code. The compiler uses type inference to decorate the code with type information without requiring declarations. CRUNCH can be used to translate embedded Scheme code sections, whole programs or multiple source modules into standalone executables or compiled code that can be invoked from Scheme.") (license license:bsd-3))) (define-public chicken-crypto-tools (package (name "chicken-crypto-tools") (version "1.4") (source (origin (method url-fetch) (uri (egg-uri "crypto-tools" version)) (sha256 (base32 "0ajf0qfnhp99f4x1dll2fhlxrsxamgrrwyksc7rrym77xmv8f1pd")))) (build-system chicken-build-system) (arguments '(#:egg-name "crypto-tools")) (propagated-inputs (list chicken-blob)) (home-page "https://wiki.call-cc.org/eggref/5/crypto-tools") (synopsis "Useful cryptographic primitives") (description "The crypto-tools egg implements useful cryptographic primitives. More specifically, provided are: @itemize @item binary blobs @itemize @item marshallers to and from hex strings @item blob xor @item blob padding using either PKCS#5 or ISO7816-4 @end itemize @item Block cipher modes of operation @itemize @item CBC with or without incorporated encrypted IV in the ciphertext @item CTR with or without incorporated IV in the ciphertext @end itemize @end itemize") (license license:bsd-3))) (define-public chicken-datatype (package (name "chicken-datatype") (version "1.7") (source (origin (method url-fetch) (uri (egg-uri "datatype" version)) (sha256 (base32 "03pcif0f0srrbnay8r7p0jrgjnqs637wcd8iw3vzcsc76fn36p3r")))) (build-system chicken-build-system) (arguments (list #:egg-name "datatype")) (native-inputs (list chicken-test)) (propagated-inputs (list chicken-srfi-1)) (home-page "https://wiki.call-cc.org/egg/datatype") (synopsis "Facility for creating and using variant records") (description "This CHICKEN Scheme library provides a facility for creating and using variant records, as described in the book @i{Essentials of Programming Languages} by Friedman, Wand, and Haynes.") (license license:bsd-3))) (define-public chicken-defstruct (package (name "chicken-defstruct") (version "2.1") (source (origin (method url-fetch) (uri (egg-uri "defstruct" version)) (sha256 (base32 "0sm5d7cbdgpb70qy7jc0yxri2wazcxj2q5ii6gcsbpkzjmfd2fka")))) (build-system chicken-build-system) (arguments (list #:egg-name "defstruct")) (native-inputs (list chicken-test)) (propagated-inputs (list chicken-srfi-1)) (home-page "https://wiki.call-cc.org/egg/defstruct") (synopsis "More convenient form of define-record") (description "This module provides an alternative way to define records. While trying to improve the way records can be defined, this implementation is not hygienic.") (license license:bsd-3))) ;; The chicken-doc-admin package uses chicken-doc and chicken-doc contains an ;; index built by chicken-doc-admin, so we first build chicken-doc without said ;; database. (define chicken-doc-bare (package (name "chicken-doc-bare") (version "0.7.1") (source (origin (method url-fetch) (uri (egg-uri "chicken-doc" version)) (sha256 (base32 "1iklziczpzb6rljjjc7ar7ba6lbdzfn7f5wx2pv3jrj7w3vdy4f5")))) (build-system chicken-build-system) (arguments (list #:egg-name "chicken-doc")) (propagated-inputs (list chicken-matchable chicken-fmt chicken-sxml-transforms chicken-srfi-1 chicken-srfi-13 chicken-srfi-69)) (home-page "https://wiki.call-cc.org/egg/chicken-doc") (synopsis "Explore Chicken documentation locally") (description "This package provides facilities to explore CHICKEN documentation from the command-line and from the REPL. It also provides an API to access this documentation from your own programs.") (license license:bsd-3))) (define-public chicken-doc (let ((doc-repo-path "share/doc-db")) (package (inherit chicken-doc-bare) (name "chicken-doc") (arguments (list #:egg-name "chicken-doc" #:phases #~(modify-phases %standard-phases (add-after 'build 'build-documentation-index (lambda* (#:key inputs #:allow-other-keys) (let ((eggref (search-input-directory inputs "eggref/6")) (man (search-input-directory inputs "man/6"))) (setenv "CHICKEN_DOC_REPOSITORY" #$doc-repo-path) (mkdir-p #$doc-repo-path) (invoke "chicken-doc-admin" "-i") (invoke "chicken-doc-admin" "-e" eggref) (invoke "chicken-doc-admin" "-m" man)))) (add-after 'install 'install-documentation-index (lambda _ (copy-recursively "share" (string-append #$output "/share"))))))) (native-inputs (list chicken-doc-admin (origin (method svn-fetch) (uri (svn-reference (url "https://code.call-cc.org/svn/chicken-eggs/wiki") (revision 46347) (user-name "anonymous") (password ""))) (sha256 (base32 "06nma438n5yabhp1cv4swz3sa800y21bn9xafw5jq2jmcw2mg85p"))))) (native-search-paths (list (search-path-specification (variable "CHICKEN_DOC_REPOSITORY") (files (list doc-repo-path)))))))) (define-public chicken-doc-admin (package (name "chicken-doc-admin") (version "0.5.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/ursetto/chicken-doc-admin") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1xc648qn5v6qww4vz0q27rqvqzkrc8d7hrb580bglhnhj0w4r0pb")) (patches (search-patches "chicken-doc-admin-port-to-chicken-6.patch")))) (build-system chicken-build-system) (arguments (list #:egg-name "chicken-doc-admin")) (propagated-inputs (list chicken-doc-bare chicken-matchable chicken-html-parser chicken-sxml-transforms chicken-svnwiki-sxml chicken-srfi-1 chicken-srfi-13 chicken-srfi-69)) (home-page "https://wiki.call-cc.org/egg/chicken-doc-admin") (synopsis "Administer Chicken documentation locally") (description "This package provides facilities to create and modify a CHICKEN documentation repository for chicken-doc. It includes a command-line tool to convert egg documentation and manual pages from the CHICKEN wiki for use with chicken-doc. It also provides an API for repository manipulation.") (license license:bsd-3))) (define-public chicken-fmt (package (name "chicken-fmt") (version "0.8.14") (source (origin (method url-fetch) (uri (egg-uri "fmt" version)) (sha256 (base32 "1fbsg33hjkkf4kb98358brjaykcahq48jg359mbn2v6260azwj7p")))) (build-system chicken-build-system) (arguments (list #:egg-name "fmt")) (native-inputs (list chicken-test)) (propagated-inputs (list chicken-srfi-1 chicken-srfi-13 chicken-srfi-69)) (home-page "https://wiki.call-cc.org/egg/fmt") (synopsis "Combinator formatting library") (description "A library of procedures for formatting Scheme objects to text in various ways, and for easily concatenating, composing and extending these formatters efficiently without resorting to capturing and manipulating intermediate strings.") (license license:bsd-3))) (define-public chicken-getopt-long (package (name "chicken-getopt-long") (version "4.0") (source (origin (method url-fetch) (uri (egg-uri "getopt-long" version)) (sha256 (base32 "054xnz9fsdk30plzw9rp944s03g2azrmnwcdji6d5wwx10v773hd")))) (build-system chicken-build-system) (arguments (list #:egg-name "getopt-long")) (native-inputs (list chicken-matchable chicken-test)) (propagated-inputs (list chicken-matchable chicken-srfi-1 chicken-srfi-13 chicken-srfi-14)) (home-page "https://wiki.call-cc.org/egg/getopt-long") (synopsis "Parse command line options") (description "The getopt-long library implements command line option parsing, in the spirit of the GNU C library function getopt_long. Both long and short options are supported. The theory is that people should be able to constrain the set of options they want to process using a grammar, rather than some arbitrary structure. The grammar makes the option descriptions easy to read.") (license license:lgpl3))) (define-public chicken-html-parser (package (name "chicken-html-parser") (version "0.4.1") (source (origin (method url-fetch) (uri (egg-uri "html-parser" version)) (sha256 (base32 "1arabikig0g16izcnqpycdmcw5ffw12yfk4rkcgzfpzf4g25ppya")))) (build-system chicken-build-system) (arguments (list #:egg-name "html-parser")) (native-inputs (list chicken-test)) (propagated-inputs (list chicken-srfi-13)) (home-page "https://wiki.call-cc.org/egg/html-parser") (synopsis "Permissive, scalable HTML parser") (description "This library is intended as a permissive HTML parser for people who prefer the scalable interface described in Oleg Kiselyov's SSAX parser, as well as providing simple convenience utilities. It correctly handles all invalid HTML, inserting virtual starting and closing tags as needed to maintain the proper tree structure needed for the foldts down/up logic. A major goal of this parser is bug-for-bug compatibility with the way common web browsers parse HTML.") (license license:bsd-3))) (define-public chicken-http-curl (package (name "chicken-http-curl") (version "0.1.3") (source (origin (method url-fetch) (uri (string-append "https://forgejo.rolando.cl/cpm/http-curl/archive/v" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "0zzy44kf7argrg6jy4mp4rf4msqj54qnb79kmykjp5lsv5mqni2k")))) (build-system chicken-build-system) (arguments (list #:egg-name "http-curl")) (inputs (list curl)) (native-inputs (list chicken-test)) (propagated-inputs (list chicken-intarweb chicken-srfi-18)) (synopsis "HTTP client egg for CHICKEN Scheme based on libcurl") (home-page "https://forgejo.rolando.cl/cpm/http-curl") (description "Provides robust HTTPS/TLS support out of the box with an API compatible with http-client.") (license license:bsd-3))) (define-public chicken-intarweb (package (name "chicken-intarweb") (version "3.0.1") (source (origin (method url-fetch) (uri (string-append "https://code.more-magic.net/intarweb/snapshot/intarweb-" version ".tar.gz")) (sha256 (base32 "1sq7hkqcl0xly7i6d8f6vfvp6vhyd5jzq2gd1w9hzk2ha6mpibn3")))) (build-system chicken-build-system) (arguments (list #:egg-name "intarweb")) (native-inputs (list chicken-test)) (propagated-inputs (list chicken-srfi-1 chicken-srfi-13 chicken-srfi-14 chicken-defstruct chicken-uri-common chicken-base64)) (synopsis "Intarweb is an advanced http library") (home-page "https://code.more-magic.net/intarweb") (description "Intarweb parses all headers into more useful Scheme values. It serves as a low-level basis for http servers or clients.") (license license:bsd-3))) (define-public chicken-iset (package (name "chicken-iset") (version "2.3.1") (source (origin (method url-fetch) (uri (egg-uri "iset" version)) (sha256 (base32 "1v797b31369b625pd27dbqc6r988z9cgiipp187y8kgfa5dm69xn")))) (native-inputs (list chicken-test)) (build-system chicken-build-system) (arguments (list #:egg-name "iset")) (synopsis "Integer set library") (home-page "https://wiki.call-cc.org/egg/iset") (description "This ``integer set'' CHICKEN Scheme library implements bit vectors. Bit-vectors provide an abstract interface to bitwise operations typically done with integers.") (license license:bsd-3))) (define-public chicken-matchable (package (name "chicken-matchable") (version "1.2") (source (origin (method url-fetch) (uri (egg-uri "matchable" version)) (sha256 (base32 "0h2awlx5y00i5mvqna1wj5ydxg86hc5lvd2fxdl3ypd7gcgz0y92")))) (build-system chicken-build-system) (arguments (list #:egg-name "matchable")) (native-inputs (list chicken-test)) (home-page "https://wiki.call-cc.org/egg/matchable") (synopsis "Hygienic MATCH replacement") (description "This extension implements Andrew Wright's pattern matching macros.") (license license:public-domain))) (define-public chicken-miscmacros (package (name "chicken-miscmacros") (version "1.3") (source (origin (method url-fetch) (uri (egg-uri "miscmacros" version)) (sha256 (base32 "0cqmmahr4fj5ws0grzvqrzk097rbnzdk1f56qymrzgigiblfkglh")))) (build-system chicken-build-system) (arguments (list #:egg-name "miscmacros")) (home-page "https://wiki.call-cc.org/egg/miscmacros") (synopsis "Various helper macros") (description #f) (license license:bsd-3))) (define-public chicken-regex (package (name "chicken-regex") (version "2.1") (source (origin (method url-fetch) (uri (egg-uri "regex" version)) (sha256 (base32 "1v6xpkd6s5y6svg106v721an27js7cz5cl2h9y88pmchhvl066mm")))) (build-system chicken-build-system) (arguments (list #:egg-name "regex")) (home-page "https://wiki.call-cc.org/egg/regex") (synopsis "Compatibility library for old regular expression API") (description "This extension provides the regular expression API that used to be available in CHICKEN releases before version 4.6.2. It is a thin wrapper around the functionality provided by irregex and is mostly intended to keep old code working.") (license license:bsd-3))) (define-public chicken-silex (package (name "chicken-silex") (version "1.1") (source (origin (method url-fetch) (uri (egg-uri "silex" version)) (sha256 (base32 "0hchm3mg18klkhi24dbrqq4v65awislf5d7hchg33i32acjnxir0")))) (build-system chicken-build-system) (arguments (list #:egg-name "silex")) (native-inputs (list chicken-test)) (propagated-inputs (list chicken-srfi-13)) (home-page "https://wiki.call-cc.org/egg/silex") (synopsis "Efficient and powerful lexer generator") (description "SILex is a lexical analyser generator similar to the Lex and Flex programs, but for Scheme. SILex stands for Scheme Implementation of Lex.") (license license:bsd-3))) (define-public chicken-srfi-1 (package (name "chicken-srfi-1") (version "0.5.1") (source (origin (method url-fetch) (uri (egg-uri "srfi-1" version)) (sha256 (base32 "1s0m7ajjyif3r6nvsjphhykgd2wlsa6j7jsmfhy7s6sc47cddznj")))) (build-system chicken-build-system) (arguments (list #:egg-name "srfi-1")) (native-inputs (list chicken-test)) (home-page "https://wiki.call-cc.org/egg/srfi-1") (synopsis "SRFI-1 list library") (description "The list library defined in @uref{https://srfi.schemers.org/srfi-1/srfi-1.html, SRFI-1} contains a lot of useful list processing procedures for construction, examining, destructuring and manipulating lists and pairs.") (license (license:non-copyleft "https://srfi.schemers.org/srfi-1/srfi-1.html" "Olin Shivers' license; see the header of srfi-1.scm")))) (define-public chicken-srfi-13 (package (name "chicken-srfi-13") (version "0.3.8") (source (origin (method url-fetch) (uri (egg-uri "srfi-13" version)) (sha256 (base32 "02qwwja2s5800ylgkj5fz72qz079z3kjffvn2qj1vh2b5jchzcvg")))) (build-system chicken-build-system) (arguments (list #:egg-name "srfi-13")) (native-inputs (list chicken-test)) (propagated-inputs (list chicken-srfi-1 chicken-srfi-14)) (home-page "https://wiki.call-cc.org/egg/srfi-13") (synopsis "SRFI-13 string library for Chicken scheme") (description "This package provides the SRFI-13 string library for Chicken scheme.") (license license:bsd-3))) (define-public chicken-srfi-14 (package (name "chicken-srfi-14") (version "0.2.3") (source (origin (method url-fetch) (uri (egg-uri "srfi-14" version)) (sha256 (base32 "03yajfyh1d58kk9hq5vhw69pf6x17wms7zpx8w7s59vzkn99l8a8")))) (build-system chicken-build-system) (arguments (list #:egg-name "srfi-14")) (propagated-inputs (list chicken-srfi-1)) (home-page "https://wiki.call-cc.org/egg/srfi-14") (synopsis "SRFI-14 character-sets library") (description "Character sets can be created, extended, tested for the membership of a characters and be compared to other character sets.") (license (license:non-copyleft "http://wiki.call-cc.org/egg/srfi-14#license")))) (define-public chicken-srfi-18 (package (name "chicken-srfi-18") (version "0.2.2") (source (origin (method url-fetch) (uri (egg-uri "srfi-18" version)) (sha256 (base32 "1qrrcss2izy182akx1vpzv66r0mmrnk879kqlgd0hf5wsj1567j9")))) (build-system chicken-build-system) (arguments (list #:egg-name "srfi-18")) (native-inputs (list chicken-compile-file)) (home-page "https://wiki.call-cc.org/egg/srfi-18") (synopsis "Multithreading package, largely following SRFI-18") (description "The threads implemented in CHICKEN are so called \"green\" threads, based on first-class continuations. Native threads that map directly to the threads provided by the operating system are not supported. The advantage of this is that threads are very lightweight and somewhat larger degree of determinism. The disadvantage is that execution of Scheme code on multiple processor cores is not available.") (license license:bsd-3))) (define-public chicken-srfi-69 (package (name "chicken-srfi-69") (version "0.5.3") (source (origin (method url-fetch) (uri (egg-uri "srfi-69" version)) (sha256 (base32 "0bypnghy5izifbxnrf61pm7bzih9fr5glzs3fmn00fmb58bhj4lf")))) (arguments (list #:egg-name "srfi-69")) (build-system chicken-build-system) (home-page "https://wiki.call-cc.org/egg/srfi-69") (synopsis "Implementation of SRFI 69 with SRFI 90 extensions") (description "This package provides an implementation of @uref{https://srfi.schemers.org/srfi-69/srfi-69.html, SRFI-69 hash tables} for CHICKEN Scheme, along with @uref{https://srfi.schemers.org/srfi-90/srfi-90.html, SRFI-90} extensions.") (license license:bsd-3))) (define-public chicken-string-utils (package (name "chicken-string-utils") (version "3.6.1") (source (origin (method url-fetch) (uri (egg-uri "string-utils" version)) (sha256 (base32 "0hfab6sa11jsdjnsq9nlvs8yxy8hjbgizjwxkrpwlwbk91i2x6qx")))) (build-system chicken-build-system) (arguments (list #:egg-name "string-utils")) (native-inputs (list chicken-test chicken-test-utils)) (propagated-inputs (list chicken-srfi-1 chicken-srfi-13 chicken-srfi-14 chicken-srfi-69 chicken-miscmacros chicken-check-errors)) (home-page "https://wiki.call-cc.org/egg/string-utils") (synopsis "String Utilities") (description #f) (license license:bsd-3))) (define-public chicken-svnwiki-sxml (package (name "chicken-svnwiki-sxml") (version "0.3.1") (source (origin (method url-fetch) (uri (egg-uri "svnwiki-sxml" version)) (sha256 (base32 "10nm8lpbdnjj41r3cmvlf4izk309f9aysp4d9f3sj52i7pq1v80z")))) (build-system chicken-build-system) (arguments (list #:egg-name "svnwiki-sxml")) (native-inputs (list chicken-test)) (propagated-inputs (list chicken-matchable chicken-html-parser chicken-sxml-transforms chicken-srfi-13 chicken-srfi-1 chicken-regex)) (home-page "https://wiki.call-cc.org/egg/svnwiki-sxml") (synopsis "Parse svnwiki to sxml") (description "This extension provides a parser which reads in text in svnwiki format and converts it into an abstract SXML representation.") (license license:expat))) (define-public chicken-sxml-transforms (package (name "chicken-sxml-transforms") (version "1.5.0") (source (origin (method url-fetch) (uri (egg-uri "sxml-transforms" version)) (sha256 (base32 "00wcgr6yyqvp2l1f7a4axg9vscpc6qb1iskcvwc2p8mkfp3159ja")))) (build-system chicken-build-system) (arguments (list #:egg-name "sxml-transforms")) (propagated-inputs (list chicken-srfi-13)) (home-page "https://wiki.call-cc.org/egg/sxml-transforms") (synopsis "SXML transformations (to XML, SXML, and HTML) from the SSAX project") (description "This egg provides the SXML transforms available in the SSAX/SXML Sourceforge project.") (license license:public-domain))) (define-public chicken-symbol-utils (package (name "chicken-symbol-utils") (version "3.0.0") (source (origin (method url-fetch) (uri (egg-uri "symbol-utils" version)) (sha256 (base32 "01jpn15fbdzwjslq594iywv0zny4x72828qdyr6znrszpkg8rcjn")))) (build-system chicken-build-system) (arguments (list #:egg-name "symbol-utils")) (native-inputs (list chicken-test chicken-test-utils)) (propagated-inputs (list chicken-srfi-1 chicken-srfi-13)) (home-page "https://wiki.call-cc.org/egg/symbol-utils") (synopsis "Symbol Utilities") (description #f) (license license:expat))) (define-public chicken-test (package (name "chicken-test") (version "1.3") (source (origin (method url-fetch) (uri (egg-uri "test" version)) (sha256 (base32 "0wifl5lwijfx555agwrxa4l3pc8hyh79n4knlq9mrbrrq2ydyxf6")))) (build-system chicken-build-system) (arguments (list #:egg-name "test")) (home-page "https://wiki.call-cc.org/egg/test") (synopsis "Yet another testing utility") (description "This package provides a simple testing utility for CHICKEN Scheme.") (license license:bsd-3))) (define-public chicken-test-utils (package (name "chicken-test-utils") (version "1.8.2") (source (origin (method url-fetch) (uri (egg-uri "test-utils" version)) (sha256 (base32 "0ripy8x4sjc8ga2iwcjwsfsf6vp5rq459pywj4c0bq22gffgrma3")))) (build-system chicken-build-system) (arguments (list #:egg-name "test-utils")) (native-inputs (list chicken-test)) (propagated-inputs (list chicken-test)) (home-page "https://wiki.call-cc.org/egg/test-utils") (synopsis "Gloss & Runner for test egg") (description "This egg provides a glossary and a runner for the test egg.") (license license:expat))) (define-public chicken-uri-common (package (name "chicken-uri-common") (version "3.0") (source (origin (method url-fetch) (uri (egg-uri "uri-common" version)) (sha256 (base32 "1vxqdzr49zm68ny9yx70yxacpzjym9n15w8kyqxnwgcrjgidndpy")))) (build-system chicken-build-system) (arguments (list #:egg-name "uri-common")) (native-inputs (list chicken-test)) (propagated-inputs (list chicken-uri-generic chicken-defstruct chicken-matchable chicken-srfi-1 chicken-srfi-13 chicken-srfi-14)) (home-page "https://wiki.call-cc.org/egg/uri-common") (synopsis "Parser for common URI schemes") (description "The uri-common library provides simple and easy-to-use parsing and manipulation procedures for URIs using common schemes. These common schemes all have the following rules: @itemize @item An empty path after the hostname is considered to be identical to the root path. @item All components are to be fully URI-decoded (so no percent-encoded characters in it). @item The query argument will be in application/x-www-form-urlencoded form. @item The port is automatically determined if it is omitted and the URI scheme is known. @end itemize") (license license:bsd-3))) (define-public chicken-uri-generic (package (name "chicken-uri-generic") (version "4.0") (source (origin (method url-fetch) (uri (egg-uri "uri-generic" version)) (sha256 (base32 "0npnmr0v32k0zpr87jswhwipm973bsvz67rsq96n7bh9a6ixylxm")))) (build-system chicken-build-system) (arguments (list #:egg-name "uri-generic")) (native-inputs (list chicken-test)) (propagated-inputs (list chicken-matchable chicken-srfi-1 chicken-srfi-14)) (home-page "https://wiki.call-cc.org/egg/uri-generic") (synopsis "URI generic syntax (RFC 3986) parsing and manipulation") (description "The uri-generic library contains procedures for parsing and manipulation of Uniform Resource Identifiers (RFC 3986). It is intended to conform more closely to the RFC, and uses combinator parsing and character classes rather than regular expressions. This library should be considered to be a basis for creating scheme-specific URI parser libraries. This library only parses the generic components from a URI. Any specific library can further parse subcomponents. For this reason, encoding and decoding of percent-encoded characters is not done automatically. This should be handled by specific URI scheme implementations.") (license license:bsd-3)))