Re: Working with unsigned long long

2007-10-28 Thread William S Fulton
Torsten Schoenfeld wrote: On Wed, 2007-10-24 at 21:49 +0100, William S Fulton wrote: Any portable solutions for extracting the unsigned long long number? The best effort I can provide is what's in Glib. They do what Sisyphus suggests: represent big numbers as strings if necessary. #

Re: Working with unsigned long long

2007-10-27 Thread Torsten Schoenfeld
On Fri, 2007-10-26 at 23:33 +1000, Sisyphus wrote: > During compilation I get the errors: > > _64bit_pl_498e.xs:20: error: syntax error before "SvGUInt64" > _64bit_pl_498e.xs:30: error: syntax error before "value" > _64bit_pl_498e.xs: In function `newSVGUInt64': > _64bit_pl_498e.xs:40: error: `va

Re: Working with unsigned long long

2007-10-26 Thread muppet
On Oct 26, 2007, at 9:33 AM, Sisyphus wrote: I believe the errors arise because the 'guint64' type is uknown. Is there a missing header ? guint64 is part of GLib, since Torsten posted code from the Glib perl module. You'll want to get uint64_t, wherever Microsoft decided to define that

Re: Working with unsigned long long

2007-10-26 Thread Nicholas Clark
On Wed, Oct 24, 2007 at 09:49:26PM +0100, William S Fulton wrote: >const char *nptr = SvPV(obj, PL_na); Not the answer to the question you asked, but could I suggest re-writing that as const char *nptr = SvPV_nolen(obj); PL_na is less efficient - for non-gcc builds it uses a global var

Re: Working with unsigned long long

2007-10-26 Thread Sisyphus
- Original Message - From: "Torsten Schoenfeld" <[EMAIL PROTECTED]> . . #ifdef _MSC_VER # include #endif #ifdef WIN32 # ifdef _MSC_VER # define PORTABLE_STRTOULL(str, end, base) _strtoui64 (str, end, base) # else # define PORTABLE_STRTOULL(str, end, base) strtoul (str, end, base)

Re: Working with unsigned long long

2007-10-25 Thread michael
> On Wed, 2007-10-24 at 21:49 +0100, William S Fulton wrote: > > > Any portable solutions for extracting the unsigned long long number? > > The best effort I can provide is what's in Glib. They do what > Sisyphus suggests: represent big numbers as strings if necessary. You can represent them as

Re: Working with unsigned long long

2007-10-25 Thread Torsten Schoenfeld
On Wed, 2007-10-24 at 21:49 +0100, William S Fulton wrote: > Any portable solutions for extracting the unsigned long long number? The best effort I can provide is what's in Glib. They do what Sisyphus suggests: represent big numbers as strings if necessary. #ifdef _MSC_VER # include #endif #i

Re: Working with unsigned long long

2007-10-25 Thread Sisyphus
- Original Message - From: "William S Fulton" <[EMAIL PROTECTED]> . . If I have an unsigned long long number in Perl: $num = 923456789012113; print "num from perl: " . $num; On a 32 bit Linux system I get: num from perl: 2.3456789012e+17 and in C code, I have: SV* obj;

Working with unsigned long long

2007-10-25 Thread William S Fulton
How does one marshal unsigned long long types in Perl XS? If I have an unsigned long long number in Perl: $num = 923456789012113; print "num from perl: " . $num; On a 32 bit Linux system I get: num from perl: 2.3456789012e+17 and in C code, I have: SV* obj; ... const char *n