This typedefs to std::atomic<> when building with true threading, and uses a dummy implementation without.
This lets us use the full range of atomic operations offered by C++11, including explicit specification of memory fences. Using barriers lets the compiler generate more optimal code since currently we are using the quite strict sequential-consistent memory ordering for all operations. ReferenceCount has been changed to use the correct barriers (I hope). This may especially make a difference on weak ordering systems such as ARM.
Over time we should gradually replace the use of AtomicAdjust with the new patomic file.
According to
https://github.com/mayeut/pep600_compliance/blob/master/README.rst
manylinux2010 is EOL, and so are all Linux distributions that support manylinux2010 but not manylinux2014.
Setting the default to manylinux2014 means that more thirdparty packages are supported and hopefully means we're not always behind and have to struggle to keep building for it.
I don't think this flag being missing currently affects any functionality, but it is meant to be set when geometry shaders (with adjacency) are supported.
- Support scroll wheel
- Support middle click, forward and back buttons (mouse4 and mouse5)
- Fix handling of key repeat events
- Correctly map numpad keys
[skip ci]
It is nowadays supplied in a separate wheel, see also #780
Keep it in the Windows wheel for now since that's the only platform where deploying without a separate tkinter wheel is currently supported, but will remove it on master branch
This key is called raw-< for lack of anything better, it's usually mapped as backslash on US keyboards but that would not allow distinguishing between the backslash key near the enter key.
This reverts commit f058bad802aa881a5604209afe5ef5bfd3d8fe35.
Reverting because I realised the current behaviour is happening due to different mungers, which my fix ignores.
Unfixes #1185
Ubuntu Hirsute, Impish, and presumably Jammy ship with both Python 3.9 and 3.10.
Also, change the dependency specifications so that only one Python version is strictly required.