2 ms·
The number of patches is going down with time and many are trivial one liners, e.g. uvloop https://github.com/oracle/graalpython/blob/b907353de1b72a14ee1c6976c
by mike_hearn 2y ago
The number of patches is going down with time and many are trivial one liners, e.g. uvloop
https://github.com/oracle/graalpython/blob/b907353de1b72a14ee1c6976c79691b9601c860f/graalpython/lib-graalpython/patches/uvloop/uvloop.patch https://github.com/oracle/graalpython/blob/b907353de1b72a14e...
- self.cython_always = False
+ self.cython_always = True
That's the entire patch. Others are working around bugs in the C extensions themselves that a different implementation happens to expose, and can be upstreamed:
https://github.com/oracle/graalpython/blob/b907353de1b72a14ee1c6976c79691b9601c860f/graalpython/lib-graalpython/patches/zstandard/zstandard.patch https://github.com/oracle/graalpython/blob/b907353de1b72a14e...
Still others exist for old module versions, but are now obsolete:
https://github.com/oracle/graalpython/blob/b907353de1b72a14ee1c6976c79691b9601c860f/graalpython/lib-graalpython/patches/cryptography/metadata.toml https://github.com/oracle/graalpython/blob/b907353de1b72a14e...
# None of the patches are needed since 43.0, the pyo3 patches have been upstreamed
And finally, some are just general portability improvements. Fork doesn't exist on Windows. Often it can be replaced with just starting a sub-process.
So the patching situation has been getting much better over time, partly due to the GraalPy team actively getting involved with and improving the Python ecosystem as a whole.