[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] [#17 algebra BOOTSTRAP fixed point] yet another wrinkl

From: anonymous
Subject: [Axiom-developer] [#17 algebra BOOTSTRAP fixed point] yet another wrinkle
Date: Tue, 18 Jan 2005 23:06:43 -0600


I believe I understand the process by which optimized versions of the
bootstrap files are produced. However, I think that many of the
differences in the code we are seeing are not due to this process.

The fixed point build is causing the interpsys image to be
rebuilt. These images are different:

  -rwxr-xr-x  1 steve steve 15858720 2005-01-06 05:29  interpsys1
  -rwxr-xr-x  1 steve steve 16645152 2005-01-07 21:42  interpsys2

and they generate different code. 

Consider the following simple package:

)abbrev package Foo Foo
Foo(): E == I where
  E == with
    bar: () -> Void
  I == add
    SI ==> SingleInteger
    sint : SI := 2::SI
    bar(): Integer == 
       for j in 3.. repeat

When compiled using both images, with the same $AXIOM environment (so
we know the images are seeing the same algebra) we get these basic

  1) In iteration over the for loop, generic stepping code is replaced
     with fixnum arith
  2) Trivial coercions to SINT's coerce(Integer):% are being inlined. 

In wi1.boot we see an improved version of compCoerce. Likewise in
wi2.boot we see an improved version of compIterator. The improved
version of compIterator makes explicit attempts to decide when fixnum
arith should be generated for stepping code (a higher-level attempt
then the quick hack found in the definition of -REPEAT in
macros.lisp, see a previous email). 

My feeling is that somehow the new versions of these functions have
been loaded into the image in the second pass.  

forwarded from

reply via email to

[Prev in Thread] Current Thread [Next in Thread]