[cltl3-devel] requirements on CL libraries

Jochen Schmidt js at crispylogics.com
Fri May 15 17:40:58 UTC 2009


Am 15.05.2009 um 18:17 schrieb Peter Denno:

Hi Peter,

> Hi,
>
> I support the idea of developing a "standard" common lisp library.  
> Doing so will provide common lisp with some of the capabilities that  
> today's programmers expect. Here are some thoughts on the  
> requirements that such an effort might address:
>
...snipped...

> - We should address the most important parts first. It is likely  
> that there would be some debate as to what those parts are. My list  
> includes regular expressions, XML handling, http and web page  
> production, Relation DB interfacing. Note that there already is good  
> code in all of these areas!

I think such a project is certainly valuable to make common lisp more  
appealing for newbies - but I'm uncertain if it is really something  
for a CLtL3. Standardizing on implementations like "cl-ppcre" for  
regex, mel-base for email a. s. o. would really be the wrong thing. So  
one really could only standardize on interfaces: We could specify  
which interface an XML library, regex-library or mail library has to  
provide to be "CLtL3" compliant. Even that is not really what I hoped  
for with CLtL3, but certainly others may see that differently.

I would really like to see enhancements on five places:

1) [CLtL3-Streams] User-extensible streams
For streams there is still the gray streams proposal - which is widely  
supported -  and some new developments like Franz' simple-streams and  
the new streams interfaces of LispWorks. Things to look for are  
bivalent streams (good? bad?) unicode issues a. s. o.

2) [CLtL3-Sequences] User-extensible sequences
AFAIR Christophe Rhodes wrote a paper about user extensible sequences.  
Being able to use functions like POSITION, ELT, MAP, SEARCH a.s.o on  
your own kinds of sequences.

3) [CLtL3-Hash-Tables] User-extensible hash tables
There is a CDR for generic hash-tables. Most implementations support  
some extensions to specify a hash-function or some kinds of weakness.

4) [CLtL3-Environments] Environment Access for mortals
In CLtL2 there were some facilities to access environments. Those  
didn't make it into the ANSI standard, but similar interfaces are  
supported by most CL systems. Franz made a proposal for an open  
interface for environment access.

5) [CLtL3-Packages] Enhancing package usefulness
CL packages are a mighty tool. There have been ideas like hierarchical  
packages, package aliases and conduits to make managing packages  
easier. Most implementations support some kind of package locking  
which could make it into CLtL3-Packages. Another interesting issue  
would be making symbol case sensitivity a package property. At least  
CLISP supports such "case sensitive packages". It could be  
investigated how this could be a good idea or not .

ciao,
Jochen

--
Jochen Schmidt
CRISPYLOGICS
Uhlandstr. 9 , 90408 Nuremberg

Fon +49 (0)911 517 999 82
Fax +49 (0)911 517 999 83

mailto:info at crispylogics.com
http://www.crispylogics.com





More information about the Cltl3-devel mailing list