Skip to content

Commit c766445

Browse files
committed
intrinsified PyEval_GetBuiltins
1 parent 6ec00c1 commit c766445

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCEvalBuiltins.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,14 @@
5050
import com.oracle.graal.python.builtins.objects.PNone;
5151
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.GetNativeNullNode;
5252
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.TransformExceptionToNativeNode;
53+
import com.oracle.graal.python.builtins.objects.module.PythonModule;
5354
import com.oracle.graal.python.builtins.objects.thread.LockBuiltins.AcquireLockNode;
5455
import com.oracle.graal.python.builtins.objects.thread.LockBuiltins.ReleaseLockNode;
5556
import com.oracle.graal.python.builtins.objects.thread.PLock;
57+
import static com.oracle.graal.python.nodes.BuiltinNames.BUILTINS;
5658
import com.oracle.graal.python.nodes.function.PythonBuiltinBaseNode;
5759
import com.oracle.graal.python.nodes.function.PythonBuiltinNode;
60+
import com.oracle.graal.python.nodes.object.GetDictIfExistsNode;
5861
import com.oracle.graal.python.runtime.exception.PException;
5962
import com.oracle.truffle.api.dsl.Cached;
6063
import com.oracle.truffle.api.dsl.GenerateNodeFactory;
@@ -131,4 +134,21 @@ public Object release(VirtualFrame frame, PLock lock,
131134
}
132135
}
133136
}
137+
138+
@Builtin(name = "PyEval_GetBuiltins")
139+
@GenerateNodeFactory
140+
public abstract static class PyEvalGetBuiltinsNode extends PythonBuiltinNode {
141+
@Specialization
142+
public Object release(@Cached GetDictIfExistsNode getDictNode,
143+
@Cached TransformExceptionToNativeNode transformExceptionToNativeNode,
144+
@Cached GetNativeNullNode getNativeNullNode) {
145+
try {
146+
PythonModule cext = getContext().getCore().lookupBuiltinModule(BUILTINS);
147+
return getDictNode.execute(cext);
148+
} catch (PException e) {
149+
transformExceptionToNativeNode.execute(e);
150+
return getNativeNullNode.execute();
151+
}
152+
}
153+
}
134154
}

graalpython/lib-graalpython/python_cext.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -473,12 +473,4 @@ def Time_FromTimeAndFold(h, m, s, us, tz, fold, typ):
473473
datetime.timedelta.__basicsize__ = import_c_func("get_PyDateTime_Delta_basicsize", capi_library)()
474474

475475

476-
@may_raise
477-
def PyEval_GetBuiltins():
478-
global __builtins_module_dict
479-
if not __builtins_module_dict:
480-
import builtins
481-
__builtins_module_dict = builtins.__dict__
482-
return __builtins_module_dict
483-
484476

0 commit comments

Comments
 (0)