There s no general convention, but there are a few patterns:
- When the library is a port from some other language, a wrapper or an interface library it is often prefixed with
cl-
, like cl-gtk2
or cl-ppcre
. Although there was a time, when this prefix got abused, and there are a lot of packages (e.g. cl-who
), that implement a unique functionality, but still use it.
- If the package is implementation-specific, it s prefixed with implementation shorthand (most notably:
sb-
), like sb-queue
or lw-compat
.
- If the package is a compatibility layer between implementations, it is often prefixed with
trivial-
, like trivial-backtrace
or trivial-garbage
- There s also
s-
prefix, which may stand for symbolic , like s-xml
, but it s rarely used.
These prefixes help making the name of the package unique and thus simplify finding information about it on the web.
Otherwise there are no specific conventions, but the general rule is to favor short, unique and, probably, descriptive names. For the reasons of ease of remembering, usage and finding information.
If the package happens to have a long name it s handy to provide a shorter nickname, because more often, than not people will use package s symbols qualified by their names. For example in my code I add a nickname re
to cl-ppcre
, and it makes the client code much more understandable and clear. Although caution should be applied, so that nicknames didn t cause name-conflicts.