[pypy-svn] r54899 - in pypy/branch/win32port/pypy: config rlib rlib/test
afa at codespeak.net
afa at codespeak.net
Sun May 18 18:27:11 CEST 2008
Author: afa
Date: Sun May 18 18:27:11 2008
New Revision: 54899
Modified:
pypy/branch/win32port/pypy/config/pypyoption.py
pypy/branch/win32port/pypy/rlib/rmmap.py
pypy/branch/win32port/pypy/rlib/test/test_rmmap.py
Log:
mmap is now a working_module on win32.
The HANDLE type cannot be a voidp, because of some constants which are not addresses:
INVALID_HANDLE = cast(HANDLE, -1)
And the translator tries to translate this to a static array...
now HANDLE == ULONG.
Modified: pypy/branch/win32port/pypy/config/pypyoption.py
==============================================================================
--- pypy/branch/win32port/pypy/config/pypyoption.py (original)
+++ pypy/branch/win32port/pypy/config/pypyoption.py Sun May 18 18:27:11 2008
@@ -39,8 +39,6 @@
del working_modules["signal"]
del working_modules["_rawffi"]
# modules with broken windows support
- del working_modules["mmap"] # MLS - Added 5/11/08 - broken
- #del working_modules["_socket"] # MLS - Added 5/11/08 - broken
del working_modules["select"] # MLS - Added 5/11/08 - broken
Modified: pypy/branch/win32port/pypy/rlib/rmmap.py
==============================================================================
--- pypy/branch/win32port/pypy/rlib/rmmap.py (original)
+++ pypy/branch/win32port/pypy/rlib/rmmap.py Sun May 18 18:27:11 2008
@@ -47,8 +47,6 @@
PLONG = rffi_platform.SimpleType("PLONG", rffi.LONGP)
LPVOID = rffi_platform.SimpleType("LPVOID", rffi.INTP)
LPCVOID = rffi_platform.SimpleType("LPCVOID", rffi.VOIDP)
- HANDLE = rffi_platform.SimpleType("HANDLE", rffi.VOIDP)
- LPHANDLE = rffi_platform.SimpleType("LPHANDLE", rffi.CCHARPP)
LPCTSTR = rffi_platform.SimpleType("LPCTSTR", rffi.CCHARP)
LPDWORD = rffi_platform.SimpleType("LPDWORD", rffi.INTP)
LPSECURITY_ATTRIBUTES = rffi_platform.SimpleType("LPSECURITY_ATTRIBUTES", rffi.CCHARP)
@@ -82,6 +80,9 @@
for name in constant_names:
setattr(CConfig, name, rffi_platform.ConstantInteger(name))
+ HANDLE = rffi.ULONG
+ LPHANDLE = rffi.CArrayPtr(HANDLE)
+
# export the constants inside and outside. see __init__.py
cConfig = rffi_platform.configure(CConfig)
constants.update(cConfig)
Modified: pypy/branch/win32port/pypy/rlib/test/test_rmmap.py
==============================================================================
--- pypy/branch/win32port/pypy/rlib/test/test_rmmap.py (original)
+++ pypy/branch/win32port/pypy/rlib/test/test_rmmap.py Sun May 18 18:27:11 2008
@@ -371,3 +371,16 @@
interpret(func, [f.fileno()])
f.close()
+
+ def test_translated(self):
+ from pypy.translator.interactive import Translation
+
+ def func(no):
+ m = mmap.mmap(no, 1)
+ r = m.read_byte()
+ m.close()
+ return r
+
+ t = Translation(func)
+ fc = t.compile_c([int])
+
More information about the Pypy-commit
mailing list