Opened 9 years ago

Closed 9 years ago

#1195 closed defect (fixed)

,q in csi gives an error

Reported by: sjamaan Owned by: sjamaan
Priority: major Milestone: 5.0
Component: unknown Version:
Keywords: Cc:
Estimated difficulty:

Description

$ csi

CHICKEN
(c) 2008-2015, The CHICKEN Team
(c) 2000-2007, Felix L. Winkelmann
Version 4.9.1 (rev 1ae3dc1)
linux-unix-gnu-x86-64 [ 64bit manyargs dload ptables ]
compiled 2015-06-13 on yves.more-magic.net (Linux)

#;1> (##sys#quit-hook)

Error: bad argument count - received 0 but expected 1: #<procedure (f_10510 result2568)>

        Call history:

        csi.scm:416: ##sys#call-with-values       
        csi.scm:416: eval         
        <syntax>          (##sys#quit-hook)
        <eval>    (##sys#quit-hook)     <--
#;1> 

This seems to have something to do with the set! call on line 1098: it is overriding ##sys#quit-hook with a procedure that has an incompatible signature. However, this is not the most important part: the important part is that this override is not picked up at the call site.

Maybe this'll get fixed with #1131

Change History (3)

comment:1 Changed 9 years ago by sjamaan

Stranger still:

CHICKEN
(c) 2008-2014, The Chicken Team
(c) 2000-2007, Felix L. Winkelmann
Version 4.9.0.1 (stability/4.9.0) (rev 8b3189b)
linux-unix-gnu-x86-64 [ 64bit manyargs dload ptables ]
bootstrapped 2014-06-07

#;1> (##sys#quit-hook)

Error: bad argument count - received 0 but expected 1: #<procedure (f_10505 result2553)>

        Call history:

        <syntax>          (##sys#quit-hook)
        <eval>    (##sys#quit-hook)     <--
#;1> ,q ;; this works!

If the global procedure is overwritten, why does this give an error message even in CHICKEN 4.9?

comment:2 Changed 9 years ago by sjamaan

Eek, in eval.scm there's a dynamic-wind that's messing with ##sys#quit-hook

comment:3 Changed 9 years ago by sjamaan

Resolution: fixed
Status: newclosed

Fixed with c0395ce2 for CHICKEN 5, and I'm not asking any more questions about how weird this is in CHICKEN 4 ;)

Note: See TracTickets for help on using tickets.