kmrcl
KMRCL is a collection of utilities used by a number of Kevin Rosenberg's CL packages.

FAQ

Q1. Is there any doc for KMRCL?

A1. The source. :-) A2. There is Tinaa documentation available as of 12 December 2005.

Looks like this will not compile with a newer version of SBCL 0.8.20.31. byte-array.lisp will not compile due to file-stream not being a structure. More recent versions of SBCL (eg 0.9.5.32) compile correctly.

Quick assessment (2023-03-18)

  • Generally portable and well-written assortment of utilities.
  • Some (e.g. signals.lisp) are specific to SBCL/CMUCL/ACL.
  • Includes the famous if* macro, though doesn't export it.

? (require :kmrcl) :KMRCL NIL ? (kmrcl:fixnum-width) 60 ? (kmrcl:pretty-date-ut) "Saturday" "March" "18" "2023" "20:45:27" ? (kmrcl:seconds-to-condensed-time-string 360000.44 :dp-digits 2) "4d4h0m0.44s" ? (kmrcl:rgb->hsv 60 60 30) 60 1/2 60 ? (apply #'kmrcl:hsv->rgb /) 60 60 30 ? (kmrcl:split-uri-query-string "foo=bar&baz=quux") (("foo" . "bar") ("baz" . "quux")) ? (kmrcl:integer-string 2222 ; integer 20) ; length "00000000000000002222" ? (kmrcl:multiword-match "Some. Quick. Words." "quick, some, words") T ? (kmrcl:random-string :set :unambiguous :length 20) "cqRw3GBtWmLJMYj4LGCy"

The above is from 64-bit Clozure CL.


LLGPL