[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