Subject: Re: Vancouver Lisp Users Group meeting for February 2008 - Doing Evil Things with CL
From: rpw3@rpw3.org (Rob Warnock)
Date: Tue, 05 Feb 2008 21:39:41 -0600
Newsgroups: comp.lang.lisp,comp.lang.scheme
Message-ID: <UYWdnbiF8dBgtjTanZ2dnUVZ_jqdnZ2d@speakeasy.net>
billc  <billclem@gmail.com> wrote:
+---------------
| Topic: Doing Evil Things with CL
| Presenter: Brad Beveridge
...
| Summary: Brad will be talking about various low-level bits and pieces,
| including:
| 
| - Loading code that is normally a Linux driver into a Lisp image
+---------------

Hey, that's *my* trick!!  ;-}

Well, no, actually. My signature hack is writing the driver in a
Lisp image in the first place, and, only after it's functionally
complete *and* tested by mmap()'ing the hardware into the Lisp
image and using the Lisp-based driver to poke at the hardware
including DMA'ing into pinned user-mode pages, then hand-compiling[1]
it to C and dropping it into the Unix/Linux kernel...


-Rob

[1] Well, I do tend to automatically generate the C header files,
    mainly the hardware register bit definitions (structs & manifest
    constants) from within the Lisp image. And also some simple
    C macros. And initialized arrays of magic constants. And also
    sometimes function prototypes. But the body of the executable
    function code is still hand-compiled to C.

-----
Rob Warnock			<rpw3@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607