On Oct 7, 2005, at 20:52, Andy Dougherty wrote:
perl Configure.pl --optimize=-O3 --debugging=0 --cc=gcc --ld=gcc
--link=gcc
...
Andy slowly please. No --optimize tests yet. Let's first look at plain
default build.
Intel x86/gcc-3.3.5, built with
perl Configure.pl --optimize=-O0 --debugging=0
This seems to be w/o optimizations.
Failed 2/167 test scripts, 98.80% okay. 3/2749 subtests failed, 99.89%
okay.
Failed Test Stat Wstat Total Fail Failed List of Failed
-----------------------------------------------------------------------
--------
imcc/t/syn/labels.t 1 256 7 1 14.29% 3
t/op/jit.t 2 512 60 2 3.33% 52-53
(1 subtest UNEXPECTEDLY SUCCEEDED), 4 tests and 98 subtests skipped.
make: *** [test] Error 255
The 2 jit tests don't have an 'end' opcode and rely on nullified I regs
- quite clearly these can fail. The labels test has the same problem.
I'll fix these RSN.
One thing I really don't understand is why the CONTEXT macro has to
play
the "-1" trick to access memory to the "left".
There is currently just one base pointer (praise x86 jit). Parrot
registers are to the right of it, context is at the left side
(src/inter_create.c has a picture describing this).
Similarly, I don't
understand why the ALIGNED_CTX_SIZE macro has a NUMVAL_SIZE buried in
it,
and how that fits in with attempting to do things like p[-1].
Context + registers are allocated as one chunk. Registers especially
the FLOATVAL ones have to be aligned at FLOATVAL alignment needs.
Therefore there can be a gap between the context and the registers.
Above macro takes care about this fact by increasing the allocation
size.
I guess I
just don't understand what padding assumptions are built in to the code
and why we can't let the compiler compute all the relevant addresses
and
offsets for us.
I don't think that current failures are related to this at all - see
explanation for above errors. It's of course true that optimized build
will cause more troubles, but we'll have a look at these later.
leo