values of the arguments, even in the presence of assignment.
** functions [N]SUBST*, LAST, NRECONC, [N]SUBLIS may return any
object.
+ ** DISASSEMBLE works with closures and funcallable instances.
planned incompatible changes in 0.8.x:
* (not done yet, but planned:) When the profiling interface settles
(declare (type compiled-function fun))
(sb!kernel:%simple-fun-next fun))
-(defun fun-address (function)
- (declare (type compiled-function function))
- (- (sb!kernel:get-lisp-obj-address function) sb!vm:fun-pointer-lowtag))
+(defun fun-address (fun)
+ (declare (type compiled-function fun))
+ (ecase (sb!kernel:widetag-of fun)
+ (#.sb!vm:simple-fun-header-widetag
+ (- (sb!kernel:get-lisp-obj-address fun) sb!vm:fun-pointer-lowtag))
+ (#.sb!vm:closure-header-widetag
+ (fun-address (sb!kernel:%closure-fun fun)))
+ (#.sb!vm:funcallable-instance-header-widetag
+ (fun-address (sb!kernel:funcallable-instance-fun fun)))))
;;; the offset of FUNCTION from the start of its code-component's
;;; instruction area
;;; 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.0.48"
+"0.8.0.49"