chicken-users
[Top][All Lists]
Advanced

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

[Chicken-users] lexical environment inspection for csi


From: Felix
Subject: [Chicken-users] lexical environment inspection for csi
Date: Fri, 16 Jul 2010 22:35:49 +0200 (CEST)

Hello!


The "experimental" branch now features some basic commands for
selecting call-trace entries in interpreted code on error and
inspecting the lexical environment, if available:

#;1> (define (fac n)
       (if (zero? n) 'a (* n (fac (sub1 n)))))
#;2> (fac 3)

Error: (*) bad argument type: a

        Call history:

        <eval>    [fac] (sub1 n)
        <eval>    [fac] (zero? n)
        <eval>    [fac] (* n (fac (sub1 n)))
        <eval>    [fac] (fac (sub1 n))
        <eval>    [fac] (sub1 n)
        <eval>    [fac] (zero? n)
        <eval>    [fac] (* n (fac (sub1 n)))
        <eval>    [fac] (fac (sub1 n))
        <eval>    [fac] (sub1 n)
        <eval>    [fac] (zero? n)       <--
#;2> ,c
 9:[]   <eval>    [fac] (sub1 n)
 8:[]   <eval>    [fac] (zero? n)
 7:[]   <eval>    [fac] (* n (fac (sub1 n)))
 6:[]   <eval>    [fac] (fac (sub1 n))
 5:[]   <eval>    [fac] (sub1 n)
 4:[]   <eval>    [fac] (zero? n)
 3:[]   <eval>    [fac] (* n (fac (sub1 n)))
 2:[]   <eval>    [fac] (fac (sub1 n))
 1:[]   <eval>    [fac] (sub1 n)
*0:[]   <eval>    [fac] (zero? n)
  ---
  n56:    0
#;2> ,f 2
 9:[]   <eval>    [fac] (sub1 n)
 8:[]   <eval>    [fac] (zero? n)
 7:[]   <eval>    [fac] (* n (fac (sub1 n)))
 6:[]   <eval>    [fac] (fac (sub1 n))
 5:[]   <eval>    [fac] (sub1 n)
 4:[]   <eval>    [fac] (zero? n)
 3:[]   <eval>    [fac] (* n (fac (sub1 n)))
*2:[]   <eval>    [fac] (fac (sub1 n))
  ---
  n56:    1
 1:[]   <eval>    [fac] (sub1 n)
 0:[]   <eval>    [fac] (zero? n)
#;2> ,g n56
1

Not tested enough and documentation sucks (as usual).
Feedback welcome.


cheers,
felix



reply via email to

[Prev in Thread] Current Thread [Next in Thread]