python / pyperformance

Python Performance Benchmark Suite
http://pyperformance.readthedocs.io/
MIT License
870 stars 175 forks source link

Fix manifest parsing #250

Open mdboom opened 1 year ago

mdboom commented 1 year ago

I'm a little unclear about how the manifest parsing is supposed to work, so I'm not sure this is the correct solution.

To reproduce the bug, use a "meta" manifest file that loads both the pyperformance suite and the pyston python-macrobenchmarks suite (as we do in our infra for the faster-cpython project):

[includes]
<default>
~benchmarking/BENCH/repositories/pyston-benchmarks/benchmarks/MANIFEST

There seems to be two bugs:

Both pyperformance and pyston have an empty [group default] entry. I'm not 100% sure what that is supposed to do in practice, but it causes the "a group named default was already defined" error to raise. Here, I just make the groups concatenate instead.

The pyston manifest has:

[group all]
-json

It seems like this should be valid, but the code here disallows any mention of all.

Again, I have no idea if this fix is correct, but it does at least let these two suites of benchmarks combine correctly.