X-Git-Url: http://git.hcoop.net/clinton/website/src/unknownlamer.org.git/blobdiff_plain/0426bc8a30cba2a8a449ea66a056ac4e1f6ffe53..698519c8db0f0c912feeb09d1845bb6c2670f42b:/Code.muse diff --git a/Code.muse b/Code.muse index ab28996..16337c6 100644 --- a/Code.muse +++ b/Code.muse @@ -1,11 +1,15 @@ #title Programming Projects All of my current, and some not so current, projects are browsable via -[[http://unknownlamer.org/darcsweb/browse][my darcsweb]]. You might want to take a look at my [[Lisp][Lisp projects]] page. +[[http://unknownlamer.org/darcsweb/browse][my darcsweb]]. You might want to take a look at my [[Lisp][Lisp related projects]] +page. I have a few things available on [[http://git.hcoop.net/][HCoop's gitweb]] prefixed with +=clinton/=. -* UnCommon Web Related +* Common Lisp -** [[darcsweb::golgonooza][Golgonooza]] +** UnCommon Web Related + +*** [[darcsweb::golgonooza][Golgonooza]] Fourfold the Sons of Los in their divisions: and fourfold. @@ -19,19 +23,55 @@ But that toward Eden is walled up. till time of renovation: Yet it is perfect in its building. ornaments & perfection. -Golgonooza is a set of utility components for [[http://common-lisp.net/projects/ucw/repos/ucw-core/][ucw-core]]. +Golgonooza is a set of utility components for [[http://common-lisp.net/projects/ucw/repos/ucw-core/][ucw-core]]. As of December +2008 it is nearing a releasable state and is in use on +[[http://bees-kneesfilms.com][one production site online]] (darcsweb::beesknees for source). -** [[darcsweb::ucw-forms][ucw-forms]] +*** [[darcsweb::ucw-forms][ucw-forms]] ucw-forms is a slightly enhanced and de-javascripted version of the forms library from ucw_ajax updated for use with ucw-core. -** [[darcsweb::ucw-core_clinton][ucw-core branch]] +*** [[darcsweb::ucw-core_clinton][ucw-core branch]] I maintain a personal branch of ucw-core with various work in progress -patches that are intended to go into upstream. My primary task is -filling in the ucw-standard library which was removed in the ucw-core -fork. +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. + +* Scheme + +** [[darcsweb::guile-xosd2][Guile XOSD2]] + +A simple SWIG based wrapper for [[http://www.ignavus.net/software.html][libxosd2]]. I forked this from +[[https://gna.org/projects/guile-xosd][guile-xosd]] after the maintainer did not respond to an email with a +small patch to make the interface nicer. Guile-XOSD2 requires SWIG +1.3.x and has been tested against the VM branch of Guile. I renamed +most of the functions to have properly Scheme names. + +* Standard ML + +** [[http://wiki.hcoop.net/DomTool][Domtool]] + +Originally authored by [[http://www.schizomaniac.net/][Adam Chlipala]], as of late 2010 I have been +tasked with keeping it up to date for [[http://hcoop.net][HCoop]]. * Old Projects @@ -48,6 +88,13 @@ is fairly powerful. =dsmith= from =#guile= has a nicely featured bot written on top of Bobot++; if I find time I shall attempt to post the source. +There is now a [[darcsweb::bobot%2B%2B][darcs repo]] available with a few minor changes. I am +sporadically working to make the internals of the bot fully threadsafe +so that multithreaded Scheme extensions don't run into issues. I may +potentially clean up the Scheme interface as well (as it was clearly +not designed by a Schemer and I was not so well versed in proper style +in 2002 when I did most of my work on Bobot++). + ** [[../code/guile-web.html][Guile-Web]] A perhaps still useful library of web related utilities for