Specifications-Wanted
This is a collection of notes on Interface Specifications - both real and non-existent - which could benefit from some sort of community Standards.
Non-existent specifications need writing. Existing specifiations need adoption - either by the world at large, or by some perceived authority.
Foreign Function Interface
Most implementations offer one, and everybody seems to agree that a common one would be a good thing. UFFI already does something like this, but follows the lowest common denominator.
- proposals needed
Socket Interface
Most implementations offer one, and everybody seems to agree that a common one would be a good thing. CLOCC has a portablity layer for several implementations. But it should be noted that parts of CLOCC are GPL'd - not all developers will be happy with that.
- proposals needed
Lightweight Extensions
A number of macroes with common purpose, but differring names / interfaces exist in relatively common usage (eg. WITH-UNIQUE-NAMES / WITH-GENSYMS). They and other portable features might benefit from community canonization and a common package. CLOCC has somethings along these lines. These things need to be transformed from code to proposals. CLiki has others in more mature form, linked below. These would benefit from being written into a cohesive whole.
Defsystem
A number of implementations exist: for example MK:DEFSYSTEM, ASDF. Are they specified anywhere?
OS Interfaces
POSIX, Windows, Mac OS-X. (Or does POSIX suffice for Mac nowadays?) A common subset of functionality found on all major platforms might be good as well.
Shell-like extensions
Running other programs, opening and listening to pipes. Most implementations provide things like this, as evidenced by this portability layer by CLOCC.
- proposals needed
Pathname extensions
Of course, these might more naturally be part of an OS interface. CLOCC has some portablity code. Kent Pitman commented on Genera pathnames on the comp.lang.lisp.
- proposals needed
User Definable Streams
Multiprocessing
Many implementations offer support, but with divergent interfaces. Once again, there is something related in CLOCC. Also, ACL-COMPAT offers something in this direction.
- Proposal: com-metacircles-clim-sys-mp