From 68911d52ddf66bde11b4fcd2474ef1f7f55918f4 Mon Sep 17 00:00:00 2001 From: Armin Rigo Date: Wed, 18 Nov 2015 08:07:19 +0100 Subject: Change the docs to use extern "Python" as discussed yesterday on irc (thanks antocuni) --- demo/cdef_call_python.py | 29 ----------------------------- demo/extern_python.py | 26 ++++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 29 deletions(-) delete mode 100644 demo/cdef_call_python.py create mode 100644 demo/extern_python.py (limited to 'demo') diff --git a/demo/cdef_call_python.py b/demo/cdef_call_python.py deleted file mode 100644 index 24f420f..0000000 --- a/demo/cdef_call_python.py +++ /dev/null @@ -1,29 +0,0 @@ -import cffi - -ffi = cffi.FFI() - -ffi.cdef(""" - int add(int x, int y); - CFFI_CALL_PYTHON long mangle(int); -""") - -ffi.set_source("_cdef_call_python_cffi", """ - - static long mangle(int); - - static int add(int x, int y) - { - return mangle(x) + mangle(y); - } -""") - -ffi.compile() - - -from _cdef_call_python_cffi import ffi, lib - -@ffi.call_python("mangle") # optional argument, default to func.__name__ -def mangle(x): - return x * x - -assert lib.add(40, 2) == 1604 diff --git a/demo/extern_python.py b/demo/extern_python.py new file mode 100644 index 0000000..e0ee20d --- /dev/null +++ b/demo/extern_python.py @@ -0,0 +1,26 @@ +import cffi + +ffi = cffi.FFI() + +ffi.cdef("""int my_algo(int); extern "Python" int f(int);""") + +ffi.set_source("_extern_python_cffi", """ + static int f(int); + static int my_algo(int n) { + int i, sum = 0; + for (i = 0; i < n; i++) + sum += f(n); + return sum; + } +""") + +ffi.compile() + + +from _extern_python_cffi import ffi, lib + +@ffi.def_extern() +def f(n): + return n * n + +assert lib.my_algo(10) == 0+1+4+9+16+25+36+49+64+81 -- cgit v1.2.1