-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlisp.lisp
More file actions
30 lines (21 loc) · 741 Bytes
/
lisp.lisp
File metadata and controls
30 lines (21 loc) · 741 Bytes
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
;; (c) www.neverblued.info
;; LLGPL -> http://opensource.franz.com/preamble.html
(in-package #:wsf)
(defgeneric server-system (server))
(defgeneric server-package (server))
(defmacro with-server-package (server &body body)
`(let ((*package* (server-package ,server)))
,@body))
(defclass lisp-server ()
((system :initarg :system
:accessor server-system
:initform (error "Lisp server should recieve a :SYSTEM initarg."))
(package :initform *package*
:reader server-package)))
(defmethod respond :around ((this lisp-server) request)
(with-server-package this
(call-next-method)))
(defun reload-system ()
(awhen *server*
(awith (server-system it)
(asdf:load-system it))))