-* Supported by being rewritten in pure Python (possibly using ``c
+* Supported by being rewritten in pure Python (possibly using ``c``):
see the `lib_pypy/`_ directory. Examples of modules that we
support this way: ``ctypes``, ``cPickle``, ``cmath``, ``dbm``, ``datetime``...
Note that some modules are both in there and in the list above;
type and vice versa. For builtin types, a dictionary will be returned that
cannot be changed (but still looks and behaves like a normal dictionary).
Here is a list of the limitations and missing features of the
-* No support for ``PyXxx`` functions from ``libpython``, for obvious reasons.
+* ``ctypes.pythonapi`` lets you access the CPython C API emulation layer
+ of PyPy, at your own risks and without doing anything sensible about
+ the GIL. Since PyPy 2.3, these functions are also named with an extra
+ "Py", for example ``PyPyInt_FromLong()``. Basically, don't use this,
+ but it might more or less work in simple cases if you do. (Obviously,
+ assuming the PyObject pointers you get have any particular fields in
+ any particular order is just going to crash.)
* We copy Python strings instead of having pointers to raw buffers
.. branch: ndarray-buffer
adds support for the buffer= argument to the ndarray ctor
+.. branch: better_ftime_detect2
+On OpenBSD do not pull in libcompat.a as it is about to be removed.
+And more generally, if you have gettimeofday(2) you will not need ftime(3).
final_strides = arr.get_strides() + strides
final_backstrides = arr.get_backstrides() + backstrides
- print self.name,'strides',arr.get_strides(),strides
final_dtype = subdtype.subdtype
return W_NDimArray.new_slice(space, arr.start + ofs, final_strides,
exc = raises(IndexError, "a[None]")
assert exc.value.message == "invalid index"
- exc = raises(IndexError, "a[None]")
- assert exc.value.message == 'invalid index'
assert a["x"] == 200