-
Notifications
You must be signed in to change notification settings - Fork 0
/
mon.asd
144 lines (130 loc) · 4.18 KB
/
mon.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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
;;; -*- mode: lisp -*-
;;; :FILE mon-systems/mon.asd
;;; ==============================
;; ,----
;; | "I am sick to death of knee-jerk anti-LOOPism and I am beginning to
;; | irrationally regard it as a plot to disable me as a programmer by
;; | excommunicating my useful tools."
;; |
;; | :SOURCE "Knee-jerk Anti-LOOPism and other E-mail Phenomena" p 17
;; `---- :SEE http://ccs.mit.edu/papers/CCSWP150.html
;;; ==============================
;;; :LOGICAL-PATHNAMES
;;; ==============================
;;;
;;; (translate-logical-pathname "MON:MON-SYSTEMS;")
;;;
;;; (push (translate-logical-pathname "MON:MON-SYSTEMS;") asdf:*central-registry*)
;;;
;;; Finding current fasls:
;;; (logical-pathname-translations "FASL")
;;;
;;; (translate-logical-pathname "FASL:MON-SYSTEMS;")
;;;
;;; ==============================
;;;
;;; :NOTE While debugging per file:
;;;
;;; (declaim (optimize (debug 3)))
;;;
;;; (setf sb-debug:*show-entry-point-details* t)
;;;
;;; (setf *break-on-signals* t)
;;;
;;; Or, (sb-ext:restrict-compiler-policy 'debug 3)
;;;
;;; ==============================
;;;
;;; To remove the compile fasls do:
;;;
;;; (asdf:clear-system :mon)
;;;
;;; ==============================
;;;
;;; (ql:quickload :mon :verbose t :explain t)
;;;
;;; ==============================
;;;
;;; (let (des) (do-external-symbols (i :mon des) (push i des)))
;;;
;;; ==============================
(defpackage #:mon-build-system (:use :common-lisp :asdf))
(in-package #:mon-build-system)
(defvar *author-maintainer-contact* (format nil "MON KEY -- ~A"
(map 'string
'code-char
#(109 111 110 107 101 121 64 115 97 110 100 112
102 114 97 109 105 110 103 46 99 111 109))))
(defsystem :mon
:name "mon"
:author #.*author-maintainer-contact*
:maintainer "MON KEY"
:license "MIT"
:description "MON agglomerated"
:version "1.0.0"
:depends-on (:split-sequence
:string-case
:alexandria
:cl-ppcre
:flexi-streams
:ironclad
:salza2
:chipz
:closer-mop
:cffi
:osicat
:cl-fad ;; :NOTE This is likely to be deprecated in favor of osicat which provides most of same.
:local-time
)
:serial t
:components
((:file "package" )
(:file "specials" )
(:file "types" )
(:file "macros" )
(:file "file-io" )
(:file "environ" )
(:file "char-numeric" ) ; :BEFORE chars.lisp!
(:file "chars" )
(:file "seqs" )
(:file "class-utils" )
(:file "numbers" )
(:file "plist" )
(:file "alist" )
(:file "hash" )
(:file "strings" )
(:file "introspect" ) ; :AFTER strings.lisp seqs.lisp
(:file "bit-twiddle" )
(:file "arrays" )
(:file "file-dir" )
(:file "io" )
(:file "chronos" )
(:file "regexp" )
(:file "format" )
(:file "compose" )
(:file "conditions" )
(:file "class-doc" )
))
;; This used to work... is something funny with latest SBCL 1.0.47.1?
;; (asdf:perform (asdf:
(defmethod asdf:perform :after ((op asdf:load-op) (system (eql (asdf:find-system :mon))))
(pushnew :mon cl:*features*)
(let* ((chk-cons-file
#-IS-MON #.((probe-file (merge-pathnames (make-pathname :name "loadtime-bind")
(load-time-value *default-pathname-defaults*))))
#+IS-MON #.(probe-file (translate-logical-pathname "MON:MON-SYSTEMS;loadtime-bind")))
(chk-lb-file
(and chk-cons-file
(probe-file (merge-pathnames chk-cons-file (make-pathname :type "lisp"))))))
(and chk-lb-file
;; *load-print* *load-verbose*
(load chk-lb-file :verbose t :print t)))
(asdf:operate 'asdf:load-op 'mon-test))
;;; ==============================
;; Local Variables:
;; indent-tabs-mode: nil
;; show-trailing-whitespace: t
;; mode: lisp-interaction
;; End:
;;; ==============================
;;; EOF