[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