+patches that are intended to go upstream. My primary task is filling
+in the ucw-standard library which was removed in the ucw-core fork.
+
+** [[darcsweb::trivial-timers][Trivial-Timers]]
+
+[[http://retes.hu/~mega/git/?p=clon.git;a=summary][Clon]] is a nice library for scheduling tasks within a Lisp image, but
+it used the SBCL timer extension. I wanted to run something using Clon
+on [[http://trac.clozure.com/openmcl][Clozure CL]] and so I looked at the SBCL source and found that, after
+a bit of fairly straightforward editing, it was possible to write a
+portable version for any compiler supporting [[http://common-lisp.net/project/bordeaux-threads/][Bordeaux Threads]]. The
+SBCL timers internally use =sb-unix:setittimer=; Rather than using
+[[http://common-lisp.net/project/osicat/][Osicat]] to emulate this I chose to rework the scheduling loop to run in
+a dedicated thread that sleeps on a condition variable with a
+timeout. This seems *cleaner* to me than using POSIX lib calls, but
+requires a threaded Lisp.
+
+[[http://releases.unknownlamer.org/trivial-timers/][Releases are available]] with the usual [[darcsweb::trivial-timers][darcs repo]]. Currently there is a
+native SBCL implementation and a portable implementation relying upon
+[[http://common-lisp.net/project/bordeaux-threads/][Bordeaux Threads]]. Patches to export other Lisp implementations' timer
+interface are welcome.
+