[pypy-commit] pypy default: add a helper method to translatorshell to get the compiled function from the compiled library and update the documentation
bivab
noreply at buildbot.pypy.org
Mon Feb 18 11:28:53 CET 2013
Author: David Schneider <david.schneider at picle.org>
Branch:
Changeset: r61401:a57b50cb7158
Date: 2013-02-18 11:28 +0100
http://bitbucket.org/pypy/pypy/changeset/a57b50cb7158/
Log: add a helper method to translatorshell to get the compiled function
from the compiled library and update the documentation
diff --git a/pypy/doc/getting-started-dev.rst b/pypy/doc/getting-started-dev.rst
--- a/pypy/doc/getting-started-dev.rst
+++ b/pypy/doc/getting-started-dev.rst
@@ -58,8 +58,7 @@
only use low level types that are available in C (e.g. int). The compiled
version is now in a ``.so`` library. You can run it say using ctypes:
- >>> from ctypes import CDLL
- >>> f = CDLL(lib)
+ >>> f = get_c_function(lib, snippet.is_perfect_number)
>>> f(5)
0
>>> f(6)
diff --git a/rpython/bin/translatorshell.py b/rpython/bin/translatorshell.py
--- a/rpython/bin/translatorshell.py
+++ b/rpython/bin/translatorshell.py
@@ -15,9 +15,10 @@
t.view() # graph + annotations under the mouse
t.rtype() # use low level operations
- f = t.compile_c() # C compilation
+ lib = t.compile_c() # C compilation as a library
+ f = get_c_function(lib, f) # get the function out of the library
assert f(arg) == func(arg) # sanity check (for C)
-
+
Some functions are provided for the benefit of interactive testing.
Try dir(snippet) for list of current snippets.
@@ -31,6 +32,13 @@
import py
+
+def get_c_function(lib, f):
+ from ctypes import CDLL
+ name = f.__name__
+ return getattr(CDLL(lib.strpath), 'pypy_g_' + name)
+
+
def setup_readline():
import readline
try:
More information about the pypy-commit
mailing list