Andy Dougherty wrote:

On Fri, 2 Sep 2005, Nattfodd wrote:

I added in the last revision some very basic memory alignment control
(basically, headers and bodies are rounded up to the nearest multiple of
GMC_ALIGN, which has a value of 8 now but can be changed at will. As headers
were previously using 12 bytes, this may solve your problem (I hope so...).
There are assert for alignment pretty much everywhere in object allocation, so
that should help too.

Setting GMC_ALIGN to 8 failed as before. Setting it to 16 (the same value as BUFFER_ALIGN in include/parrot/headers.h at least allowed it to build.
It still fails lots of tests, however:

   Failed Test             Stat Wstat Total Fail  Failed  List of Failed
   
-------------------------------------------------------------------------------
   t/dynclass/gdbmhash.t     13  3328    13   13 100.00%  1-13
   t/dynclass/pyclass.t       1   256     6    1  16.67%  6
   t/dynclass/pyfunc.t        1   256     4    1  25.00%  4
   t/library/getopt_long.t    1   256     1    1 100.00%  1
   t/library/streams.t        1   256    20    1   5.00%  13
   t/native_pbc/integer.t     1   256     1    1 100.00%  1
   t/native_pbc/number.t      1   256     1    1 100.00%  1
   t/op/gc.t                  6  1536    19    6  31.58%  4 11 15-18
   t/p6rules/backtrack.t     13  3328    15   13  86.67%  3-15
   t/p6rules/builtins.t      35  8960    41   35  85.37%  1-18 21 24 27-41
   t/p6rules/capture.t       38  9728    38   38 100.00%  1-38
   t/p6rules/escape.t        16  4096    19   16  84.21%  1-16
   t/p6rules/subrules.t       5  1280     5    5 100.00%  1-5
   t/p6rules/ws.t            19  4864    19   19 100.00%  1-19
   t/pmc/mmd.t               10  2560    28   10  35.71%  1-8 23 25
   t/pmc/objects.t            1   256    62    1   1.61%  31
   t/pmc/ref.t                1   256    12    1   8.33%  7
   t/src/hash.t               1   256    10    1  10.00%  6
   4 tests and 76 subtests skipped.
   Failed 18/163 test scripts, 88.96% okay. 164/2718 subtests failed, 93.97% 
okay.

15 of those subtests were failing anyway even without your patch, but
the remaining failures are new, I think.

I have no time to investigate further, but I think there's a still some other
problem that's now getting masked.  An alignment of 8 should have been 
sufficent.
Or, it may be that the GMC_ALIGN and BUFFER_ALIGN need to be the same.
Hi Andy,
thanks for the investigation, I'll look closely to it. It was reported to fail on AMD64 too but we did not try setting GMC_ALIGN to 16. Also be warned that I am very far from an alignment master, so I may have done things wrong in my small hack. Btw, I always have a warning concerning Posix_memalign not being found. It seems to be in no place that I changed, and I don't see why it isn't found because the right headers are included. I did not really try to correct it yet but this could be a cause of failure. I also commited a correction for a really dummy mistake (an assert that was failing onlw if data was *not* corrupted...). This is still not perfect (98.37% on make test for me) but quite positive anyway.

I'll leave tomorrow for one week of vacation in a place far, far away (without internet connection, that is), but I'll continue trying to debug it. Feel free to commit any change that seems relevant, of course.

Thansk for your support :)

Regards,
Alexandre

Reply via email to