chicken-janitors
[Top][All Lists]
Advanced

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

[Chicken-janitors] #1122: Strange interaction between scrutinizer and ha


From: Chicken Trac
Subject: [Chicken-janitors] #1122: Strange interaction between scrutinizer and hardwired compiler rewrites: remove compiler rewrites?
Date: Sat, 10 May 2014 18:36:51 -0000

#1122: Strange interaction between scrutinizer and hardwired compiler rewrites:
remove compiler rewrites?
----------------------+-----------------------------------------------------
 Reporter:  sjamaan   |       Owner:        
     Type:  defect    |      Status:  new   
 Priority:  major     |   Milestone:  4.10.0
Component:  compiler  |     Version:  4.9.x 
 Keywords:            |  
----------------------+-----------------------------------------------------
 Due to a currently unknown reason, sometimes the scrutinizer seems to be
 able to prevent hardwired compiler rewrites from being done.

 If the following code is interpreted, it will print two lines saying
 "error".  If it is compiled, it will either print "error" and "smaller",
 or in case of a {{{DEBUGBUILD}}}, it will print "error" and show a low-
 level type assertion error.

 {{{
 #!scm
 (use ports)
 (handle-exceptions exn
     (print 'error)
     (print (if (char<? 1 #\a) 'smaller 'bigger-or-equal) ))
 (handle-exceptions exn
     (print 'error)
     (print (if (char<? (with-input-from-string "1" read) #\a)
                'smaller 'bigger-or-equal)))
 }}}

 Perhaps it's a good idea to remove the compiler rewrites completely (they
 are in {{{c-platform.scm}}}), and, where suitable, move the rewrites to
 {{{types.db}}}.  This will prevent bogus rewrites like the one above, and
 should also make the compiler simpler.  We must ensure this doesn't mess
 up performance too bad.  Benchmarking will help.

-- 
Ticket URL: <http://bugs.call-cc.org/ticket/1122>
CHICKEN Scheme <http://www.call-with-current-continuation.org/>
CHICKEN Scheme is a compiler for the Scheme programming language.

reply via email to

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