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

Re: The need for speed.



In AKCL putting things on the IHS is controlled mainly at run time.

Even if code is compiled with safety 0 you can see a full back trace
if AT RUN TIME you do (use-fast-links nil).  This causes all functions
to be put on the invocation history (except for some system functions)
Same thing at safety 2, but there things like 'car' are function
calls, and check their args.

Personally I never use safety 3.


    Also, the code for recording argument lists for use when debugging
    compiled code doesn't work in 1-505.  The information is there

It is working in the about to be released version.  Also the source level
display debugging (dbl) is working much better.

(defun fac1 (n)
  (cond ((eql n 1) 1)
	(t (* n (fac1 (- n 1))))))

compiled at safety 0:

>(fac1 1000)

;;Interrupt delayed.

Correctable error: Console interrupt.
Signalled by FAC1.
If continued: Type :r to resume execution, or :q to quit to top level.
Broken at SYSTEM:TERMINAL-INTERRUPT.  Type :H for Help.
>>:bt 8
#0   FAC1 {n=1000,loc1=999,loc2=998,loc3=997,loc4=996,loc5=995,loc6=994,loc7=993,loc8=992,...} [ihs=6]
#1   EVAL {loc0=nil,loc1=nil,loc2=nil,loc3=#<compiled-function fac1>} [ihs=5]
#2   TOP-LEVEL {} [ihs=4]
NIL

>(use-fast-links nil)
NIL

>(fac1 1000)

;;Interrupt delayed.

Correctable error: Console interrupt.
Signalled by FAC1.
If continued: Type :r to resume execution, or :q to quit to top level.
Broken at SYSTEM::BREAK-LEVEL.  Type :H for Help.
>>:bt 5
#0   FAC1 {n=285,loc1=284} [ihs=721]
#1   FAC1 {n=286} [ihs=720]
#2   FAC1 {n=287} [ihs=719]
#3   FAC1 {n=288} [ihs=718]
#4   FAC1 {n=289} [ihs=717]
#5   FAC1 {n=290} [ihs=716]