RE: Strange python behavior with modules on an emt64 box

2006-01-23 Thread Joshua Luben
To clarify this issue,

I checked, DCOracle is compile such that sizeof(int) = 4, sizeof(long) =
8. I guess this is closer to what you are expecting.

If a 'Python' int is a C long, then why is it passing in a 4 byte size? 

Digging deaper, I've found that this size is not passed in by Python,
but by taking the sizeof() the long in a union for different types.
(Binding.u.l)

I guess this is now a GCC compiler bug, so I'll send this problem
elsewhere.

Thanks!

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
Tim Peters
Sent: Friday, January 20, 2006 4:00 PM
To: python-list@python.org
Subject: Re: Strange python behavior with modules on an emt64 box

[Joshua Luben]
 I thought I would post this here first before seeking more experienced

 ears for this particular strangness.

 I have Python 2.4.2 installed from source on a dual processor dell
server.
 These are x86_64 processors (verified by /bin/arch) (aka emt64
extensions).

 uname -a gives
 Linux eps-linuxserv3 2.6.5-7.244-smp #1 SMP Mon Dec 12 18:32:25 UTC 
 2005 x86_64 x86_64 x86_64 GNU/Linux

 The flavor of Linux is 64 bit SUSE SLES 9 with the latest updates.


 Now for the strangeness. I'm using DCOracle2 (can't use anything else,

 as this is the corporate standard) also compiled from source. When 
 calling
 executemany() when any parameter is of type int, I get a 
 OverflowError. I turned on debug traces in DCOracle2; this indicated 
 that PyArg_ParseTuple() was returning sizeof(int) = 4 bytes.

Sounds right to me.  I don't know of any platform other than old Cray
Research boxes where sizeof(int)  4.

 DCOracle2 is compiled such that sizeof(int) = 8 bytes.

Sounds wrong to me.

 Python itself gives,

 python -c import sys; print sys.maxint
 9223372036854775807

 Therefore, indicating that the size of int is 8 bytes.

No, it does not.  A Python `int` is a C `long`, and sizeof(long) = 8 on
most 64-bit boxes (Win64 is an exception).  The size of a platform C
long can be deduced from the value of Python's sys.maxint, but nothing
about the size of a platform C int.

 So I'll go out on a limb here and assume that this is a python 
 problem...but I don't know where to take it...

I'd start with this part, which sounds crazy:

DCOracle2 is compiled such that sizeof(int) = 8 bytes.
--
http://mail.python.org/mailman/listinfo/python-list
 
This email (including any attachments) may contain material that is 
confidential and privileged and is for the sole use of the intended recipient. 
Any review, reliance or distribution by others or forwarding without express 
permission is strictly prohibited. If you are not the intended recipient, 
please contact the sender and delete all copies.


Exelixis, Inc. reserves the right, to the extent and under circumstances 
permitted by applicable law, to retain, monitor and intercept e-mail messages 
to and from its systems.
-- 
http://mail.python.org/mailman/listinfo/python-list


Strange python behavior with modules on an emt64 box

2006-01-20 Thread Joshua Luben




I thought I would 
post this here first before seeking more experienced ears for this particular 
strangness.

I have Python 2.4.2 
installed from source on a dual processor dell server. These are x86_64 
processors (verified by /bin/arch) (aka emt64 extensions).

uname -a 
gives
Linux eps-linuxserv3 
2.6.5-7.244-smp #1 SMP Mon Dec 12 18:32:25 UTC 2005 x86_64 x86_64 x86_64 
GNU/Linux

The flavor of Linux 
is 64 bit SUSE SLES 9 with the latest updates.


Now for the 
strangeness. I'm using DCOracle2 (can't use anything else, as this is the 
corporate standard) also compiled from source. When calling executemany() when 
any parameter is of type int, I get a OverflowError.I turned on debug 
traces in DCOracle2; this indicated that PyArg_ParseTuple() was returning 
sizeof(int) = 4 bytes. DCOracle2 is compiled such that sizeof(int) = 8 
bytes.

Python itself 
gives,

python -c "import 
sys; print sys.maxint"9223372036854775807
Therefore, 
indicating that the size of int is 8 bytes.

So I'll go out on a 
limb here and assume that this is a python problem...but I don't know where to 
take it...


Josh

This email (including any attachments) may contain material that is confidential and privileged and is for the sole use of the intended recipient. Any review, reliance or distribution by others or forwarding without express permission is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.Exelixis, Inc. reserves the right, to the extent and under circumstances permitted by applicable law, to retain, monitor and intercept e-mail messages to and from its systems.
-- 
http://mail.python.org/mailman/listinfo/python-list

Re: Strange python behavior with modules on an emt64 box

2006-01-20 Thread Tim Peters
[Joshua Luben]
 I thought I would post this here first before seeking more experienced ears
 for this particular strangness.

 I have Python 2.4.2 installed from source on a dual processor dell server.
 These are x86_64 processors (verified by /bin/arch) (aka emt64 extensions).

 uname -a gives
 Linux eps-linuxserv3 2.6.5-7.244-smp #1 SMP Mon Dec 12 18:32:25 UTC 2005 
 x86_64 x86_64 x86_64 GNU/Linux

 The flavor of Linux is 64 bit SUSE SLES 9 with the latest updates.


 Now for the strangeness. I'm using DCOracle2 (can't use anything else, as
 this is the corporate standard) also compiled from source. When calling
 executemany() when any parameter is of type int, I get a OverflowError. I
 turned on debug traces in DCOracle2; this indicated that PyArg_ParseTuple()
 was returning sizeof(int) = 4 bytes.

Sounds right to me.  I don't know of any platform other than old Cray
Research boxes where sizeof(int)  4.

 DCOracle2 is compiled such that sizeof(int) = 8 bytes.

Sounds wrong to me.

 Python itself gives,

 python -c import sys; print sys.maxint
 9223372036854775807

 Therefore, indicating that the size of int is 8 bytes.

No, it does not.  A Python `int` is a C `long`, and sizeof(long) = 8
on most 64-bit boxes (Win64 is an exception).  The size of a platform
C long can be deduced from the value of Python's sys.maxint, but
nothing about the size of a platform C int.

 So I'll go out on a limb here and assume that this is a python problem...but
 I don't know where to take it...

I'd start with this part, which sounds crazy:

DCOracle2 is compiled such that sizeof(int) = 8 bytes.
-- 
http://mail.python.org/mailman/listinfo/python-list