[Numpy-discussion] mtrand.c update 1.11 breaks my crappy code
Robert Kern
robert.kern at gmail.com
Wed Apr 6 09:29:57 EDT 2016
On Wed, Apr 6, 2016 at 2:18 PM, Neal Becker <ndbecker2 at gmail.com> wrote:
>
> I have C++ code that tries to share the mtrand state. It unfortunately
> depends on the layout of RandomState which used to be:
>
> struct __pyx_obj_6mtrand_RandomState {
> PyObject_HEAD
> rk_state *internal_state;
> PyObject *lock;
> };
>
> But with 1.11 it's:
> struct __pyx_obj_6mtrand_RandomState {
> PyObject_HEAD
> struct __pyx_vtabstruct_6mtrand_RandomState *__pyx_vtab;
> rk_state *internal_state;
> PyObject *lock;
> PyObject *state_address;
> };
>
> So
> 1. Why the change?
> 2. How can I write portable code?
There is no C API to RandomState at this time, stable, portable or
otherwise. It's all private implementation detail. If you would like a
stable and portable C API for RandomState, you will need to contribute one
using PyCapsules to expose the underlying rk_state* pointer.
https://docs.python.org/2.7/c-api/capsule.html
--
Robert Kern
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20160406/e39d9fa1/attachment.html>
More information about the NumPy-Discussion
mailing list