Author: Antonio Cuni <[email protected]>
Branch: hpy
Changeset: r98096:3c3b367435c3
Date: 2019-11-17 12:31 +0000
http://bitbucket.org/pypy/pypy/changeset/3c3b367435c3/

Log:    (antocuni, arigo, ronan): fix translation

diff --git a/pypy/module/hpy_universal/llapi.py 
b/pypy/module/hpy_universal/llapi.py
--- a/pypy/module/hpy_universal/llapi.py
+++ b/pypy/module/hpy_universal/llapi.py
@@ -2,9 +2,28 @@
 from rpython.rtyper.lltypesystem import lltype, rffi
 from rpython.translator.tool.cbuild import ExternalCompilationInfo
 
+# XXX temporary location
+INCLUDE_DIR = os.path.join(os.path.dirname(__file__),
+                           "test", "_vendored", "include")
+
+eci = ExternalCompilationInfo(includes=["universal/hpy.h"],
+                              include_dirs=[INCLUDE_DIR],
+                              post_include_bits=["""
+RPY_EXTERN void *_HPy_GetGlobalCtx(void);
+"""],
+                              separate_module_sources=["""
+
+struct _HPyContext_s hpy_global_ctx;
+void *_HPy_GetGlobalCtx(void)
+{
+    return &hpy_global_ctx;
+}
+
+"""])
+
 
 HPy = lltype.Signed
-HPyContextS = lltype.Struct('dummy_HPyContext_s',
+HPyContextS = rffi.CStruct('_HPyContext_s',
     ('ctx_version', rffi.INT_real),
     ('ctx_Module_Create', rffi.VOIDP),
     ('ctx_None_Get', rffi.VOIDP),
@@ -17,6 +36,7 @@
     ('ctx_FromPyObject', rffi.VOIDP),
     ('ctx_AsPyObject', rffi.VOIDP),
     ('ctx_CallRealFunctionFromTrampoline', rffi.VOIDP),
+    hints={'eci': eci},
 )
 HPyContext = lltype.Ptr(HPyContextS)
 
@@ -35,6 +55,7 @@
     ('ml_meth', _HPyMethodPairFuncPtr),
     ('ml_flags', rffi.INT_real),
     ('ml_doc', rffi.CCHARP),
+    hints={'eci': eci, 'typedef': True},
 )
 
 HPyModuleDef = rffi.CStruct('HPyModuleDef',
@@ -43,6 +64,7 @@
     ('m_doc', rffi.CCHARP),
     ('m_size', lltype.Signed),
     ('m_methods', rffi.CArrayPtr(HPyMethodDef)),
+    hints={'eci': eci, 'typedef': True},
 )
 
 METH_VARARGS  = 0x0001
@@ -53,27 +75,6 @@
 
 # ----------------------------------------------------------------
 
-# XXX temporary location
-INCLUDE_DIR = os.path.join(os.path.dirname(__file__),
-                           "test", "_vendored", "include")
-
-eci = ExternalCompilationInfo(includes=["universal/hpy.h"],
-                              include_dirs=[INCLUDE_DIR],
-                              post_include_bits=["""
-
-RPY_EXTERN void _HPy_FillFunction(int index, void *function);
-RPY_EXTERN void *_HPy_GetGlobalCtx(void);
-"""],
-                              separate_module_sources=["""
-
-struct _HPyContext_s hpy_global_ctx;
-
-void *_HPy_GetGlobalCtx(void)
-{
-    return &hpy_global_ctx;
-}
-
-"""])
 
 _HPy_GetGlobalCtx = rffi.llexternal('_HPy_GetGlobalCtx', [], HPyContext,
                                     compilation_info=eci, _nowrapper=True)
diff --git a/pypy/module/hpy_universal/state.py 
b/pypy/module/hpy_universal/state.py
--- a/pypy/module/hpy_universal/state.py
+++ b/pypy/module/hpy_universal/state.py
@@ -32,7 +32,7 @@
         self.ctx = llapi._HPy_GetGlobalCtx()
 
         for name in CONTEXT_NAMES:
-            if name != 'ctx_version':
+            if name != 'c_ctx_version':
                 missing_function = make_missing_function(name)
                 funcptr = llhelper(lltype.Ptr(DUMMY_FUNC), missing_function)
                 setattr(self.ctx, name, rffi.cast(rffi.VOIDP, funcptr))
@@ -42,10 +42,10 @@
         space = self.space
         
         funcptr = interp_hpy.HPyModule_Create.get_llhelper(space)
-        self.ctx.ctx_Module_Create = rffi.cast(rffi.VOIDP, funcptr)
+        self.ctx.c_ctx_Module_Create = rffi.cast(rffi.VOIDP, funcptr)
         #
         funcptr = interp_hpy.HPyNone_Get.get_llhelper(space)
-        self.ctx.ctx_None_Get = rffi.cast(rffi.VOIDP, funcptr)
+        self.ctx.c_ctx_None_Get = rffi.cast(rffi.VOIDP, funcptr)
         #
         funcptr = interp_hpy.HPy_Dup.get_llhelper(space)
-        self.ctx.ctx_Dup = rffi.cast(rffi.VOIDP, funcptr)
+        self.ctx.c_ctx_Dup = rffi.cast(rffi.VOIDP, funcptr)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to