-
Notifications
You must be signed in to change notification settings - Fork 2
/
specializable.asd
49 lines (45 loc) · 2.12 KB
/
specializable.asd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
;;;; specializable.asd --- System definition for the specializable system.
;;;;
;;;; Copyright (C) 2014, 2015, 2016, 2017 Christophe Rhodes, Jan Moringen
;;;;
;;;; Author: Christophe Rhodes <[email protected]>
;;;; Author: Jan Moringen <[email protected]>
(defsystem "specializable"
:author "Christophe Rhodes <[email protected]>"
:author "Jan Moringen <[email protected]>"
:license "TODO"
:description "Generalized specializers - SBCL only"
:components ((:module "src"
:serial t
:components ((:file "package")
(:file "protocol")
(:file "syntax")
(:file "specializable"))))
:in-order-to ((test-op (test-op "specializable/test")))
:perform (load-op :before (operation component)
(let ((required-version '(1 3 16)))
(flet ((lose ()
(error "This system only works on SBCL, version ~{~D~^.~} or newer"
required-version)))
#-sbcl (lose)
#+sbcl
(let ((version-assert (find-symbol "ASSERT-VERSION->=" :sb-ext)))
(if version-assert
(apply version-assert required-version)
(lose)))))))
(defsystem "specializable/test"
:author "Jan Moringen <[email protected]>"
:author "Christophe Rhodes <[email protected]>"
:license "TODO"
:description "Unit tests of the specializable system"
:depends-on ("fiveam"
"specializable")
:components ((:module "test"
:serial t
:components ((:file "package")
(:file "util")
(:file "syntax")
(:file "specializable")
(:file "examples"))))
:perform (test-op (operation component)
(uiop:symbol-call '#:specializable-test '#:run-tests)))