[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Chicken-janitors] #1122: Strange interaction between scrutinizer and hardwired compiler rewrites: remove compiler rewrites?,
Chicken Trac <=