anchor.diff:                      *slime-evaluated* t)))
             (progn
               (mp:with-lock (*top-level-lock*)
  +              ;; needed to avoid unrecoverable BREAK on errors during READ (command line option "-qtpl")
  +              (when (stringp *top-level-form*)
  +                (handler-case (setf *top-level-form* (read-from-string *top-level-form*))
  +                  (error (err)
  +                    (princ err))))
                 (si::feed-top-level))
               (finish-output)
               (qsingle-shot 0 'start-read-thread))))
  
positive.code:     (let ((*debugger-hook* nil)
            (*tpl-level* -1))
        (%tpl))))
  
  (defun %tpl (&key ((:commands *tpl-commands*) tpl-commands)
                   ((:prompt-hook *tpl-prompt-hook*) *tpl-prompt-hook*)
  
negative.code:   (si::tpl-prompt)
    (unless (find-package :ecl-readline)
      (princ "> "))
    (let ((form (si::%tpl-read)))
      (mp:with-lock (*top-level-lock*)
        (setf *top-level-form* form)))
    (values))
  