[Ecls-list] Re: gcl random tester applied to ecl

Juan Jose Garcia-Ripoll worm at arrakis.es
Tue Sep 23 01:13:02 UTC 2003


On Tuesday 23 September 2003 05:27, Paul F. Dietz wrote:
> Juan Jose Garcia-Ripoll wrote:
> 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):
> [...]
> 	T2= cl_abs(1,MAKE_FIXNUM((fixnum)(V4)))   /*  ABS             */;
> [...]

If you have a look at the old src/cmp/sysfun.lsp you will find that the 
inliner for TRUNCATE is
	(TRUNCATE (T *) (VALUES T T) NIL NIL
		:inline-always ((fixnum-float) fixnum nil nil "(fixnum)(#0)"))
instead of
	(TRUNCATE (T *) (VALUES T T) NIL NIL
		:inline-always ((fixnum-float) fixnum nil nil "(cl_fixnum)(#0)"))
I have fixed this in CVS.

Your randomly generated lambdas seem to be a great piece of code for 
exercising the compiler :-) It is a pity that ECL currently breaks when you 
try to load more than 80 pieces of compiled code into it: The Boehm-Weiser 
garbage collector complains about the number of roots (i.e. the number of 
data sectors arising from the libraries), and I bet this is because your code 
somehow prevents ECL from garbage collecting the generated functions. A (GC) 
right after you stop using a compiled function should help if you also find 
this problem.

BTW, are there means to compile your whole test suite before running it? I am 
pretty confident about the stability of the interpreted code, but I would 
like to also test the compiled code and your suite would be a wonderful tool 
for that. However, as I mentioned above, compiling each test separately is 
impossible with the current dlopen-based mechanism, because it overloads the 
garbage collector.

Regards,

Juanjo





More information about the ecl-devel mailing list