# HG changeset patch # User Steve Losh # Date 1460239193 0 # Node ID 9d3d9514dbd8769c9780c99d189142c9b0efe40c # Parent 7d0cd39ee703d029e54bd1f9267240e6f06757ae Formatting diff -r 7d0cd39ee703 -r 9d3d9514dbd8 src/middleware/eval.lisp --- a/src/middleware/eval.lisp Sat Apr 09 21:45:42 2016 +0000 +++ b/src/middleware/eval.lisp Sat Apr 09 21:59:53 2016 +0000 @@ -73,7 +73,7 @@ "Evaluate each form in `forms` and shuttle back the responses. `forms` can be a string, in which case the forms will be read out of it, or - a ready-to-go list for actual forms. + a ready-to-go list of actual forms. Other middlewares (e.g. `load-file`) can use this function to evaluate things and send the results back to the user. diff -r 7d0cd39ee703 -r 9d3d9514dbd8 src/middleware/macroexpand.lisp --- a/src/middleware/macroexpand.lisp Sat Apr 09 21:45:42 2016 +0000 +++ b/src/middleware/macroexpand.lisp Sat Apr 09 21:59:53 2016 +0000 @@ -1,6 +1,7 @@ (in-package #:nrepl) (define-middleware wrap-macroexpand "macroexpand" message + ;; TODO: handle mangled input (let ((form (read-from-string (fset:lookup message "form")))) (respond message (make-map diff -r 7d0cd39ee703 -r 9d3d9514dbd8 src/middleware/session.lisp --- a/src/middleware/session.lisp Sat Apr 09 21:45:42 2016 +0000 +++ b/src/middleware/session.lisp Sat Apr 09 21:59:53 2016 +0000 @@ -23,18 +23,21 @@ (hash-keys *sessions*)) -(defun wrap-session (h) +(defun wrap-session (handler) "Handle wrapping incoming messages in sessions. - If a message contains a session key, look up that session in the list of - registered sessions and bind it into *session*. + If a message contains a session key, look up that session in the list of + registered sessions and bind it into *session*. - If a message comes in without a session id, create a new session for it and - patch the session id into the message before continuing on down the - middleware stack. Also binds the session into *session*. Note that this - will NOT register the session into the main map of sessions. + If a message comes in without a session id, create a new session for it and + patch the session id into the message before continuing on down the + middleware stack. Also binds the session into *session*. - " + Note that this implicit creation will NOT register the session into the main + map of sessions. To register the session so it'll stick around the client + needs to do a `clone` op. + + " (lambda (message) (let* ((session-id (fset:lookup message "session")) (session (if session-id @@ -42,7 +45,7 @@ (create-session))) (session-id (or session-id (random-uuid))) (*session* session)) - (funcall h (fset:with message "session" session-id))))) + (funcall handler (fset:with message "session" session-id))))) (define-middleware wrap-session-ls "ls-sessions" message (respond message