[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