Python 3.11 started to roll out to github actions, and .. it doesn't work.
This MAY affect just the espressif build, but I'm pinning it back at 3.10
for all builds.
Typical failure, during "Run $IDF_PATH/tools/idf_tools.py --non-interactive install required"
shows a lot of failures building gevent:
```
...
Collecting gevent<2.0,>=1.2.2
Downloading gevent-1.5.0.tar.gz (5.3 MB)
...
Building wheel for gevent (pyproject.toml): finished with status 'error'
...
src/gevent/_greenlet_primitives.c:216:12: fatal error: longintrepr.h: No such file or directory
216 | #include "longintrepr.h"
| ^~~~~~~~~~~~~~~
compilation terminated.
error: command '/usr/bin/gcc' failed with exit code 1
```
I notice that gevent is pinned at <2.0 while the current version is 22.10.2!
This is a dependency of gdbgui==0.13.2.0, which is installed by esp-idf
pinned at that version.
This targets the 64-bit CPU Raspberry Pis. The BCM2711 on the Pi 4
and the BCM2837 on the Pi 3 and Zero 2W. There are 64-bit fixes
outside of the ports directory for it.
There are a couple other cleanups that were incidental:
* Use const mcu_pin_obj_t instead of omitting the const. The structs
themselves are const because they are in ROM.
* Use PTR <-> OBJ conversions in more places. They were found when
mp_obj_t was set to an integer type rather than pointer.
* Optimize submodule checkout because the Pi submodules are heavy
and unnecessary for the vast majority of builds.
Fixes#4314