Batuhan Taskaya <batuhanosmantask...@gmail.com> added the comment:

#define IS_COMPILER_FLAG_ENABLED(c, flag) printf("%s: %d\n", #flag, 
c->c_flags->cf_flags & flag)

> If CO_FUTURE_DIVISION conflicts with PyCF_ALLOW_TOP_LEVEL_AWAIT, does not 
> CO_ITERABLE_COROUTINE conflict with PyCF_SOURCE_IS_UTF8 and 
> CO_ASYNC_GENERATOR with PyCF_DONT_IMPLY_DEDENT?

Yes, they do.

Compiling without anything
PyCF_SOURCE_IS_UTF8: 256
CO_ITERABLE_COROUTINE: 256
PyCF_DONT_IMPLY_DEDENT: 0
CO_ASYNC_GENERATOR: 0
Compiling with CO_ASYNC_GENERATOR
PyCF_SOURCE_IS_UTF8: 256
CO_ITERABLE_COROUTINE: 256
PyCF_DONT_IMPLY_DEDENT: 512
CO_ASYNC_GENERATOR: 512

This result is a side affect of merging future flags with compiler flags. Even 
if we access from cf_flags (or the other way around, ff_features) it doesnt 
change anything because we are merging both flags before we start the process. 

Two ways of escaping this is changing flags to not to conlict with each other 
or not merging. Not merging is out of this box because it will break user level 
compile function (it takes both flags in a single parameter, flags). The most 
reasonable solution I thought was making this flags not to conflict with each 
other.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue39562>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to