mirror of
git://git.code.sf.net/p/sbcl/sbcl
synced 2026-09-10 07:26:40 -04:00
0.8.14.14: Two commits for the price of one
* Clean up indentation of IR1-CONVERT
* NEWS entry about single stepping.
This commit is contained in:
parent
8a8a892280
commit
fb92835b1d
3
CREDITS
3
CREDITS
|
|
@ -675,7 +675,8 @@ Rudi Schlatte:
|
|||
Nikodemus Siivola:
|
||||
He provided build fixes, in particular to tame the SunOS toolchain,
|
||||
implemented package locks, ported the linkage-table code from CMUCL,
|
||||
and has fixed many (stream-related and other) bugs besides.
|
||||
reimplemented STEP, and has fixed many (stream-related and other) bugs
|
||||
besides.
|
||||
|
||||
Juho Snellman:
|
||||
He provided several performance enhancements, including a better hash
|
||||
|
|
|
|||
2
NEWS
2
NEWS
|
|
@ -3,6 +3,8 @@ changes in sbcl-0.8.15 relative to sbcl-0.8.14:
|
|||
SB-INT:*AFTER-SAVE-INITIALIZATIONS* have been renamed
|
||||
SB-EXT:*SAVE-HOOKS* and SB-EXT:*INIT-HOOKS*, and are now
|
||||
part of the supported interface.
|
||||
* new feature: Single-stepping of code compiled with DEBUG 2 or higher
|
||||
and (> DEBUG (MAX SPACE SPEED)) is now possible.
|
||||
* new feature: saving cores with foreign code loaded is now
|
||||
supported on x86/FreeBSD, x86/Linux, and sparc/SunOS. (based
|
||||
on Timothy Moore's work for CMUCL)
|
||||
|
|
|
|||
|
|
@ -478,50 +478,51 @@
|
|||
(ir1-error-bailout (start next result form)
|
||||
(let ((*current-path* (or (gethash form *source-paths*)
|
||||
(cons form *current-path*))))
|
||||
(if (step-form-p form)
|
||||
(ir1-convert-step start next result form)
|
||||
(if (atom form)
|
||||
(cond ((and (symbolp form) (not (keywordp form)))
|
||||
(ir1-convert-var start next result form))
|
||||
((leaf-p form)
|
||||
(reference-leaf start next result form))
|
||||
(t
|
||||
(reference-constant start next result form)))
|
||||
(let ((opname (car form)))
|
||||
(cond ((or (symbolp opname) (leaf-p opname))
|
||||
(let ((lexical-def (if (leaf-p opname)
|
||||
opname
|
||||
(lexenv-find opname funs))))
|
||||
(typecase lexical-def
|
||||
(null
|
||||
(ir1-convert-global-functoid start next result
|
||||
form))
|
||||
(functional
|
||||
(ir1-convert-local-combination start next result
|
||||
form
|
||||
lexical-def))
|
||||
(global-var
|
||||
(ir1-convert-srctran start next result
|
||||
lexical-def form))
|
||||
(t
|
||||
(aver (and (consp lexical-def)
|
||||
(eq (car lexical-def) 'macro)))
|
||||
(ir1-convert start next result
|
||||
(careful-expand-macro (cdr lexical-def)
|
||||
form))))))
|
||||
((or (atom opname) (not (eq (car opname) 'lambda)))
|
||||
(compiler-error "illegal function call"))
|
||||
(t
|
||||
;; implicitly (LAMBDA ..) because the LAMBDA
|
||||
;; expression is the CAR of an executed form
|
||||
(ir1-convert-combination start next result
|
||||
form
|
||||
(ir1-convert-lambda
|
||||
opname
|
||||
:debug-name (debug-namify
|
||||
"LAMBDA CAR "
|
||||
opname)
|
||||
:allow-debug-catch-tag t)))))))))
|
||||
(cond ((step-form-p form)
|
||||
(ir1-convert-step start next result form))
|
||||
((atom form)
|
||||
(cond ((and (symbolp form) (not (keywordp form)))
|
||||
(ir1-convert-var start next result form))
|
||||
((leaf-p form)
|
||||
(reference-leaf start next result form))
|
||||
(t
|
||||
(reference-constant start next result form))))
|
||||
(t
|
||||
(let ((opname (car form)))
|
||||
(cond ((or (symbolp opname) (leaf-p opname))
|
||||
(let ((lexical-def (if (leaf-p opname)
|
||||
opname
|
||||
(lexenv-find opname funs))))
|
||||
(typecase lexical-def
|
||||
(null
|
||||
(ir1-convert-global-functoid start next result
|
||||
form))
|
||||
(functional
|
||||
(ir1-convert-local-combination start next result
|
||||
form
|
||||
lexical-def))
|
||||
(global-var
|
||||
(ir1-convert-srctran start next result
|
||||
lexical-def form))
|
||||
(t
|
||||
(aver (and (consp lexical-def)
|
||||
(eq (car lexical-def) 'macro)))
|
||||
(ir1-convert start next result
|
||||
(careful-expand-macro (cdr lexical-def)
|
||||
form))))))
|
||||
((or (atom opname) (not (eq (car opname) 'lambda)))
|
||||
(compiler-error "illegal function call"))
|
||||
(t
|
||||
;; implicitly (LAMBDA ..) because the LAMBDA
|
||||
;; expression is the CAR of an executed form
|
||||
(ir1-convert-combination start next result
|
||||
form
|
||||
(ir1-convert-lambda
|
||||
opname
|
||||
:debug-name (debug-namify
|
||||
"LAMBDA CAR "
|
||||
opname)
|
||||
:allow-debug-catch-tag t)))))))))
|
||||
(values))
|
||||
|
||||
;; Generate a reference to a manifest constant, creating a new leaf
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
;;; checkins which aren't released. (And occasionally for internal
|
||||
;;; versions, especially for internal versions off the main CVS
|
||||
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
|
||||
"0.8.14.13"
|
||||
"0.8.14.14"
|
||||
|
|
|
|||
Loading…
Reference in a new issue