pypy / pypy / module / cpyext / TODO

 - Complete the PyTypeObject initialization code. (see XXX in the code)
  - Implement further method callers.
  - Copy the slots from the base.
  - Those tasks are necessary to be able to call slots from C code correctly.
  - Additionally, implement further slot wrappers. This is necessary to call
    slots of PTOs defined in C.
 - Complete the Members support.

 - Use a WeakKeyDictionary to count how often a PyObject is allocated for
   a given wrapped object and use this to assess whether optimizations are

 - replace @cpython_api(external=False) by another explicit name: all
   it does is a lltype function pointer, no C code involved.

 - Fix GIL handling (e.g. after releasing the GIL, GC operations might occur in savethreads).

 - refactor management of py_objects_r2w and py_objects_w2r, this can
   probably be expressed in terms of _PyObject_GC_TRACK macros.

 - PyWeakref_GetObject() returns a borrowed reference, but this turns the
   WeakRef into a strong reference!

 - sort out pypy's buffer protocol. PyPy's buffer right now don't support
   raw memory (except array which supports it in a hackish way), which
   should be fixed in order to make it nicely work with cpyext.