anchor.diff:  
   
   (defun /help ()
  -  (command-message (format nil "~{~a~^, ~}" *commands-names*)))
  +  (command-message (format nil "~{~a~^, ~}" +commands-names+)))
   
   
   (defun /log (&optional (depth 15))
  
positive.code: (defun /uptime ()
    (multiple-value-bind
          (second minute hour date month year day-of-week dst-p tz)
        (values-list *uptime*)
      (declare (ignore dst-p))
      (command-message (format nil "Server online since ~2,'0d:~2,'0d:~2,'0d of ~a, ~2,'0d/~2,'0d/~d (GMT~@d)"
                               hour
                               minute
                               second
                               (nth day-of-week *day-names*)
                               month
                               date
                               year
  
negative.code: 
  (in-package :lisp-chat-server)
  
  ;; constants
  (defconstant +commands-names+ '("/users" "/help" "/log" "/quit" "/uptime"))
  (defconstant +day-names+ '("Monday" "Tuesday" "Wednesday"
                              "Thursday" "Friday" "Saturday" "Sunday"))
  (defconstant +uptime+ (multiple-value-list (get-decoded-time)))
  
  ;; global vars
  (defparameter *clients* nil)
  (defparameter *messages-stack* nil)
  (defparameter *messages-log* nil)
  
  
  ;; thread control
  (defvar *message-semaphore* (sb-thread:make-semaphore :name "message semaphore"
                                                        :count 0))
  (defvar *client-mutex* (sb-thread:make-mutex :name "client list mutex"))
  
  
  (defstruct message
    from content time)
  
  (defstruct client
    name socket address)
  
  
  (defun socket-peer-address (socket)
  