On 1 October 2017 at 22:19, Antoine Pitrou <solip...@pitrou.net> wrote:
>> 2. We could reinterpret "optimize" as a bitfield instead of a regular
>> integer, special casing the already defined values:
>>
>> - all zero: no optimizations
>> - sign bit set: negative -> use global settings
>> - 0x0001: nodebug+noassert
>> - 0x0002: nodebug+noassert+nodocstrings
>> - 0x0004: nodebug
>> - 0x0008: noassert
>> - 0x0010: nodocstrings
>
> Well, this is not really a bitfield, but a bitfield plus some irregular
> hardcoded values.  Therefore I don't think it brings much in the way of
> discoverability / understandability.

That's why the 2-field struct for compiler flags was my first idea.

> That said, perhaps it makes implementation easier on the C side...

Yep, the fact it would avoid requiring any ABI changes for the C API
is the main reason I think redefining the semantics of the existing
int parameter is worth considering.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to