[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: The need for speed.



The following changes to AKCL tell the user what to do to
get (something like) the intermediate kind of speed/safety 
that Jeff Dalton asks for.

  Richard Harris
============================================================
/* Changes to c/funlink.c */

/* add this function */
siLusing_fast_links_p()
{vs_base[0]= (Rset==0)?Cnil:Ct;
 vs_top= vs_base+1;}

/* inside the body of init_links() */
	make_si_function("USING-FAST-LINKS-P",siLusing_fast_links_p);
============================================================
;;; Changes to lsp/top.lsp
(defvar *enable-fast-link-warning* nil)

;in the let of break-level:
;	 (*enable-fast-link-warning* be)

(defun maybe-print-fast-link-message ()
  (when (and *enable-fast-link-warning*
	     (si:using-fast-links-p))
    (format *debug-io* 
"AKCL is using fast linking when calling compiled lisp functions.  
This is fast, but leaves very little on the stack for debugging
(in particular, you may be given a misleading indication of the 
caller of the errant function).  For a more informative backtrace,
turn fast linking off, with (use-fast-links nil), exit the debugger,
and make the error happen again.~%")
    (setq *enable-fast-link-warning* nil)))

;After the first line of simple-backtrace and backtrace:
;  (maybe-print-fast-link-message)
============================================================