Hi people!
This topic was discussed some years ago. Currently I put my library at
google code. Some docs are outdated, many comments are in Russian. But
this library can do what many of you dreamed of:
- local package nicknames. Call package by short name and don't be
afraid of conflicts
- automatic and safe duplicate symbols resolution. When you define new
package with my library, conflicting symbols from used packages do not
break execution. Their names become forbidden in new package by
default. You just can't read them through the reader. You can
overwrite the default and use either of conflicting symbols. You can
also explicitly declare some symbol names as forbidden - useful to
combat trash symbols.
- symbol-readmacros. Now you can attach special reader functions to
symbols. So, you can have foo:[ ... ] and bar:[ ... ] special readers
with different sence and with no conflicts.
- named-readtables are included - address your readtables by their
name
- iterate-keyworks - use keywords in iterate (iter (:for ...)
(:collect ...)) - useful to avoid symbol names conflicts.
- and some more
Library used to pass tests in Allegro, CCL, CLISP, Lispworks, SBCL.
Tasks are:
- testing
- SLIME integration to make completion work via package aliases
- simplification and removal of redundant dependencies
- translation of docstrings
http://code.google.com/p/def-symbol-readmacro/
I'd like to thank all the people here who discussed various issues
related to the development of the library.