#534 too aggressive funcall eliminaton

closed-fixed
clisp (525)
5
2009-09-27
2009-09-27
No

http://thread.gmane.org/gmane.lisp.clisp.devel/20915
Tobias C. Rittweiler wrote:
> [1]> (defun dispatch-macro-char-p (char rt)
> (handler-case (prog1 t
> (get-dispatch-macro-character char #\x rt))
> (error () nil)))
> DISPATCH-MACRO-CHAR-P
> [2]> (dispatch-macro-char-p #\$ (copy-readtable nil))
> NIL
> [3]> (compile 'dispatch-macro-char-p)
> DISPATCH-MACRO-CHAR-P ;
> NIL ;
> NIL
> [4]> (dispatch-macro-char-p #\$ (copy-readtable nil))
> T

confirmed.
the reason is that the compiler folds the get-dispatch-macro-character call
because the function is marked as seclass_read.
(this is done in c-DIRECT-FUNCTION-CALL).

Discussion

  • Sam Steingold

    Sam Steingold - 2009-09-27

    thank you for your bug report.
    the bug has been fixed in the CVS tree.
    you can either wait for the next release (recommended)
    or check out the current CVS tree (see http://clisp.cons.org\)
    and build CLISP from the sources (be advised that between
    releases the CVS tree is very unstable and may not even build
    on your platform).

     
  • Sam Steingold

    Sam Steingold - 2009-09-27
    • labels: --> clisp
    • milestone: --> ANSI compliance issue
    • assigned_to: nobody --> sds
    • status: open --> closed-fixed
     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks