At 04:58 14/10/2005 -0700, you wrote:
# New Ticket Created by  Leopold Toetsch
# Please include the string:  [perl #37434]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=37434 >


Simon Vogl wrote:

[ ... ]

Here are some relevant snippets auf Parrot on ARM (see also
http://use.perl.org/~koobla/journal/ )

> [EMAIL PROTECTED]:/var/tmp/parrot-0.3.0# ./parrot -t  t/pmc/perlint_40.pasm
>      0 new P0, 35       - P0=PMCNULL,
>      3 new P1, 35       - P1=PMCNULL,
>      6 set N0, 4000.04          - N0=0.000000,
>      9 set P0, 123      - P0=PerlInt=PMC(0x348ea0 Num:0 Int:0),
>     12 multiply P1, P0, N0      - P1=PerlInt=PMC(0x348e88 Num:0 Int:0),
> P0=PerlInt=PMC(0x348ea0 Num:123 Int:123), N0=4000.040000
>     17 print P1         - P1=PerlNum=PMC(0x348e88 Num:492005 Int:492004)
>     19 print "\n"
> -492004.920000

There are 2 problems. The trace dump truncates numbers and more
importantly PerlNum.get_string() is very likely failing due to our
'signbit' hack that exists merely for the darn -0.0 negative zero.

I think it's time to rewrite this code once again. Attached is a patch
that should correct above error type. Unfortunately it causes different
errors (of course +- 0.0) in t/pmc/complex.t. But it might very well be
that the expected output of the test is bogus.

The code in src/spf_render.c is also rather weird. At line 663 a STRING
is created just to be converted back to a cstring in the next statement.
This is probably not the most efficient way to strdup the format string ;-)

Commenents & testers very welcome,

With MinGW (gcc 3.4.2 on MSWin32) :

$ perl t/harness t/pmc/perlnum.t
t/pmc/perlnum.......NOK 47
#     Failed test (t/pmc/perlnum.t at line 961)
#          got: '0
# 0.000000
# '
#     expected: '0
# -0.000000
# '
t/pmc/perlnum.......NOK 55# Looks like you failed 1 test of 55.
t/pmc/perlnum.......dubious
        Test returned status 1 (wstat 256, 0x100)
DIED. FAILED tests 47, 55
        Failed 2/55 tests, 96.36% okay
Failed Test     Status Wstat Total Fail  Failed  List of Failed
--------------------------------------------------------------------------------

Temporarily, I reactivate the old code in perlnum.pmc

François

leo


Reply via email to