Fix default ARRAY-INDEX and ARRAY-LENGTH.
[alexandria.git] / alexandria.asd
blob5277631c5faad6ff247fea90db7924095aa7f644
1 (defsystem :alexandria
2   :version "0.0.0"
3   :licence "Public Domain / 0-clause MIT"
4   :description "Alexandria is a collection of portable public domain utilities."
5   :long-description
6   "Alexandria is a project and a library.
8 As a project Alexandria's goal is to reduce duplication of effort and improve
9 portability of Common Lisp code according to its own idiosyncratic and rather
10 conservative aesthetic. What this actually means is open to debate, but each
11 project member has a veto on all project activities, so a degree of
12 conservativism is inevitable.
14 As a library Alexandria is one of the means by which the project strives for
15 its goals.
17 Alexandria is a collection of portable public domain utilities that meet
18 the following constraints:
20  * Utilities, not extensions: Alexandria will not contain conceptual
21    extensions to Common Lisp, instead limiting itself to tools and utilities
22    that fit well within the framework of standard ANSI Common Lisp.
23    Test-frameworks, system definitions, logging facilities, serialization
24    layers, etc. are all outside the scope of Alexandria as a library, though
25    well within the scope of Alexandria as a project.
27  * Conservative: Alexandria limits itself to what project members consider
28    conservative utilities. Alexandria does not and will not include anaphoric
29    constructs, loop-like binding macros, etc.
31  * Portable: Alexandria limits itself to portable parts of Common Lisp. Even
32    apparently conservative and useful functions remain outside the scope of
33    Alexandria if they cannot be implemented portably. Portability is here
34    defined as portable within a conforming implementation: implementation bugs
35    are not considered portability issues.
37  * Team player: Alexandria will not (initially, at least) subsume or provide
38    functionality for which good-quality special-purpose packages exist, like
39    split-sequence. Instead, third party packages such as that may be
40    \"blessed\"."
41   :components
42   ((:static-file "LICENCE")
43    (:static-file "tests.lisp")
44    (:file "package")
45    (:file "definitions" :depends-on ("package"))
46    (:file "binding" :depends-on ("package"))
47    (:file "strings" :depends-on ("package"))
48    (:file "conditions" :depends-on ("package"))
49    (:file "hash-tables" :depends-on ("package"))
50    (:file "io" :depends-on ("package" "macros" "lists" "types"))
51    (:file "macros" :depends-on ("package" "strings" "symbols"))
52    (:file "control-flow" :depends-on ("package" "definitions" "macros"))
53    (:file "symbols" :depends-on ("package"))
54    (:file "functions" :depends-on ("package" "symbols" "macros"))
55    (:file "lists" :depends-on ("package" "functions"))
56    (:file "types" :depends-on ("package" "symbols" "lists"))
57    (:file "arrays" :depends-on ("package" "types"))
58    (:file "sequences" :depends-on ("package" "lists" "types"))
59    (:file "numbers" :depends-on ("package" "sequences"))
60    (:file "features" :depends-on ("package" "control-flow"))))
62 (defmethod operation-done-p ((o test-op) (c (eql (find-system :alexandria))))
63   nil)
65 (defmethod perform ((o test-op) (c (eql (find-system :alexandria))))
66   (operate 'load-op :alexandria-tests)
67   (operate 'test-op :alexandria-tests))