Author: Christian Tismer <[email protected]>
Branch: win64_gborg
Changeset: r48798:2f25d74f9648
Date: 2011-11-05 18:23 +0100
http://bitbucket.org/pypy/pypy/changeset/2f25d74f9648/
Log: coming closer, 49 tests passed, 16 failed in test_typed.py
Failing: test_memoryerror test_unichr test_UNICHR
test_list_indexerror test_long_long test_int_overflow
test_int_floordiv_ovf_zer test_int_mul_ovf test_int_mod_ovf_zer
test_int_unary_ovf test_float2str test_uint_arith
test_hash_preservation test_range_iter test_float
test_ovfcheck_float_to_int
diff --git a/pypy/doc/discussion/win64_todo.txt
b/pypy/doc/discussion/win64_todo.txt
--- a/pypy/doc/discussion/win64_todo.txt
+++ b/pypy/doc/discussion/win64_todo.txt
@@ -1,4 +1,8 @@
-20011-11-4
+2011-11-04
ll_os.py has a problem with the file rwin32.py.
Temporarily disabled for the win64_gborg branch. This needs to be
-investigated and re-enabled.
\ No newline at end of file
+investigated and re-enabled.
+
+2011-11-05
+test_typed.py needs explicit tests to ensure that we
+handle word sizes right.
\ No newline at end of file
diff --git a/pypy/rpython/module/ll_os.py b/pypy/rpython/module/ll_os.py
--- a/pypy/rpython/module/ll_os.py
+++ b/pypy/rpython/module/ll_os.py
@@ -402,9 +402,13 @@
UTIMBUFP = lltype.Ptr(self.UTIMBUF)
os_utime = self.llexternal('utime', [rffi.CCHARP, UTIMBUFP], rffi.INT)
+ if not _WIM32:
+ includes = ['sys/time.h']
+ else:
+ includes = ['time.h']
class CConfig:
_compilation_info_ = ExternalCompilationInfo(
- includes=['sys/time.h']
+ includes=includes
)
HAVE_UTIMES = platform.Has('utimes')
config = platform.configure(CConfig)
@@ -414,9 +418,14 @@
if config['HAVE_UTIMES']:
class CConfig:
- _compilation_info_ = ExternalCompilationInfo(
- includes = ['sys/time.h']
- )
+ if not _WIN32:
+ _compilation_info_ = ExternalCompilationInfo(
+ includes = ['sys/time.h']
+ )
+ else:
+ _compilation_info_ = ExternalCompilationInfo(
+ includes = ['time.h']
+ )
TIMEVAL = platform.Struct('struct timeval', [('tv_sec',
rffi.LONG),
('tv_usec',
rffi.LONG)])
config = platform.configure(CConfig)
diff --git a/pypy/translator/c/primitive.py b/pypy/translator/c/primitive.py
--- a/pypy/translator/c/primitive.py
+++ b/pypy/translator/c/primitive.py
@@ -1,7 +1,7 @@
import sys
from pypy.rlib.objectmodel import Symbolic, ComputedIntSymbolic
from pypy.rlib.objectmodel import CDefinedIntSymbolic
-from pypy.rlib.rarithmetic import r_longlong
+from pypy.rlib.rarithmetic import r_longlong, is_emulated_long
from pypy.rlib.rfloat import isinf, isnan
from pypy.rpython.lltypesystem.lltype import *
from pypy.rpython.lltypesystem import rffi, llgroup
@@ -204,6 +204,13 @@
GCREF: 'void* @',
}
+# support for win64, where sizeof(long) == 4
+if is_emulated_long:
+ PrimitiveType.update( {
+ Signed: '__int64 @',
+ Unsigned: 'unsigned __int64 @',
+ } )
+
def define_c_primitive(ll_type, c_name, suffix=''):
if ll_type in PrimitiveName:
return
@@ -221,7 +228,11 @@
define_c_primitive(rffi.INT, 'int')
define_c_primitive(rffi.INT_real, 'int')
define_c_primitive(rffi.UINT, 'unsigned int')
-define_c_primitive(rffi.LONG, 'long', 'L')
-define_c_primitive(rffi.ULONG, 'unsigned long', 'UL')
+if is_emulated_long: # special case for win64
+ define_c_primitive(rffi.LONG, '__int64', 'LL')
+ define_c_primitive(rffi.ULONG, 'unsigned __int64', 'ULL')
+else:
+ define_c_primitive(rffi.LONG, 'long', 'L')
+ define_c_primitive(rffi.ULONG, 'unsigned long', 'UL')
define_c_primitive(rffi.LONGLONG, 'long long', 'LL')
define_c_primitive(rffi.ULONGLONG, 'unsigned long long', 'ULL')
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit