Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pull pyston benchmarks into pyperformance. #60

Closed
11 of 12 tasks
ericsnowcurrently opened this issue Jun 16, 2021 · 25 comments
Closed
11 of 12 tasks

Pull pyston benchmarks into pyperformance. #60

ericsnowcurrently opened this issue Jun 16, 2021 · 25 comments

Comments

@ericsnowcurrently
Copy link
Collaborator

ericsnowcurrently commented Jun 16, 2021

The Pyston project published a set of macro benchmarks that they used. We can work on incorporating those into the pyperformance suite.

TODO:


Steps to incorporate Pyston benchmarks on a benchmarking host:

  1. clone the Pyston benchmarks repo
  2. create a manifest file with just an "includes" section, containing references to the manifests you're combining
  3. add a "manifest=" entry to the config file you're passing to pyperformance compile ...
  4. proceed as usual

More concretely:

#git clone --branch benchmark-management https://github.com/ericsnowcurrently/python-performance pyperformance
#git clone --branch pyperformance https://github.com/ericsnowcurrently/pyston-macrobenchmarks
git clone https://github.com/pyston/python-macrobenchmarks pyston-macrobenchmarks

cat > MANIFEST.combined << EOF
[includes]
<default>
pyston-macrobenchmarks/benchmarks/MANIFEST
EOF

cat > ./cpython-perf.ini << EOF
[config]
...

[scm]
...

[compile]
...

[run_benchmark]
manifest = MANIFEST.combined
...
EOF

PYTHONPATH=./pyperformance python3 -m pyperformance compile ./cpython-perf.ini main
@ericsnowcurrently ericsnowcurrently created this issue from a note in Old Faster CPython Project Board (Doing (Eric)) Jun 16, 2021
@ericsnowcurrently ericsnowcurrently self-assigned this Jun 16, 2021
@Fidget-Spinner
Copy link
Collaborator

Fidget-Spinner commented Jun 18, 2021

FWIW, I started looking at the Pyston suite and tried to find areas where pyperformance lack a month ago. So far I ported over their mypy benchmark (see python/pyperformance#102).

Just my two cents: I think their aiohttp, gevent and gunicorn benchmarks are interesting too because they're more modern workloads. However, I've been trying to find benchmarks that use OOP concepts more heavily since that's an area pyperformance lacks right now.

@ericsnowcurrently
Copy link
Collaborator Author

ericsnowcurrently commented Jul 23, 2021

I've mostly gotten to the point I can post PRs:

Now I just need to follow up with @vstinner and @pablogsal on the pyperformance approach.

@ericsnowcurrently
Copy link
Collaborator Author

Also, with my changes we could get rid of the idea of "groups" in pyperformance. Instead we would have a separate manifest file for each of the existing groups.

@ericsnowcurrently

This comment has been minimized.

@ericsnowcurrently
Copy link
Collaborator Author

Current pyperformance vs. my branch:
$ python3.8 -m pyperf compare_to ~benchmarking/BENCH/REQUESTS/req-1636475547-esnow/results-data.json.gz ~benchmarking/BENCH/REQUESTS/req-1636488560-esnow/results-data.json.gz -G --table
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| Benchmark               | BENCH/REQUESTS/req-1636475547-esnow/results-data.json.gz | BENCH/REQUESTS/req-1636488560-esnow/results-data.json.gz |
+=========================+==========================================================+==========================================================+
| unpack_sequence         | 46.8 ns                                                  | 44.1 ns: 1.06x faster                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| telco                   | 6.57 ms                                                  | 6.31 ms: 1.04x faster                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| regex_effbot            | 3.22 ms                                                  | 3.12 ms: 1.03x faster                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| float                   | 84.1 ms                                                  | 81.6 ms: 1.03x faster                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| hexiom                  | 7.55 ms                                                  | 7.33 ms: 1.03x faster                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| meteor_contest          | 108 ms                                                   | 105 ms: 1.03x faster                                     |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| logging_silent          | 118 ns                                                   | 114 ns: 1.03x faster                                     |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| pathlib                 | 19.4 ms                                                  | 19.0 ms: 1.02x faster                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| nbody                   | 114 ms                                                   | 111 ms: 1.02x faster                                     |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| scimark_monte_carlo     | 80.5 ms                                                  | 78.8 ms: 1.02x faster                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| xml_etree_parse         | 155 ms                                                   | 152 ms: 1.02x faster                                     |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| xml_etree_process       | 58.9 ms                                                  | 57.9 ms: 1.02x faster                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| python_startup          | 8.51 ms                                                  | 8.37 ms: 1.02x faster                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| json_dumps              | 12.5 ms                                                  | 12.3 ms: 1.02x faster                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| json_loads              | 25.6 us                                                  | 25.2 us: 1.02x faster                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| scimark_sor             | 155 ms                                                   | 153 ms: 1.01x faster                                     |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| raytrace                | 331 ms                                                   | 328 ms: 1.01x faster                                     |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| sqlite_synth            | 2.78 us                                                  | 2.75 us: 1.01x faster                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| chaos                   | 77.4 ms                                                  | 76.5 ms: 1.01x faster                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| regex_v8                | 23.2 ms                                                  | 23.0 ms: 1.01x faster                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| xml_etree_generate      | 80.7 ms                                                  | 80.1 ms: 1.01x faster                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| pickle_list             | 4.62 us                                                  | 4.59 us: 1.01x faster                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| xml_etree_iterparse     | 106 ms                                                   | 105 ms: 1.01x faster                                     |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| regex_compile           | 143 ms                                                   | 142 ms: 1.00x faster                                     |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| pidigits                | 186 ms                                                   | 187 ms: 1.00x slower                                     |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| regex_dna               | 214 ms                                                   | 215 ms: 1.00x slower                                     |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| python_startup_no_site  | 5.90 ms                                                  | 5.92 ms: 1.00x slower                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| unpickle_pure_python    | 266 us                                                   | 267 us: 1.00x slower                                     |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| logging_format          | 6.47 us                                                  | 6.52 us: 1.01x slower                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| pyflate                 | 529 ms                                                   | 535 ms: 1.01x slower                                     |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| scimark_fft             | 340 ms                                                   | 344 ms: 1.01x slower                                     |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| nqueens                 | 88.5 ms                                                  | 90.6 ms: 1.02x slower                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| pickle                  | 9.79 us                                                  | 10.1 us: 1.03x slower                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| unpickle_list           | 5.10 us                                                  | 5.27 us: 1.03x slower                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| pickle_dict             | 27.3 us                                                  | 28.2 us: 1.03x slower                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| richards                | 54.2 ms                                                  | 56.1 ms: 1.04x slower                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| scimark_sparse_mat_mult | 4.55 ms                                                  | 4.81 ms: 1.06x slower                                    |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+
| Geometric mean          | (ref)                                                    | 1.00x faster                                             |
+-------------------------+----------------------------------------------------------+----------------------------------------------------------+

Benchmark hidden because not significant (9): fannkuch, logging_simple, deltablue, go, spectral_norm, 2to3, pickle_pure_python, unpickle, scimark_lu
Ignored benchmarks (12) of BENCH/REQUESTS/req-1636475547-esnow/results-data.json.gz: chameleon, crypto_pyaes, django_template, dulwich_log, mako, sqlalchemy_declarative, sqlalchemy_imperative, sympy_expand, sympy_integrate, sympy_str, sympy_sum, tornado_http

Although the geometric means indicates no change, there is some variance in the results where I'd expect none. I'll be looking into that.

@brandtbucher, any ideas?

@gvanrossum
Copy link
Collaborator

What exactly do the two columns represent?

There is often some noise in benchmarks -- Brandt has tried to quantify this in #109

@brandtbucher
Copy link
Member

Yeah, this is a problem with certain benchmarks. For example, I've often seen pidigits swing +/-11% on two builds of the same exact changeset. The two runs each showed no deviation individually:

pidigits: 188 ms +- 0 ms -> 208 ms +- 0 ms: 1.11x slower

@brandtbucher
Copy link
Member

brandtbucher commented Nov 9, 2021

Also, I've grown to dislike pyperf's pretty "table" view, because it (for some reason) hides the standard deviation for each run. The "default" view often reveals overlapping ranges in the results. I'm no statistician, but I'm pretty sure that that hurts their statistical significance.

As a concrete example, here's the whole run that I got that pidigits result from. Notice that pidigits, pickle, and regex_effbot are the only "significant" results without overlapping error bars (and, as I've shown in #109, even those cannot be reliably trusted):

$ pyperf compare_to ../results/old/0/main.json.gz ../results/old/0/main-again.json.gz --group
Slower (27):
- pidigits: 188 ms +- 0 ms -> 208 ms +- 0 ms: 1.11x slower
- unpickle: 13.4 us +- 0.1 us -> 14.0 us +- 0.8 us: 1.04x slower
- unpickle_list: 4.98 us +- 0.06 us -> 5.12 us +- 0.10 us: 1.03x slower
- logging_format: 6.82 us +- 0.08 us -> 7.00 us +- 0.12 us: 1.03x slower
- pickle_list: 4.41 us +- 0.06 us -> 4.53 us +- 0.04 us: 1.03x slower
- json_loads: 25.3 us +- 0.7 us -> 25.9 us +- 0.3 us: 1.02x slower
- meteor_contest: 107 ms +- 1 ms -> 109 ms +- 4 ms: 1.02x slower
- scimark_monte_carlo: 78.7 ms +- 0.9 ms -> 80.1 ms +- 1.8 ms: 1.02x slower
- raytrace: 326 ms +- 2 ms -> 331 ms +- 3 ms: 1.02x slower
- scimark_sor: 156 ms +- 2 ms -> 158 ms +- 4 ms: 1.01x slower
- pickle: 9.87 us +- 0.09 us -> 10.0 us +- 0.1 us: 1.01x slower
- fannkuch: 421 ms +- 2 ms -> 426 ms +- 5 ms: 1.01x slower
- mako: 12.7 ms +- 0.1 ms -> 12.8 ms +- 0.1 ms: 1.01x slower
- xml_etree_generate: 83.9 ms +- 1.1 ms -> 84.7 ms +- 0.9 ms: 1.01x slower
- logging_simple: 6.10 us +- 0.08 us -> 6.16 us +- 0.09 us: 1.01x slower
- pyflate: 531 ms +- 4 ms -> 536 ms +- 6 ms: 1.01x slower
- logging_silent: 115 ns +- 2 ns -> 116 ns +- 1 ns: 1.01x slower
- xml_etree_parse: 154 ms +- 3 ms -> 156 ms +- 3 ms: 1.01x slower
- nbody: 113 ms +- 1 ms -> 114 ms +- 2 ms: 1.01x slower
- scimark_sparse_mat_mult: 4.90 ms +- 0.07 ms -> 4.94 ms +- 0.02 ms: 1.01x slower
- xml_etree_process: 61.7 ms +- 0.6 ms -> 62.2 ms +- 0.5 ms: 1.01x slower
- json_dumps: 12.5 ms +- 0.2 ms -> 12.6 ms +- 0.1 ms: 1.01x slower
- pickle_dict: 27.2 us +- 0.2 us -> 27.3 us +- 0.2 us: 1.01x slower
- regex_compile: 151 ms +- 1 ms -> 151 ms +- 1 ms: 1.01x slower
- django_template: 39.0 ms +- 0.4 ms -> 39.2 ms +- 0.3 ms: 1.01x slower
- go: 171 ms +- 2 ms -> 172 ms +- 2 ms: 1.01x slower
- dulwich_log: 68.6 ms +- 0.4 ms -> 68.8 ms +- 0.5 ms: 1.00x slower

Faster (17):
- regex_effbot: 3.31 ms +- 0.05 ms -> 3.11 ms +- 0.08 ms: 1.06x faster
- unpack_sequence: 47.6 ns +- 1.8 ns -> 46.1 ns +- 0.5 ns: 1.03x faster
- spectral_norm: 114 ms +- 3 ms -> 111 ms +- 2 ms: 1.03x faster
- nqueens: 89.6 ms +- 1.3 ms -> 88.3 ms +- 0.6 ms: 1.01x faster
- scimark_fft: 350 ms +- 3 ms -> 345 ms +- 3 ms: 1.01x faster
- regex_dna: 214 ms +- 1 ms -> 212 ms +- 2 ms: 1.01x faster
- sympy_integrate: 22.4 ms +- 0.1 ms -> 22.2 ms +- 0.1 ms: 1.01x faster
- regex_v8: 24.3 ms +- 0.1 ms -> 24.1 ms +- 0.5 ms: 1.01x faster
- chaos: 79.0 ms +- 1.0 ms -> 78.3 ms +- 0.8 ms: 1.01x faster
- tornado_http: 111 ms +- 3 ms -> 110 ms +- 3 ms: 1.01x faster
- unpickle_pure_python: 276 us +- 2 us -> 274 us +- 2 us: 1.01x faster
- pickle_pure_python: 379 us +- 3 us -> 376 us +- 3 us: 1.01x faster
- crypto_pyaes: 88.4 ms +- 0.5 ms -> 87.9 ms +- 1.0 ms: 1.01x faster
- sympy_expand: 515 ms +- 4 ms -> 512 ms +- 6 ms: 1.01x faster
- sympy_str: 307 ms +- 4 ms -> 306 ms +- 2 ms: 1.01x faster
- python_startup_no_site: 5.85 ms +- 0.01 ms -> 5.84 ms +- 0.00 ms: 1.00x faster
- python_startup: 8.46 ms +- 0.01 ms -> 8.45 ms +- 0.01 ms: 1.00x faster

Benchmark hidden because not significant (14): 2to3, chameleon, deltablue, float, hexiom, pathlib, richards, scimark_lu, sqlalchemy_declarative, sqlalchemy_imperative, sqlite_synth, sympy_sum, telco, xml_etree_iterparse

Geometric mean: 1.00x slower

@ericsnowcurrently
Copy link
Collaborator Author

FYI, the pyston benchmarks don't work against CPython main (as of about a month ago) due to dependencies failing to build. It looks like a problem in Cython. See cython/cython#4461 and MagicStack/uvloop#450.

@gvanrossum
Copy link
Collaborator

gvanrossum commented Nov 9, 2021 via email

@ericsnowcurrently
Copy link
Collaborator Author

What exactly do the two columns represent?

It's the two results files that I was comparing.

Here's the non-table comparison from pyperf:
Slower (13):
- scimark_sparse_mat_mult: 4.55 ms +- 0.05 ms -> 4.81 ms +- 0.08 ms: 1.06x slower
- richards: 54.2 ms +- 0.6 ms -> 56.1 ms +- 1.0 ms: 1.04x slower
- pickle_dict: 27.3 us +- 0.2 us -> 28.2 us +- 0.2 us: 1.03x slower
- unpickle_list: 5.10 us +- 0.05 us -> 5.27 us +- 0.09 us: 1.03x slower
- pickle: 9.79 us +- 0.07 us -> 10.1 us +- 0.2 us: 1.03x slower
- nqueens: 88.5 ms +- 1.0 ms -> 90.6 ms +- 0.8 ms: 1.02x slower
- scimark_fft: 340 ms +- 2 ms -> 344 ms +- 8 ms: 1.01x slower
- pyflate: 529 ms +- 4 ms -> 535 ms +- 8 ms: 1.01x slower
- logging_format: 6.47 us +- 0.09 us -> 6.52 us +- 0.10 us: 1.01x slower
- unpickle_pure_python: 266 us +- 2 us -> 267 us +- 2 us: 1.00x slower
- python_startup_no_site: 5.90 ms +- 0.00 ms -> 5.92 ms +- 0.00 ms: 1.00x slower
- regex_dna: 214 ms +- 1 ms -> 215 ms +- 0 ms: 1.00x slower
- pidigits: 186 ms +- 0 ms -> 187 ms +- 0 ms: 1.00x slower

Faster (24):
- unpack_sequence: 46.8 ns +- 1.2 ns -> 44.1 ns +- 0.8 ns: 1.06x faster
- telco: 6.57 ms +- 0.08 ms -> 6.31 ms +- 0.10 ms: 1.04x faster
- regex_effbot: 3.22 ms +- 0.01 ms -> 3.12 ms +- 0.06 ms: 1.03x faster
- float: 84.1 ms +- 0.9 ms -> 81.6 ms +- 1.0 ms: 1.03x faster
- hexiom: 7.55 ms +- 0.08 ms -> 7.33 ms +- 0.05 ms: 1.03x faster
- meteor_contest: 108 ms +- 3 ms -> 105 ms +- 2 ms: 1.03x faster
- logging_silent: 118 ns +- 2 ns -> 114 ns +- 2 ns: 1.03x faster
- pathlib: 19.4 ms +- 0.3 ms -> 19.0 ms +- 0.3 ms: 1.02x faster
- nbody: 114 ms +- 2 ms -> 111 ms +- 1 ms: 1.02x faster
- scimark_monte_carlo: 80.5 ms +- 1.0 ms -> 78.8 ms +- 2.0 ms: 1.02x faster
- xml_etree_parse: 155 ms +- 2 ms -> 152 ms +- 2 ms: 1.02x faster
- xml_etree_process: 58.9 ms +- 0.5 ms -> 57.9 ms +- 0.6 ms: 1.02x faster
- python_startup: 8.51 ms +- 0.01 ms -> 8.37 ms +- 0.01 ms: 1.02x faster
- json_dumps: 12.5 ms +- 0.1 ms -> 12.3 ms +- 0.1 ms: 1.02x faster
- json_loads: 25.6 us +- 0.3 us -> 25.2 us +- 0.2 us: 1.02x faster
- scimark_sor: 155 ms +- 3 ms -> 153 ms +- 1 ms: 1.01x faster
- raytrace: 331 ms +- 3 ms -> 328 ms +- 7 ms: 1.01x faster
- sqlite_synth: 2.78 us +- 0.07 us -> 2.75 us +- 0.06 us: 1.01x faster
- chaos: 77.4 ms +- 0.7 ms -> 76.5 ms +- 0.6 ms: 1.01x faster
- regex_v8: 23.2 ms +- 0.2 ms -> 23.0 ms +- 0.1 ms: 1.01x faster
- xml_etree_generate: 80.7 ms +- 0.6 ms -> 80.1 ms +- 0.7 ms: 1.01x faster
- pickle_list: 4.62 us +- 0.05 us -> 4.59 us +- 0.04 us: 1.01x faster
- xml_etree_iterparse: 106 ms +- 1 ms -> 105 ms +- 1 ms: 1.01x faster
- regex_compile: 143 ms +- 1 ms -> 142 ms +- 1 ms: 1.00x faster

@gvanrossum
Copy link
Collaborator

What exactly do the two columns represent?

It's the two results files that I was comparing.

I get that. :-)

What I didn't get is what is different between the two runs you are comparing. Were they two different commits on cpython's main branch? Were they using different versions of pyperformance? You write "my branch". Your branch of what?

Here's my current hypothesis. You were using two different versions of PyPerformance, i.e. the head of its main branch and the head of your branch (python/pyperformance#109), and you ran these with exactly the same cpython commit, and both with optimizations enabled. Moreover, the main PyPerformance branch is the left column and the PR 109 branch is on the right.

What did I miss?

@ericsnowcurrently
Copy link
Collaborator Author

You've described it exactly. :) I was checking to see if my changes impact the pyperformance results.

(Sorry about the confusion.)

@ericsnowcurrently
Copy link
Collaborator Author

ericsnowcurrently commented Nov 10, 2021

It looks like a problem in Cython. See cython/cython#4461

The problem was fixed a couple weeks ago (for 0.29.x) but it's unclear when the next release (0.29.25) will happen: https://github.com/cython/cython/milestones.

Separately, it looks like uWSGI doesn't build currently on 3.11. I've opened unbit/uwsgi#2365.

@gvanrossum
Copy link
Collaborator

Do we need to wait for a Cython release or could we (temporarily) point our lockfile to a specific commit?

@pablogsal
Copy link
Collaborator

pablogsal commented Nov 10, 2021

Do we need to wait for a Cython release or could we (temporarily) point our lockfile to a specific commit?

Unfortunately seems that the only realistic way that I can think of is a new Cython release as if we want to test new commits on top of main, that's the only way to get a working Cython.

Alternatively, we can try to install cython based on its master branch (IIRC pip allows a git-based specifier), but we need to make sure we can build the wheel ourselves (should happen automatically, but not sure what build dependencies and requirements cython has).

@ericsnowcurrently
Copy link
Collaborator Author

Alternatively, we can try to install cython based on its master branch (IIRC pip allows a git-based specifier)

I'll give it a shot.

@ericsnowcurrently
Copy link
Collaborator Author

The specifier is "Cython@https://github.com/cython/cython/archive/0.29.x.tar.gz".

I tried it and it looks like Cython is incompatible with main at the moment (PyCode_New(), PyFrameObject.f_localsplus, CO_NOFREE). 🙁

@gvanrossum
Copy link
Collaborator

Are there at least Cython issues that make the Cython team aware of those incompatibilities? Ideally we could probably submit PRs that fix them -- I think this is within the scope of our project.

I'm surprised that PyCode_New() is still an issue, I thought that Stefan had fixed this (cython/cython#4414).

@ericsnowcurrently
Copy link
Collaborator Author

Yeah, I'll check the Cython issue tracker and post a bug report if needed. I also don't mind putting up a fix for them if it isn't too hairy. 🙂

@ericsnowcurrently
Copy link
Collaborator Author

FTR, here are the issues for extension problems with 3.11 that I found while running the Pyston benchmarks against CPython's main:

@gvanrossum
Copy link
Collaborator

I think solving these is going to be a priority -- In #102 we are also running into this.

@da-woods
Copy link

da-woods commented Dec 6, 2021

Just FYI - I believe Stefan has released Cython 0.29.25 which should unblock the vast majority of Cython-based dependencies (at least until Python 3.11.a3...)

@gvanrossum
Copy link
Collaborator

Just FYI - I believe Stefan has released Cython 0.29.25 which should unblock the vast majority of Cython-based dependencies (at least until Python 3.11.a3...)

Well 3.11a3 comes out today, so let's hope it still works with that. We didn't change the code object creation API, but we did change other things since alpha 2.

@ericsnowcurrently
Copy link
Collaborator Author

Any remaining work is covered in follow-up tasks: #175, #253, #164.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

6 participants