Christophe Weblog Wiki Code Publications Music
just-about support first-arg-only-special-case in pattern specializers
[specializable.git] / language-extension.pattern-specializer.asd
1 ;;;; language-extension.pattern-specializer.asd --- System definition for the language-extension.pattern-specializer system.
2 ;;;;
3 ;;;; Copyright (C) 2014 Jan Moringen
4 ;;;;
5 ;;;; Author: Jan Moringen <jmoringe@techfak.uni-bielefeld.de>
6
7 (cl:defpackage #:language-extension.pattern-specializer-sytem
8   (:use
9    #:cl
10    #:asdf))
11
12 (cl:in-package #:language-extension.pattern-specializer-sytem)
13
14 (defsystem :language-extension.pattern-specializer
15   :author      "Jan Moringen <jmoringe@techfak.uni-bielefeld.de>"
16   :license     "LLGPLv3; see COPYING file for details."
17   :description "Use optima patterns as specializers in CLOS methods - SBCL ONLY"
18   :depends-on  (;; (:feature :sbcl) this works differently than one might think; it's more like (:if-features :sbcl :foo :bar)
19
20                 :specializable
21
22                 :alexandria
23                 :optima)
24   :components  ((:module     "src"
25                  :pathname   "src/pattern-specializer"
26                  :serial     t
27                  :components ((:file       "package")
28                               (:file       "protocol")
29                               (:file       "optima-extensions")
30                               (:file       "pattern-specializer"))))
31
32   :in-order-to ((test-op (test-op :language-extension.pattern-specializer-test))))
33
34 (defsystem :language-extension.pattern-specializer-test
35   :author      "Jan Moringen <jmoringe@techfak.uni-bielefeld.de>"
36   :license     "LLGPLv3; see COPYING file for details."
37   :description "Tests for the language-extension.pattern-specializer system."
38   :depends-on  (:fiveam
39
40                 :language-extension.pattern-specializer)
41   :components  ((:module     "test"
42                  :pathname   "test/pattern-specializer"
43                  :serial     t
44                  :components ((:file       "package")
45                               (:file       "optima-extensions")))))
46
47 (defmethod perform ((operation test-op)
48                     (component (eql (find-system :language-extension.pattern-specializer-test))))
49   (funcall (read-from-string "pattern-specializer.test:run-tests")))