[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] [#17 algebra BOOTSTRAP fixed point] yet another wrinkl
[Axiom-developer] [#17 algebra BOOTSTRAP fixed point] yet another wrinkle
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 http://page.axiom-developer.org/zope/mathaction/address@hidden
|[Prev in Thread]
||[Next in Thread]|
- [Axiom-developer] [#17 algebra BOOTSTRAP fixed point] yet another wrinkle,