Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re^5: supporting quads on 32 bit Perl

by salva (Abbot)
on Jun 01, 2012 at 06:00 UTC ( #973681=note: print w/ replies, xml ) Need Help??


in reply to Re^4: supporting quads on 32 bit Perl
in thread supporting quads on 32 bit Perl

Have you considering asking Math::Int64 author to solve those issues?


Comment on Re^5: supporting quads on 32 bit Perl
Replies are listed 'Best First'.
Re^6: supporting quads on 32 bit Perl
by bulk88 (Priest) on Jun 01, 2012 at 13:40 UTC
    Are you the author?
      I have just uploaded version 0.19, let's see how it goes at the ActiveState build servers.
        0.19 failed on Activestates build system http://ppm4.activestate.com/MSWin32-x86/5.12/1200/S/SA/SALVA/Math-Int64-0.19.d/log-20120601T213822.txt. INT64_MAX is only in a Platform SDK header called intsafe.h. That was introduced somewhere between Studio 2005 and Studio 2008. My Studio 2003 doesn't have it, ActiveState doesn't have it.I added
        static char *right_b_error = "right-shift right operand is out +of bounds"; static char *right_error = "right shift overflows"; #ifndef INT64_MAX #define INT64_MAX _I64_MAX #endif #ifndef INT64_MIN #define INT64_MIN _I64_MIN #endif #ifndef UINT64_MAX #define UINT64_MAX _UI64_MAX #endif #ifndef UINT32_MAX #define UINT32_MAX _UI32_MAX #endif #include "strtoint64.h" #include "isaac64.h"
        and that fixed the limit constants problem. There are still more problems. After fixing the limit constants problem I got this
        Int64.c Int64.xs(254) : error C2059: syntax error : 'bad suffix on number' Int64.xs(254) : error C2146: syntax error : missing ')' before identif +ier 'p63' Int64.xs(254) : error C2144: syntax error : '<Unknown>' should be prec +eded by '< Unknown>' Int64.xs(254) : error C2144: syntax error : '<Unknown>' should be prec +eded by '< Unknown>' Int64.xs(254) : error C2143: syntax error : missing ')' before 'identi +fier' Int64.xs(254) : error C2059: syntax error : 'bad suffix on number' Int64.xs(255) : warning C4244: 'return' : conversion from 'NV' to 'int +64_t', pos sible loss of data Int64.xs(334) : error C2059: syntax error : 'bad suffix on number' Int64.xs(334) : error C2146: syntax error : missing ')' before identif +ier 'p64' Int64.xs(334) : error C2144: syntax error : '<Unknown>' should be prec +eded by '< Unknown>' Int64.xs(334) : error C2144: syntax error : '<Unknown>' should be prec +eded by '< Unknown>' Int64.xs(334) : error C2143: syntax error : missing ')' before 'identi +fier'
        VC is complaining about these strange constants.
        if (may_die_on_overflow && ((nv >= 0x1p63) || (nv < -0x1p63))) overflow(aTHX_ out +_of_bounds_error_s); return nv;
        This isn't C89. http://msdn.microsoft.com/en-us/library/w9bk1wcy%28v=vs.80%29.aspx http://msdn.microsoft.com/en-us/library/2k2xf226%28v=vs.80%29. So this will never compile on Visual C unless its fixed. I don't know how to fix that myself. So what is 0x1p63 as a normal C literal?
        Ill be watching. Thanks for trying to get it work on ActiveState's packager.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://973681]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (8)
As of 2015-09-04 18:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred temperature scale is:










    Results (147 votes), past polls