# HG changeset patch
# User Armin Rigo <arigo@tunes.org>
# Date 1449820425 -3600
#      Fri Dec 11 08:53:45 2015 +0100
# Branch extradoc
# Node ID a63ae0daebb6ac373ba9e6a2c1fff6a4d7896368
# Parent  35b3948376ca4b4142523b88f8c123dfb782d663
Replace very old recommendation to use ctypes

diff --git a/performance.html b/performance.html
--- a/performance.html
+++ b/performance.html
@@ -341,7 +341,7 @@
 for JIT optimization.  If the extension module is
 both performance-critical and an interface to some C library, then it
 might be worthwhile to consider rewriting it as a pure Python version
-that uses something like <tt class="docutils literal">ctypes</tt> for the interface.</li>
+that uses <a class="reference external" href="http://cffi.readthedocs.org/">CFFI</a> for the interface.</li>
 <li><strong>Missing RPython modules</strong>: A few modules of the standard library
 (like <tt class="docutils literal">csv</tt> and <tt class="docutils literal">cPickle</tt>) are written in C in CPython, but written
 natively in pure Python in PyPy.  Sometimes the JIT is able to do a
diff --git a/source/performance.txt b/source/performance.txt
--- a/source/performance.txt
+++ b/source/performance.txt
@@ -329,7 +329,7 @@
   for JIT optimization.  If the extension module is
   both performance-critical and an interface to some C library, then it
   might be worthwhile to consider rewriting it as a pure Python version
-  that uses something like ``ctypes`` for the interface.
+  that uses CFFI_ for the interface.
 
 * **Missing RPython modules**: A few modules of the standard library
   (like ``csv`` and ``cPickle``) are written in C in CPython, but written