This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ncoghlan
Recipients eric.snow, ncoghlan, serhiy.storchaka, vstinner
Date 2017-03-31.06:19:43
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1490941184.11.0.181947342006.issue29881@psf.upfronthosting.co.za>
In-reply-to
Content
_PY_SET_FINALIZED is only one letter longer than _PY_ONCEVAR_INIT and the same length as the originally proposed _PY_STATICVAR_INIT.

Since it shouldn't be anywhere near as common as _Py_SETREF, I'm also okay in general with trading a bit of brevity for accuracy.

However, I don't want to trade away *too* much brevity, so I think we're going to have to choose between reminding readers of "this is finalized in Py_Finalize" or "this is a no-op if the target is already set", and leave the other aspect implicit.

In addition to the correctness argument above, my rationale for now favouring the former is that the logical leap in "this is finalized in Py_Finalize, so the assigned expression will only be executed once per Py_Initialize call" seems more reasonable to me than the one in "the assigned expression is only executed once per Py_Initialize call, so it will be finalized in Py_Finalize".
History
Date User Action Args
2017-03-31 06:19:44ncoghlansetrecipients: + ncoghlan, vstinner, eric.snow, serhiy.storchaka
2017-03-31 06:19:44ncoghlansetmessageid: <1490941184.11.0.181947342006.issue29881@psf.upfronthosting.co.za>
2017-03-31 06:19:44ncoghlanlinkissue29881 messages
2017-03-31 06:19:43ncoghlancreate