mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-20 20:01:31 -06:00

* MultiServer: speed up location commands Adds optimized pure python wrapper around locations dict Adds optimized cython implementation of the wrapper, saving cpu time and 80% memory use * Speedups: auto-build on import and build during setup * Speedups: add requirements * CI: don't break with build_ext * Speedups: use C++ compiler for pyximport * Speedups: cleanup and more validation * Speedups: add tests for LocationStore * Setup: delete temp in-place build modules * Speedups: more tests and safer indices The change has no security implications, but ensures that entries[IndexEntry.start] is always valid. * Speedups: add cython3 compatibility * Speedups: remove unused import * Speedups: reformat * Speedup: fix empty set in test * Speedups: use regular dict in Locations.get_for_player * CI: run unittests with beta cython now with 2x nicer names
9 lines
357 B
Plaintext
9 lines
357 B
Plaintext
# This file is required to get pyximport to work with C++.
|
|
# Switching from std::set to a pure C implementation is still on the table to simplify everything.
|
|
|
|
def make_ext(modname, pyxfilename):
|
|
from distutils.extension import Extension
|
|
return Extension(name=modname,
|
|
sources=[pyxfilename],
|
|
language='c++')
|