Some things I have made.
Some of which are merely piles of smaller things, related largely by their shared history and authorship. There should generally be some documentation and infrastructure to build and install things here. Some notes on what goes where, probably only interesting to me.
Based on xkcd 936. Python 2.7 or 3. Documentation / Source code.
MacOS now has protections which are completely orthogonal to the traditional Unix file access controls. These can make running unattended periodic tasks difficult. A solution is to have a single program which you ‘bless’ with full disk access and which can then run other things. To make this not insanely dangerous that program should allow you to specify what it will, and won’t run. That’s what warranted
is: a tool like sudo
but without the implication of access as another user, and with a better (I think) configuration syntax. It’s written in Racket, and you’ll need a Racket installation to build it.
Conduit packages are packages which serve as conduits for one or more underlying packages: they let you make a system which consists of several implementation packages available through one package, or to provide packages which extend other packages, or replace some symbols they export with symbols from a different package.
destructuring-match
is a construct which is like a combination of case
and a slightly extended destructuring-bind
. It is extremely useful for writing macros.
Štar is a concise and extensible iteration construct for Common Lisp which aims to be pleasant to use, easy to understand, fast if needed, general, and not to look like Fortran.
A collection of fairly miscellaneous Common Lisp tools which I use to help with program construction and management, which I have written over the years in order to generally get stuff done. Slowly growing as I unearth things and publish them.
A collection of small Common Lisp hacks, which may be useful in programs, and which I’ve written over the last thirty-odd years. Some of them are genuinely useful, some of them are little more than toys written long ago to prove a point on comp.lang.lisp
. They are largely independent of each other.
Symbol nicknames is a toy which allows you to have multiple names resolving to the same symbol, which may or may not be useful. This is implementation-specific as it requires hooking symbol lookup: it is fully supported in LispWorks and SBCL, while the core should be portable CL. It’s never going to be more than a toy.
Some things which I’ve written which depend on specific implementations of CL that I use or have used. Currently not much has been added but I will probably add more over time. Some of this code may work, some of it may once have worked, some of it may never have worked: caveat emptor.
Shards and fragments which may be interesting to someone.
A collection of Common Lisp toys: some may work, some may not work, some may never have worked.
Reeder is a toy table-driven Lisp reader, written in Common Lisp. I wrote it mostly to see how hard it would be. It is a toy, it probably has bugs and it may be hard to build if you are not me. But it is extensible and configurable.
Oa – one argument – is a toy Racket language for playing with λ-calculus. In fact there are a total of four languages:
(λ x x)
;(λ (x y) x)
which is turned into (λ x (λ y x))
, and where (f a b)
is turned into ((f a) b)
;I wrote oa to learn about implementing languages in Racket, and to play with λ-calculus. I am not convinced the normal-order languages are correct – they certainly used not to be although they seem to be working now.
Artifacts from a past I am forgetting.
(None yet.)