Packages, Testing and Tooling
49.1 Package Managers
R6RS/R7RS packages for many implementations (akku install chez-srfi) snow-fort / snow-chibi
R7RS "snowballs" (snow-chibi install (srfi 1)) CHICKEN eggs chicken-install <egg> Guile libraries and everything else
49.2 Testing with SRFI-64
Other tools: CHICKEN's test egg, Racket's rackunit, Guile's (srfi srfi-64), Chibi's (chibi test).
(import (scheme base) (srfi 64))
(define (add a b) (+ a b))
(test-begin "math")
(test-equal "addition" 4 (add 2 2))
(test-eqv "eqv test" 'a 'a)
(test-assert "even" (even? 4))
(test-approximate "pi" 3.14159 (* 4 (atan 1)) 0.001)
(test-error "car of empty list" (car '()))
(test-group "strings"
(test-equal "upcase" "ABC" (string-upcase "abc")))
(test-end "math") ; prints a summary: passes, failures49.3 Tooling
Editors: Emacs + Geiser + paredit (the classic), DrRacket, VS Code (Magic Racket, Scheme extensions), Vim/Neovim (Conjure, vim-sexp).
Formatting: standard Lisp indentation (Emacs), raco fmt (Racket), schemat.
Documentation: Scribble (Racket), Texinfo (Guile), and docstrings in some implementations.
Build tools: Makefiles, compile-file scripts, CHICKEN's .egg files, Guix packages, raco make.