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
bpo-31336: Speed up type creation, which is highly dominated by slow dict lookups. #3279
Commits on Sep 4, 2017
-
Speed up type creation, which is highly dominated by slow dict lookups.
Stefan Behnel committedSep 4, 2017 -
Update comment after changing the function call that it refers to.
Stefan Behnel committedSep 4, 2017 -
Ignore any errors (however unlikely) that may happen during the mro c…
…hained name lookups in _PyType_Lookup().
Stefan Behnel committedSep 4, 2017
Commits on Sep 5, 2017
-
Extract non-caching code from _PyType_Lookup() to use it directly fro…
…m update_one_slot().
Stefan Behnel committedSep 5, 2017 -
Avoid some useless overhead for the no-basetype case. If "object" eve…
…r ceases to be a valid base type, there'll probably be larger code sections to change than this one.
Stefan Behnel committedSep 5, 2017
Commits on Sep 6, 2017
-
Stefan Behnel committed
Sep 6, 2017 -
Avoid uselessly searching empty bases for a metaclass. This is quite …
…common in Python 3 now. Also make the step from "return NULL" error handling to "goto error" reference cleanup explicit.
Stefan Behnel committedSep 6, 2017
Commits on Sep 10, 2017
-
Avoid unsafe handling of borrowed "mro" reference during hash() call.
Distinguish between "error" and "error with exception" cases in _PyType_LookupUncached(). Fix a reference leak of "mro" on lookup errors. Resolves issues found by Serhiy Storchaka.
Stefan Behnel committedSep 10, 2017 -
Clean up code and formatting a little.
Stefan Behnel committedSep 10, 2017 -
Add braces for code style reasons.
Stefan Behnel committedSep 10, 2017 -
Give internal helper function a local name that does not resemble (ex…
…isting) API names. Suggested by Serhiy Storchaka.
Stefan Behnel committedSep 10, 2017
Commits on Sep 11, 2017
-
Allow non-dict types for the class dict when looking up names and cal…
…l PyObject_GetItem() for them.
Stefan Behnel committedSep 11, 2017 -
Lazily calculate name hash in find_name_in_mro() to avoid potential r…
…e-calculation if the mapping is not exactly a dict.
Stefan Behnel committedSep 11, 2017 -
Revert "Lazily calculate name hash in find_name_in_mro() to avoid pot…
…ential re-calculation if the mapping is not exactly a dict." This reverts commit 1d52082.
Stefan Behnel committedSep 11, 2017 -
Revert "Allow non-dict types for the class dict when looking up names…
… and call PyObject_GetItem() for them." This reverts commit 09e716a.
Stefan Behnel committedSep 11, 2017
Commits on Sep 13, 2017
-
add news entry for faster class creation
Stefan Behnel committedSep 13, 2017 -
Change nice interface of "find_name_in_mro()" to evil interface eatin…
…g lookup exceptions, just like "_PyType_Lookup()" did previously.
Stefan Behnel committedSep 13, 2017 -
Mention amount of speedup in News entry.
Stefan Behnel committedSep 13, 2017
Commits on Sep 14, 2017
-
Revert "Change nice interface of "find_name_in_mro()" to evil interfa…
…ce eating lookup exceptions, just like "_PyType_Lookup()" did previously." This reverts commit 4efde8e.
Stefan Behnel committedSep 14, 2017 -
Guard against external live exceptions when calling find_name_in_mro(…
…) from functions that swallow live exceptions.
Stefan Behnel committedSep 14, 2017