1 ;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*-
3 #.(unless (or #+asdf3.1 (version<= "3.1" (asdf-version)))
4 (error "You need ASDF >= 3.1 to load this system correctly."))
7 :description "Compile-time configuration for IOLib."
8 :author "Stelian Ionescu <sionescu@cddr.org>"
10 :version (:read-file-form "version.sexp")
11 :defsystem-depends-on (:iolib.asdf)
12 :around-compile "iolib/asdf:compile-wrapper"
17 (:file "requires" :depends-on ("pkgdcl"))))
19 (defsystem :iolib/common-lisp
20 :description "Slightly modified Common Lisp."
21 :author "Stelian Ionescu <sionescu@cddr.org>"
23 :version (:read-file-form "version.sexp")
24 :defsystem-depends-on (:iolib.asdf :iolib/conf)
25 :depends-on (:alexandria)
26 :around-compile "iolib/asdf:compile-wrapper"
28 :pathname "src/new-cl/"
31 #+scl (:file "scl-gray-streams")
32 (:file "pkgdcl" :depends-on ("conduits" #+scl "scl-gray-streams")
34 (compile-op :before (o c)
35 (symbol-call :iolib/conf '#:load-gray-streams))
37 (load-op :before (o c)
38 (symbol-call :iolib/conf '#:load-gray-streams))
40 (load-source-op :before (o c)
41 (symbol-call :iolib/conf '#:load-gray-streams)))
43 :depends-on ("pkgdcl" #+scl "scl-gray-streams"))
44 (:file "definitions" :depends-on ("pkgdcl"))
45 (:file "types" :depends-on ("pkgdcl"))))
47 (defsystem :iolib/base
48 :description "Base IOlib package, used instead of CL."
49 :author "Stelian Ionescu <sionescu@cddr.org>"
51 :version (:read-file-form "version.sexp")
52 :defsystem-depends-on (:iolib.asdf :iolib/conf)
53 :depends-on (:iolib/common-lisp :alexandria :split-sequence)
54 :around-compile "iolib/asdf:compile-wrapper"
59 (:file "return-star" :depends-on ("pkgdcl"))
60 (:file "types" :depends-on ("pkgdcl" "return-star"))
61 (:file "debug" :depends-on ("pkgdcl" "return-star"))
62 (:file "conditions" :depends-on ("pkgdcl" "return-star"))
63 (:file "defalias" :depends-on ("pkgdcl" "return-star"))
64 (:file "deffoldable" :depends-on ("pkgdcl" "return-star"))
65 (:file "defobsolete" :depends-on ("pkgdcl" "return-star"))
66 (:file "reader" :depends-on ("pkgdcl" "return-star" "conditions"))
67 (:file "sequence" :depends-on ("pkgdcl" "return-star"))
68 (:file "matching" :depends-on ("pkgdcl" "return-star"))
69 (:file "time" :depends-on ("pkgdcl" "return-star"))
70 (:file "dynamic-buffer" :depends-on ("pkgdcl" "return-star" "sequence"))))
72 (defsystem :iolib/grovel
73 :description "The CFFI Groveller"
74 :author "Dan Knapp <dankna@accela.net>"
75 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
77 :version (:read-file-form "version.sexp")
78 :defsystem-depends-on (:iolib.asdf :iolib/conf)
79 :depends-on (:iolib.asdf :iolib/base :iolib/conf
80 :alexandria :split-sequence #+allegro (:require "osi") :cffi :uiop)
81 :around-compile "iolib/asdf:compile-wrapper"
83 :pathname "src/grovel/"
86 (:static-file "grovel-common.h")
91 (defsystem :iolib/syscalls
92 :description "Syscalls and foreign types."
93 :author "Stelian Ionescu <sionescu@cddr.org>"
95 :version (:read-file-form "version.sexp")
96 :defsystem-depends-on (:iolib.asdf :iolib/conf :iolib/grovel)
97 :depends-on (:trivial-features :cffi :iolib/base :iolib/grovel)
98 :around-compile "iolib/asdf:compile-wrapper"
100 :pathname "src/syscalls/"
104 (:file "syscall-path-strings" :pathname "unix-syscall-path-strings")
105 ;; Platform-specific files
106 (:iolib-grovel-file "ffi-types" :pathname #+unix "ffi-types-unix")
108 (:file "os-conditions" :pathname #+unix "os-conditions-unix")
109 (:file "designators")
111 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix"))
114 (defsystem :iolib/multiplex
115 :description "I/O multiplexing library."
116 :author "Stelian Ionescu <sionescu@cddr.org>"
118 :version (:read-file-form "version.sexp")
119 :defsystem-depends-on (:iolib.asdf :iolib/conf)
120 :depends-on (:iolib/base :iolib/syscalls :cffi)
121 :around-compile "iolib/asdf:compile-wrapper"
123 :pathname "src/multiplex/"
128 (:file "utils" :depends-on ("pkgdcl"))
129 (:file "timers" :depends-on ("pkgdcl"))
130 (:file "queue" :depends-on ("pkgdcl"))
131 (:file "scheduler" :depends-on ("pkgdcl" "timers" "queue"))
134 (:file "fd-entry" :depends-on ("pkgdcl" "timers"))
135 (:file "multiplexer" :depends-on ("pkgdcl" "utils" "fd-entry"))
136 (:file "event-loop" :depends-on ("pkgdcl" "timers" "queue" "scheduler"
137 "fd-entry" "multiplexer"))
140 (:file "fd-wait" :depends-on ("pkgdcl" "utils"))
143 (:file "backend-select"
144 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
146 (:file "backend-epoll"
147 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
149 (:file "backend-kqueue"
150 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
152 :depends-on ("pkgdcl" "multiplexer" "backend-select"
153 #+linux "backend-epoll" #+bsd "backend-kqueue"))))
155 (defsystem :iolib/streams
156 :description "Gray streams."
157 :author "Stelian Ionescu <sionescu@cddr.org>"
159 :version (:read-file-form "version.sexp")
160 :defsystem-depends-on (:iolib.asdf :iolib/conf)
161 :depends-on (:iolib/base :iolib/multiplex :cffi)
162 :around-compile "iolib/asdf:compile-wrapper"
164 :pathname "src/streams/gray/"
167 (:file "classes" :depends-on ("pkgdcl"))
168 (:file "conditions" :depends-on ("pkgdcl"))
169 (:file "buffer" :depends-on ("pkgdcl" "classes"))
170 (:file "fd-mixin" :depends-on ("pkgdcl" "classes"))
172 :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"))
173 (:file "gray-stream-methods"
174 :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"
177 (defsystem :iolib/zstreams
178 :description "Zeta streams."
179 :author "Stelian Ionescu <sionescu@cddr.org>"
181 :version (:read-file-form "version.sexp")
182 :defsystem-depends-on (:iolib.asdf)
183 :depends-on (:iolib/base :iolib/syscalls :iolib/pathnames :cffi :bordeaux-threads)
184 :around-compile "iolib.asdf:compile-wrapper"
186 :pathname "src/streams/zeta/"
189 (:file "types" :depends-on ("pkgdcl"))
190 (:file "conditions" :depends-on ("pkgdcl"))
192 ;; Platform-specific files
193 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix"
194 :depends-on ("pkgdcl" "conditions"))
196 ;; Device interface definition
197 (:file "device" :depends-on ("pkgdcl" "types"))
200 (:file "iobuf" :depends-on ("pkgdcl" "types"))
203 (:file "stream" :depends-on ("pkgdcl" "types" "conditions" "device" "iobuf"))
206 (:file "file" :pathname #+unix "file-unix"
207 :depends-on ("pkgdcl" "types" "conditions" "ffi-functions" "device" "stream"))))
209 (defsystem :iolib/sockets
210 :description "Socket library."
211 :author "Stelian Ionescu <sionescu@cddr.org>"
213 :version (:read-file-form "version.sexp")
214 :defsystem-depends-on (:iolib.asdf :iolib/conf :iolib/grovel)
215 :depends-on (:iolib/base :iolib/syscalls :iolib/streams
216 :babel :cffi :iolib/grovel :bordeaux-threads
218 :around-compile "iolib/asdf:compile-wrapper"
220 :pathname "src/sockets/"
223 (:iolib-grovel-file "grovel" :depends-on ("pkgdcl"))
224 (:file "conditions" :depends-on ("pkgdcl" "grovel"))
225 (:file "bsd" :depends-on ("pkgdcl" "grovel" "conditions"))
226 (:file "common" :depends-on ("pkgdcl" "grovel" "bsd"))
227 (:file "config" :depends-on ("pkgdcl" "grovel" "bsd"))
229 (:file "iface" :depends-on ("pkgdcl" "grovel" "bsd" "common"))
231 (:file "address" :depends-on ("pkgdcl" "common"))
232 (:file "address-predicates" :depends-on ("pkgdcl" "common" "address"))
233 (:file "address-arithmetic" :depends-on ("pkgdcl" "common" "address" "address-predicates"))
235 (:file "base-sockets" :depends-on ("pkgdcl" "bsd" "common" "config"))
236 (:file "socket-options"
237 :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config" "base-sockets"))
239 ;; Local file configuration (/etc/hosts etc...)
240 (:file "etc-files" :pathname "namedb/etc-files"
241 :depends-on ("pkgdcl"))
242 (:file "file-monitor" :pathname "namedb/file-monitor"
243 :depends-on ("pkgdcl"))
244 (:file "protocols" :pathname "namedb/protocols"
245 :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
246 (:file "services" :pathname "namedb/services"
247 :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
248 (:file "hosts" :pathname "namedb/hosts"
249 :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
251 (:file "socket-methods"
252 :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config"
253 "address" "address-predicates" "base-sockets" "socket-options"
254 "protocols" "services"))
256 :depends-on ("pkgdcl" "grovel" "common" "config" "address" "address-predicates"
257 "base-sockets" "socket-options" "services" "socket-methods"))
260 (:file "dns-common" :pathname "dns/common"
261 :depends-on ("pkgdcl" "common"))
262 (:file "nameservers" :pathname "dns/nameservers"
263 :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
264 (:file "message":pathname "dns/message"
265 :depends-on ("pkgdcl" "common" "dns-common"))
266 (:file "query" :pathname "dns/query"
267 :depends-on ("pkgdcl" "conditions" "address" "address-predicates"
268 "socket-options" "socket-methods" "make-socket" "dns-common"
269 "nameservers" "message"))
270 (:file "dns-conditions" :pathname "dns/conditions"
271 :depends-on ("pkgdcl"))
272 (:file "lookup" :pathname "dns/lookup"
273 :depends-on ("pkgdcl" "address" "address-predicates" "file-monitor" "hosts"
274 "nameservers" "message" "query" "dns-conditions"))))
276 (defsystem :iolib/trivial-sockets
277 :description "Trivial-Sockets compatibility layer."
278 :author "Dan Barlow <dan@telent.net>"
279 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
281 :version (:read-file-form "version.sexp")
282 :defsystem-depends-on (:iolib.asdf :iolib/conf)
283 :depends-on (:iolib/base :iolib/sockets)
284 :around-compile "iolib/asdf:compile-wrapper"
286 :pathname "src/sockets/"
288 ((:file "trivial-sockets")))
290 (defsystem :iolib/pathnames
291 :description "New pathnames."
292 :author "Stelian Ionescu <sionescu@cddr.org>"
294 :version (:read-file-form "version.sexp")
295 :defsystem-depends-on (:iolib.asdf :iolib/conf)
296 :depends-on (:iolib/base :iolib/syscalls)
297 :around-compile "iolib/asdf:compile-wrapper"
299 :pathname "src/pathnames/"
303 (:file "file-path-os" :pathname #+unix "file-path-unix"))
307 :description "OS interface."
308 :author "Stelian Ionescu <sionescu@cddr.org>"
310 :version (:read-file-form "version.sexp")
311 :defsystem-depends-on (:iolib.asdf :iolib/conf :iolib/grovel)
312 :depends-on (:iolib/base :iolib/grovel :iolib/syscalls
313 :iolib/streams :iolib/pathnames)
314 :around-compile "iolib/asdf:compile-wrapper"
319 (:file "os" :pathname #+unix "os-unix")
320 (:iolib-grovel-file "ffi-types" :pathname #+unix "ffi-types-unix")
321 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix")
322 (:file "create-process" :pathname #+unix "create-process-unix"))
326 :description "I/O library."
327 :author "Stelian Ionescu <sionescu@cddr.org>"
329 :version (:read-file-form "version.sexp")
330 :defsystem-depends-on (:iolib.asdf :iolib/conf)
331 :depends-on (:iolib/base :iolib/multiplex :iolib/streams :iolib/sockets)
332 :around-compile "iolib/asdf:compile-wrapper"
334 :pathname "src/iolib/"
335 :components ((:file "pkgdcl")))
337 (defmethod perform ((o test-op)
338 (c (eql (find-system :iolib))))
339 (load-system :iolib/tests)
340 (symbol-call :5am :run! :iolib))
342 (defsystem :iolib/tests
343 :description "IOLib test suite."
344 :author "Luis Oliveira <loliveira@common-lisp.net>"
345 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
347 :version (:read-file-form "version.sexp")
348 :defsystem-depends-on (:iolib/base)
349 :depends-on (:fiveam :iolib :iolib/pathnames)
350 :around-compile "iolib/asdf:compile-wrapper"
355 (:file "defsuites" :depends-on ("pkgdcl"))
356 (:file "base" :depends-on ("pkgdcl" "defsuites"))
357 (:file "file-paths-os" :depends-on ("pkgdcl" "defsuites")
358 :pathname #+unix "file-paths-unix")
359 (:file "events" :depends-on ("pkgdcl" "defsuites"))
360 (:file "streams" :depends-on ("pkgdcl" "defsuites"))
361 (:file "sockets" :depends-on ("pkgdcl" "defsuites"))))
363 (defsystem :iolib/examples
364 :description "Examples for IOLib tutorial at http://pages.cs.wisc.edu/~psilord/blog/data/iolib-tutorial/tutorial.html"
365 :author "Peter Keller <psilord@cs.wisc.edu>"
366 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
368 :version (:read-file-form "version.sexp")
369 :defsystem-depends-on (:iolib/base)
370 :depends-on (:iolib :bordeaux-threads)
371 :around-compile "iolib/asdf:compile-wrapper"
372 :pathname "examples/"
373 :components ((:file "package")
374 (:file "ex1-client" :depends-on ("package"))
375 (:file "ex2-client" :depends-on ("package"))
376 (:file "ex3-client" :depends-on ("package"))
377 (:file "ex4-client" :depends-on ("package"))
378 (:file "ex5a-client" :depends-on ("package"))
379 (:file "ex5b-client" :depends-on ("package"))
380 (:file "ex1-server" :depends-on ("package"))
381 (:file "ex2-server" :depends-on ("package"))
382 (:file "ex3-server" :depends-on ("package"))
383 (:file "ex4-server" :depends-on ("package"))
384 (:file "ex5-server" :depends-on ("package"))
385 (:file "ex6-server" :depends-on ("package"))
386 (:file "ex7-buffer" :depends-on ("package"))
387 (:file "ex7-server" :depends-on ("package" "ex7-buffer"))
388 (:file "ex8-buffer" :depends-on ("package"))
389 (:file "ex8-server" :depends-on ("package" "ex8-buffer"))))