[Ecls-list] Type propagation
Gabriel Dos Reis
gdr at integrable-solutions.net
Wed Jun 2 15:10:27 UTC 2010
On Fri, May 28, 2010 at 3:47 PM, Gabriel Dos Reis
<gdr at integrable-solutions.net> wrote:
> On Fri, May 28, 2010 at 3:37 PM, Juan Jose Garcia-Ripoll
> <juanjose.garciaripoll at googlemail.com> wrote:
>> On Fri, May 28, 2010 at 10:28 PM, Gabriel Dos Reis
>> <gdr at integrable-solutions.net> wrote:
>>> Ok, thanks for the update! I'll build OpenAxiom later and report
>>> whatever I found.
>> One thing I have done is to implement more aggressive warnings about type
>> incompatibilities: when the type propagator finds that an argument to a
>> function does not have the expected type, it will issue a warning. Not a
>> style warning, but one that will force compilation to abort.
>> I did this to minimize the risk of wrong optimizations and also to detect
>> bugs in the proclamations and in the functions that do the guessing. I
>> already spotted a few problems thanks to this policy.
>> What I really want to say is just that OpenAxiom, Maxima and other large
>> programs might fail to build, ending with one of those warnings, even though
>> ECL swallowed them before.
> That is fine: I am on the side of loud failure than silent miscompilation.
I have to report a form of "regression" in an attempt to build SBCL with ecl.
The build failed much earlier with:
;;; Compiling src/code/defbangtype.lisp.
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;; Compiling (DEFMACRO DEF!TYPE ...).
;;; Compiling (DEFVAR *DELAYED-DEF!TYPES* ...).
;;; Compiling (DEFUN FORCE-DELAYED-DEF!TYPES ...).
;;; End of Pass 1.
In function STRUCTURE-REF, the value of the first argument is
which is not of the expected type C1FORM
1. (ABORT) ABORT
2. (RESTART-TOPLEVEL) Go back to Top-Level REPL.
Broken at SB-COLD::LOAD-OR-CLOAD-XCOMPILER.
I do not know whether this is due to the better checking, but I thought I should
More information about the ecl-devel