New submission from Zachary Ware: The current two-pass output for the two-pass preset causes compile errors on Windows. A sample:
..\PC\winsound.c(71): error C2133: 'winsound_PlaySound__doc__' : unknown size Line 71 (clinic-generated docstring_prototype): PyDoc_VAR(winsound_PlaySound__doc__); Here's a bit more info on the error: http://msdn.microsoft.com/en-us/library/c13wk277%28v=vs.100%29.aspx There are a few viable alternatives that I can see. 1) Give PyDoc_VAR a reasonable default size. I don't like this; it seems fragile. 2) Remove docstring_prototype as an outputtable entity. I don't like this much either, it should be a reasonable thing to do. 3) Add a new PyDoc_SIZEDVAR macro, taking name and size. Argument Clinic will know the needed size and can fill it in, but it would be largely useless for manual usage. I think this is my preferred route. 4) Instead of reusing PyDoc_VAR (or a new PyDoc_SIZEDVAR), just have Clinic output the whole expanded macro, with size; e.g. "static char winsound_PlaySound__doc__[195]". This does have the downside that any future change to docstrings that would have been a simple change to the macro would have to be done in Argument Clinic, with lots of churn in every clinicized file. Here's a patch that implements option 3. ---------- files: pydoc_sizedvar.diff keywords: patch messages: 208616 nosy: larry, zach.ware priority: normal severity: normal status: open title: Argument Clinic: docstring_prototype output causes build failure on Windows type: compile error Added file: http://bugs.python.org/file33585/pydoc_sizedvar.diff _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue20323> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com