-
Notifications
You must be signed in to change notification settings - Fork 30
/
teepeedee2.asd
134 lines (127 loc) · 5.1 KB
/
teepeedee2.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
(cl:defpackage #:teepeedee2.system
(:use #:cl))
(cl:in-package #:teepeedee2.system)
(eval-when (:compile-toplevel :load-toplevel :execute)
(asdf:operate 'asdf:load-op 'cl-fad))
#+tpd2-debug
(progn
(pushnew :tpd2-debug *features*)
(declaim (optimize debug safety (speed 1)))
(pushnew :tpd2-debug-assert *features*))
(asdf:defsystem :teepeedee2
:name "teepeedee2"
:author "John Fremlin <[email protected]>"
:description "Multiprotocol fast networking framework"
:version "1.1"
:components (
(:module :src
:components (
(:file "packages")
(:module :lib
:depends-on ("packages")
:components (
(:file "macros" :depends-on ("once-only" "one-liners"))
(:file "once-only")
(:file "one-liners")
(:file "utils" :depends-on ("macros" "byte-vector"))
(:file "superquote" :depends-on ("utils"))
(:file "strcat" :depends-on ("macros" "utils"))
(:file "my" :depends-on ("macros" "once-only" "strcat" "one-liners"))
(:file "byte-vector" :depends-on ("macros"))
(:file "callcc" :depends-on ("macros"))
(:file "quick-queue" :depends-on ("utils" "my"))
(:file "timeout" :depends-on ("quick-queue"))))
(:module :io
:depends-on (:lib)
:components (
(:file "socket")
(:file "recvbuf" :depends-on ("socket"))
(:file "sendbuf" :depends-on ("socket" "syscalls"))
(:file "posix-socket" :depends-on ("syscalls" "socket" "con"))
(:file "con" :depends-on ("sendbuf" "recvbuf"))
(:file "mux" :depends-on ("con"))
(:file "epoll" :depends-on ("syscalls" "mux"))
(:file "syscalls")
(:file "protocol" :depends-on ("socket" "con"))
(:file "repeater" :depends-on ("con" "protocol"))
(:file "openssl")
(:file "ssl" :depends-on ("con" "openssl"))
)
)
(:module :http
:depends-on (:lib :io)
:components (
(:file "encoding")
(:file "headers")
(:file "dispatcher" :depends-on ("servestate"))
(:file "servestate")
(:file "serve" :depends-on ("encoding" "headers" "dispatcher"))
(:file "request" :depends-on ("headers"))))
(:module :ml
:depends-on (:lib :io)
:components (
(:file "output")
(:file "object-to-ml" :depends-on ("output"))
(:file "define-dtd" :depends-on ("object-to-ml"))
(:file "css" :depends-on ("html"))
(:file "js" :depends-on ("html"))
(:file "html" :depends-on ("define-dtd"))
(:file "atom" :depends-on ("define-dtd"))
(:file "rss" :depends-on ("define-dtd"))))
(:module :datastore
:depends-on (:lib)
:components ((:file "datastore")))
(:module :webapp
:depends-on (:http :ml)
:components ((:file "page" :depends-on ("site"))
(:file "list-channel" :depends-on ("simple-channel"))
(:file "simple-channel" :depends-on ("channel"))
(:file "frame" :depends-on ("names" "list-channel" "simple-channel"))
(:file "names")
(:file "html-constants")
(:file "site" :depends-on ("html-constants"))
(:file "default-site" :depends-on ("site" "webapp" "js-library"))
(:file "js-library" :depends-on ("html-constants" "page"))
(:file "actions" :depends-on ("page" "html-constants" "frame" "site"))
(:file "channel" :depends-on ("page" "html-constants"))
(:file "webapp" :depends-on ("actions"))
(:file "message-channel" :depends-on ("channel"))))
(:module :game
:depends-on (:webapp :ml )
:components (
(:file "generic")
(:file "framework" :depends-on ("generic"))
(:file "controllers" :depends-on ("framework"))
(:file "card")
(:file "coins" :depends-on ("framework"))
(:file "unassigned-controller" :depends-on ("controllers"))
(:file "web" :depends-on ("card" "controllers" "unassigned-controller"))
(:file "web-messages" :depends-on ("web"))))
(:module :small-games
:depends-on (:game)
:components (
(:file "nash-bargain")
(:file "prisoners-dilemma")
(:file "ultimatum")
(:file "roshambo")))
(:module :blog
:depends-on (:webapp :ml :datastore)
:components ((:file "entry")
(:file "feed" :depends-on ("blog"))
(:file "blog" :depends-on ("entry"))))
(:module :survey
:depends-on (:webapp :ml :datastore)
:components ((:file "survey")))
(:module :truc
:depends-on (:game)
:components ( (:file "truc") (:file "web" :depends-on ("truc"))
(:file "robots" :depends-on ("truc")))))))
:depends-on (
:trivial-garbage
:cl-cont
:cffi
:iterate
:alexandria
:cl-irregsexp
:trivial-backtrace
:parenscript))