[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-hackers] ⍄PATCH⍃ Unboxing optimization for flonums
From: |
felix . winkelmann |
Subject: |
Re: [Chicken-hackers] ⍄PATCH⍃ Unboxing optimization for flonums |
Date: |
Sat, 01 Dec 2018 21:07:43 +0100 |
> Hi Felix,
>
> On Sat, 01 Dec 2018 08:42:40 +0100 address@hidden wrote:
>
> >> No problem. Unfortunately, now "make check" breaks:
> >>
> >> Error: assertion failed: (eqv? (f32vector-ref old 6) (f32vector-ref new 0))
> >
> > Ouch. I'm running make check with something based on the current
> > HEAD all the time, on what platform is this?
>
> I initially got the error on a x86-64 system, but it looks that it is
> failing on all the salmonella machines (x86, x86-64 and arm64). I also
> tested on my Raspberry Pi (arm) and it fails there as well.
>
> > Is the error consistently appearing?
>
> It happened all the times I ran "make check".
>
> What I use to reproduce the problem is:
>
> $ make PLATFORM=... PREFIX=... CHICKEN=/path/to/chicken-5.0.0/bin/chicken
> spotless boot-chicken
> $ make PLATFORM=... PREFIX=... CHICKEN=./chicken-boot spotless install
> $ make PLATFORM=... PREFIX=... CHICKEN=./chicken-boot check
>
> (On the tip of chicken-core's master.)
>
> > If you comment out the f32vector test (lolevel-tests.scm), does the
> > f64vector test fail, too?
>
> I only tested that case on my x86-64 system, and it fails as well:
>
> Error: assertion failed: (eqv? (f64vector-ref old 6) (f64vector-ref new 0))
>
> Call history:
>
> <eval> (=598 i596 7)
> <eval> (make-locative601 old593 i596)
> <eval> (make-locative601 new594 (|-603| 7 i596 1))
> <eval> (|-603| 7 i596 1)
> <eval> (locative?605 loc-src600)
> <eval> (locative?605 loc-dst602)
> <eval> (locative-set!606 loc-dst602 (locative-ref607 loc-src600))
> <eval> (locative-ref607 loc-src600)
> <eval> (doloop612 (add1597 i596))
> <eval> (add1597 i596)
> <eval> (=598 i596 7)
> <eval> (printf608 "\nold: ~S\nnew: ~S\n" old593 new594)
> <eval> (eqv?609 (f64vector-ref old593 6) (f64vector-ref new594 0))
> <eval> (f64vector-ref old593 6)
> <eval> (f64vector-ref new594 0)
> <eval> (##sys#error "assertion failed" (##core#quote (eqv?
> (f64vector-ref old 6) (f64vector-ref new 0)))) <--
> rules.make:975: recipe for target 'check' failed
>
> > Is perhaps some float-equality-precision issue at work here?
>
> Keine Ahnung. :-)
>
> All the best.
> Mario
> --
> http://parenteses.org/mario