On Apr 21, 2009, at 6:17 AM, Lisandro Dalcin wrote:

> Robert, your main() implementation needs more work IMHO.

Thanks for the feedback. I just did the basic embedding, as on David  
McNab's site. It would be good to have it behave more like python -m  
http://trac.cython.org/cython_trac/ticket/291


> 1) For Py2, you need to if(PyErr_Occurred())
> PyErr_WriteUnraisable(PyErr_Occurred()).

Actually, it might be nice to dump the whole traceback here.

> 2) In Py3, you have to save the return of PyInit_<modname>, if NULL,
> report error (WriteUnraisable again?), if not, decref it.

Is PyErr_Occurred not a good enough check here? Yes, I should  
probably get and decref the module (though it won't matter much as I  
call Py_Finalize next.

> 3) In case of errors, process return value should match what core
> CPython returns en case of unhandled execptions.

Do you know of a good list? (Otherwise, I'll just try some.)

> 3) However, a SystemExit exceptions should need some special
> consideration, as you should extract the process return value from it,
> as it could be 0 (zero).

Good point.

- Robert
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to