Skip to content

Conversation

@itamaro
Copy link
Contributor

@itamaroitamaro commented Dec 5, 2022

This includes:

  1. Followup on @markshannon's comment, improving code watchers dispatch efficiency (read callback only if watcher is on the active watchers bits, and bail out early from dispatch loop)
  2. Apply same optimization to func watchers dispatch loop as well
  3. Remove dict watchers array that was never used
  4. Add initialization of type watchers array
  5. Add (PyCFunction) cast to a few test functions
  6. Change an invariant test in type watchers dispatch loop to an assert

- Remove `dict_watchers` array on the interpreter state (was never used, likely added in [the function watchers PR](https://github.com/python/cpython/pull/98175/files#diff-cb06b7ba43789a1d6ae5bef46baa8a255b72dbcd2b44bfec7f146ea4e94dbfa0) when resolving a merge conflict) - Cast `METH_NOARGS` function to `(PyCFunction)` in watchers test methods - Initialize `type_watchers` array to `NULL`s
@itamaro
Copy link
ContributorAuthor

I'm pretty sure this doesn't require a news entry, but not sure whether an issue is needed. let me know and I can file an issue if needed!

@itamaroitamaro changed the title Cleanup and polish various watchers codeGH-100000: Cleanup and polish various watchers codeDec 5, 2022
@itamaro
Copy link
ContributorAuthor

filed an issue preemptively, got the nice and round GH-100000 ^_^

Copy link
Member

@carljmcarljm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, thanks for the cleanup!

@netlify
Copy link

netlifybot commented Dec 13, 2022

Deploy Preview for python-cpython-preview canceled.

NameLink
🔨 Latest commit80f9519
🔍 Latest deploy loghttps://app.netlify.com/sites/python-cpython-preview/deploys/6398fc1a4db9f00008dcde31

@markshannon
Copy link
Member

Looks good. Thanks.

@markshannonmarkshannon merged commit ae83c78 into python:mainDec 14, 2022
carljm added a commit to carljm/cpython that referenced this pull request Dec 16, 2022
* main: Improve stats presentation for calls. (pythonGH-100274) Better stats for `LOAD_ATTR` and `STORE_ATTR` (pythonGH-100295) pythongh-81057: Move the Cached Parser Dummy Name to _PyRuntimeState (python#100277) Document that zipfile's pwd parameter is a `bytes` object (python#100209) pythongh-99767: mark `PyTypeObject.tp_watched` as internal use only in table (python#100271) Fix typo in introduction.rst (python#100266) pythongh-78997: AttributeError if loading fails in LibraryLoader.__getattr__ pythonGH-100234: Set a default value for random.expovariate() (pythonGH-100235) Remove uninformative itertools recipe (pythonGH-100253) pythonGH-99767: update PyTypeObject docs for type watchers (pythonGH-99928) Move stats for the method cache into the `Py_STAT` machinery (pythonGH-100255) pythonGH-100222: fix typo _py_set_opocde -> _py_set_opcode (pythonGH-100259) pythonGH-100000: Cleanup and polish various watchers code (pythonGH-99998) pythongh-90111: Minor Cleanup for Runtime-Global Objects (pythongh-100254)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@itamaro@markshannon@carljm@bedevere-bot