projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.9.4.83:
[sbcl.git]
/
src
/
code
/
toplevel.lisp
diff --git
a/src/code/toplevel.lisp
b/src/code/toplevel.lisp
index
f77abc1
..
830c1c2
100644
(file)
--- a/
src/code/toplevel.lisp
+++ b/
src/code/toplevel.lisp
@@
-25,9
+25,7
@@
;;; specials initialized by !COLD-INIT
;;; FIXME: These could be converted to DEFVARs.
;;; specials initialized by !COLD-INIT
;;; FIXME: These could be converted to DEFVARs.
-(declaim (special *gc-inhibit* *need-to-collect-garbage*
- *after-gc-hooks*
- #!+(or x86 x86-64) *pseudo-atomic-atomic*
+(declaim (special #!+(or x86 x86-64) *pseudo-atomic-atomic*
#!+(or x86 x86-64) *pseudo-atomic-interrupted*
sb!unix::*interrupts-enabled*
sb!unix::*interrupt-pending*
#!+(or x86 x86-64) *pseudo-atomic-interrupted*
sb!unix::*interrupts-enabled*
sb!unix::*interrupt-pending*
@@
-271,16
+269,17
@@
steppers to maintain contextual information.")
"Evaluate FORM, returning whatever it returns and adjusting ***, **, *,
+++, ++, +, ///, //, /, and -."
(setf - form)
"Evaluate FORM, returning whatever it returns and adjusting ***, **, *,
+++, ++, +, ///, //, /, and -."
(setf - form)
- (let ((results (multiple-value-list (eval form))))
- (setf /// //
- // /
- / results
- *** **
- ** *
- * (car results)))
- (setf +++ ++
- ++ +
- + -)
+ (unwind-protect
+ (let ((results (multiple-value-list (eval form))))
+ (setf /// //
+ // /
+ / results
+ *** **
+ ** *
+ * (car results)))
+ (setf +++ ++
+ ++ +
+ + -))
(unless (boundp '*)
;; The bogon returned an unbound marker.
;; FIXME: It would be safer to check every one of the values in RESULTS,
(unless (boundp '*)
;; The bogon returned an unbound marker.
;; FIXME: It would be safer to check every one of the values in RESULTS,
@@
-297,8
+296,10
@@
steppers to maintain contextual information.")
*error-output*
*query-io*
*standard-output*
*error-output*
*query-io*
*standard-output*
- *trace-output*))
- (finish-output (symbol-value name)))
+ *trace-output*
+ *terminal-io*))
+ ;; FINISH-OUTPUT may block more easily than FORCE-OUTPUT
+ (force-output (symbol-value name)))
(values))
(defun process-init-file (truename)
(values))
(defun process-init-file (truename)
@@
-585,6
+586,7
@@
steppers to maintain contextual information.")
(scrub-control-stack)
(sb!thread::get-foreground)
(unless noprint
(scrub-control-stack)
(sb!thread::get-foreground)
(unless noprint
+ (flush-standard-output-streams)
(funcall *repl-prompt-fun* *standard-output*)
;; (Should *REPL-PROMPT-FUN* be responsible for doing its own
;; FORCE-OUTPUT? I can't imagine a valid reason for it not to
(funcall *repl-prompt-fun* *standard-output*)
;; (Should *REPL-PROMPT-FUN* be responsible for doing its own
;; FORCE-OUTPUT? I can't imagine a valid reason for it not to