[Python-Dev] PEP 384 status

Antoine Pitrou solipsis at pitrou.net
Sun Aug 29 10:24:47 CEST 2010


On Sun, 29 Aug 2010 09:20:56 +1000
Nick Coghlan <ncoghlan at gmail.com> wrote:
> 
> Four options come to mind:
> 
> - just leave it out of the limited API, extensions can do their own
> thing to print objects
> - leave PyObject_Print out of the limited API, but create a
> PyObject_PrintEx that takes a Python IO stream via PyObject* rather
> than a C level FILE*.
> - leave PyObject_Print out of the limited API, but create a
> PyObject_PrintEx that takes function pointers for the above 4
> operations (so the FILE* pointer is only every operated on by
> functions from the extension module's CRT)
> - leave PyObject_Print out of the limited API, but create a
> PyObject_PRINT macro that does much the same thing with the logic
> rearranged so there is an inner function that figures out the string
> to be printed, but an outer macro that does all the operations on the
> FILE * object (so again, the FILE * is never passed to Python's CRT)

Fifth option:
- make PyObject_Print() an inline function (similar to your macro
  proposal), but only on Windows. This would retain the name and
  current signature. Apparently we could use something like
  "__forceinline" or "extern __forceinline"?

Regards

Antoine.




More information about the Python-Dev mailing list