• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

aio-libs / multidict / 37203632573
86%

Build:
DEFAULT BRANCH: master
Ran 04 Oct 2026 12:53PM UTC
Jobs 1
Files 49
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

04 Oct 2026 12:52PM UTC coverage: 86.01%. Remained the same
37203632573

push

github

web-flow
Drop inline from functions registered as slots or methods (#1672)

<!-- Thank you for your contribution! -->

## What do these changes do?

Drops `inline` from five C functions whose address goes into a slot or
method table: `multidict_tp_traverse`, `istr_tp_dealloc`, `istr_reduce`,
`istr_new` and `multidict_copy`. GCC has to emit an out-of-line copy of
each anyway. `multidict_tp_traverse` kept the keyword from #1589, when
it was still the `md_traverse()` helper behind a wrapper.

`md_clear` is also a slot but keeps `inline`: it has six direct callers,
and dropping the keyword changes the codegen of 53 functions on GIL and
166 on FT.

`tools/codegen_diff.py --ref f2d1da7b` reports no difference on 3.14.7
(GIL). On 3.14.7t (FT), the `multidict_tp_traverse` change alone shifts
GCC's inlining budget so that `bump_version` is now inlined into
`cimultidict_setdefault`; the other four are identical on both builds.
Callgrind on FT, `multidict_c` and `cimultidict_c` with
`--include-multidict-only`: one of 60 rows moved, `cimultidict_c
setdefault_new` 739.0 -> 737.0 Ir/op (-0.27%).

## Are there changes in behavior for the user?

No.

## Is it a substantial burden for the maintainers to support this?

No.

## Related issue number

N/A

## Checklist

- [x] I think the code is well written
- [ ] Unit tests for the changes exist: N/A, no behavior change;
existing suite covers these slots
- [x] Documentation reflects the changes
- [ ] If you provide code modification, please add yourself to
`CONTRIBUTORS.txt`: N/A
- [x] Add a new news fragment into the `CHANGES/` folder
- [x] `make doc-spelling` passes and any new technical words are added
to `docs/spelling_wordlist.txt`

Drafted with Claude Code (Claude Opus 5.5); to be reviewed by @asvetlov.

<details>
<summary>Agent run details (optional, for reviewers)</summary>

Tests, each in its own venv and tree copy:
- 3.14.7t C extension: 4062 passed, 196 skipped
- 3.14.7 C extension: 4077 passed, 181 skipped
- 3.10.17 C... (continued)

792 of 1584 branches covered (50.0%)

Branch coverage included in aggregate %.

9315 of 10167 relevant lines covered (91.62%)

1.83 hits per line

Jobs
ID Job ID Ran Files Coverage
1 MyPy - 37203632573.1 04 Oct 2026 12:53PM UTC 98
86.01
GitHub Action Run
Source Files on build 37203632573
  • Tree
  • List 49
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #37203632573
  • cfcf7f33 on github
  • Prev Build on master (#37203551251)
  • Next Build on master (#37206750564)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc