[clo-devel] Progress in taxonomy

Nikodemus Siivola tsiivola at cc.hut.fi
Sat Mar 13 11:49:15 UTC 2004


On Sat, 13 Mar 2004, Mario Mommer wrote:

> (def-project
>     :label "pg"
>     :name "Pg"
>     :category "Database"
>     :description "A Common Lisp interface to the PostgreSQL database")

> their project directory (which is desirable.  We could do a lot with
> this, like automagically generating acceptable temporary project
> pages) we should be careful to make sure that we don't open a security
> hole the size of the panama channel.

Why not have the data in file with just alists, and read it into a scratch
package with some readtable hackery to 1) guard against #. 2) preserve
package hygiene. (See main.lisp in linedit sources for one example of how
to do this.) Then just:

 (apply #'make-project :label label (apply #'append alist))?

Then the profile.sexp (or whatever) would look like:

 ;;;; Use this file to alter how your project appears on the
 ;;;; common-lisp.net website.
 ;;;;
 ;;;; The contents should be a single alist, with elements of the form
 ;;;;
 ;;;;  (<keyword> <value>)
 ;;;;
 ;;;; The values will appear on the pages are processed by PRINC.
 ;;;; Unknown keywords are ignored, so feel free to use them.
 ;;;; Known keywords are:
 ;;;;
 ;;;;  :name, :category, :description, :license
 ;;;;
 ;;;; The reading of this is done with some readtable hackery:
 ;;;;
 ;;;;   #.foo     => foo
 ;;;;   foo:bar   => foo :bar
 ;;;;   foo::bar  => foo :bar
 ;;;;

 ((:name "Pg")
  (:category "Database")
  (:description "A Common Lisp interface to the PostgreSQL database"))

As you see I omitted the label form the stuff user-definable things: we
know that when we read the file anyways.

Cheers,

 -- Nikodemus





More information about the clo-devel mailing list