[Ecls-list] Re: gcl random tester applied to ecl
Paul F. Dietz
dietz at dls.net
Mon Sep 22 20:25:28 UTC 2003
Juan Jose Garcia-Ripoll wrote:
> There is a typo in the inline expander for LDB. The fix should be available
> right now both in the experimental patches and in CVS. With that, I still get
> some new errors in your test suite, but I think they are unrelated to this
> issue.
The random tester is now giving me some odd errors during result pruning.
Here's an example (with COMPILE traced to show the form being compiled):
(COMPILE NIL (LAMBDA (A B)
(DECLARE (TYPE (INTEGER 175 422) A)
(TYPE (INTEGER 3 7282) B) (IGNORABLE A B)
(OPTIMIZE (SPEED 3) (SAFETY 1) (DEBUG 1)))
(CEILING (IF (NOT (NOT
(OR (IF (>= A A) NIL (> 48330 B))
(OR (<= A -1) T))))
(LOGAND (LET ((V6 A)) A)
(MAX B (ABS (TRUNCATE B))))
(IF (EQL 113 A) -4 -5)))))
;;; Warning: The declaration specifier IGNORABLE is unknown.
;;; End of Pass 1.
;;; Calling the C compiler...
"gcc -g -O2 -Dlinux -fstrict-aliasing -O -I/home/dietz/lib/ecl//h -w -c /tmp/ecl012rmp96B.c -o /tmp/ecl012rmp96B.o"/tmp/ecl012rmp96B.c: In function `LC1':
/tmp/ecl012rmp96B.c:25: `fixnum' undeclared (first use in this function)
/tmp/ecl012rmp96B.c:25: (Each undeclared identifier is reported only once
/tmp/ecl012rmp96B.c:25: for each function it appears in.)
(SYSTEM "gcc -g -O2 -Dlinux -fstrict-aliasing -O -I/home/dietz/lib/ecl//h -w -c /tmp/ecl012rmp96B.c -o /tmp/ecl012rmp96B.o") returned non-zero value 1
Broken at COMPILE.
Here's that c file:
#include <ecl-cmp.h>
#include "/tmp/ecl012rmp96B.h"
/* local function CLOSURE */
static cl_object LC1(int narg, cl_object V1, cl_object V2)
{ VT3 VLEX3 CLSR3
cl_object value0;
check_arg(2);
{
register cl_fixnum V3;
cl_fixnum V4;
V3= object_to_fixnum(V1);
V4= object_to_fixnum(V2);
if(!((V3)>=(V3))){
goto L7;}
goto L5;
L7:;
if((48330)>(V4)){
goto L2;}
L5:;
if((V3)<=(-1)){
goto L2;}
L2:;
T1= MAKE_FIXNUM(V3);
T2= cl_abs(1,MAKE_FIXNUM((fixnum)(V4))) /* ABS */;
T0= cl_logand(2,T1,(number_compare(MAKE_FIXNUM(V4),T2)>=0?MAKE_FIXNUM(V4):T2))/* LOGAND*/;
goto L1;
if(!((113)==(V3))){
goto L14;}
T0= MAKE_FIXNUM(-4);
goto L1;
L14:;
T0= MAKE_FIXNUM(-5);
L1:;
value0=cl_ceiling(1,T0) /* CEILING */;
return value0;
}
}
#include "/tmp/ecl012rmp96B"
#ifdef __cplusplus
extern "C"
#endif
void init_CODE(cl_object flag)
{ VT2 CLSR2
cl_object value0;
if (!FIXNUMP(flag)){
Cblock=flag;
#ifndef ECL_DYNAMIC_VV
flag->cblock.data = VV;
#endif
flag->cblock.data_size = VM;
flag->cblock.data_text = compiler_data_text;
flag->cblock.data_text_size = compiler_data_text_size;
return;}
#ifdef ECL_DYNAMIC_VV
VV = Cblock->cblock.data;
#endif
VV[1] = cl_make_cfun_va((cl_objectfn)LC1,Cnil,Cblock);
T0= VV[1];
(void)cl_set(VV[0],T0) /* SET */;
}
More information about the ecl-devel
mailing list