- FiveAm
- cl-ppcre
- cl-ppcre-unicode
- cl-unicode
- arnesi
- flexi-streams
- trivial-gray-streams
- cl-fad.
Whats a test framework doing with 2 stream implementations, a file abstraction layer, 2 regex libraries and a box of utilities?
Those are not two stream implementation, it's an implementation compatibility library for extensible streams, since unfortunately those are not in the standard, used to implement bivalent and in memory streams, and one regex library with a separate unicode extension. All those are more or less valid for a testing framework.Warren Wilkinson wrote:Whats a test framework doing with 2 stream implementations, a file abstraction layer, 2 regex libraries and a box of utilities?
Dependencies tend to be fragile, so it's a good idea to minimise them as far as possible. Specifically, they can develop into a problem when libraries are changed incompatibly or bugs are introduced. For instance, if library A depends on version 1 of library C, and library B depends on some incompatible version 2 of the same library, conflicts ensue. If library B happens to have been based on version 1 of library C in the past, such that there was no conflict, then this can all of a sudden break lots and lots of dependency chains that depend on libraries A and B simultaneously.Ramarren wrote:I never understood why that is a problem. Lisp libraries are very small downloads, you only download them once, and these days installing things with quicklisp is trivial. Code reuse is a good thing.