[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