GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — bpo-39829: Optimize __len__() being called twice in the list() constructor by thatbirdguythatuknownot · Pull Request #31816 · python/cpython

Conversation

@thatbirdguythatuknownot

@thatbirdguythatuknownot thatbirdguythatuknownot commented Mar 11, 2022 •
edited by bedevere-bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

https://bugs.python.org/issue39829

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
thatbirdguythatuknownot added 11 commits March 8, 2022 13:38
@thatbirdguythatuknownot
bpo-39829: __len__() called twice in the list() constructor
0a5d672
@thatbirdguythatuknownot
bpo-39829: __len__ called twice in the list() constructor
ac00535
@thatbirdguythatuknownot
bpo-39829: __len__ called twice in the list() constructor
12eba03
@thatbirdguythatuknownot
bpo-39829: __len__ called twice in the list() constructor
fc50d36
@thatbirdguythatuknownot
bpo-43574 + bpo-39829: Optimize allocations
37382e8
@thatbirdguythatuknownot
bpo-43574 + bpo-39829: Optimize list allocations
4b96319
@thatbirdguythatuknownot
bpo-39829: __len__ called twice in the list() constructor
ecb8c89
@thatbirdguythatuknownot
bpo-39829: __len__ called twice in the list() constructor
66c0246
@thatbirdguythatuknownot
bpo-39829: __len__ called twice in the list() constructor
1f706b4
@thatbirdguythatuknownot
bpo-39829: __len__() called twice when constructing a list
75ec222
@thatbirdguythatuknownot
bpo-39829: __len__ called twice in the list() constructor
b5841b9
@bedevere-bot bedevere-bot added the awaiting review label Mar 11, 2022
@the-knights-who-say-ni the-knights-who-say-ni added the CLA signed label Mar 11, 2022
blurb-it Bot and others added 2 commits March 11, 2022 09:39
@blurb-it
📜🤖 Added by blurb_it.
e08c426
@thatbirdguythatuknownot
bpo-39829: __len__ called twice in the list() constructor
0eb2871
methane
methane approved these changes Mar 11, 2022
View reviewed changes

@methane methane left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

I want to round size up to even for memory efficiency.
(obmalloc aligns the memory block by 16byte on 64bit platform)
But it can be implemented in the other pull request.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@bedevere-bot bedevere-bot added awaiting merge and removed awaiting review labels Mar 11, 2022
godlygeek
godlygeek reviewed Mar 11, 2022
View reviewed changes
Comment thread Objects/listobject.c Resolved

Uh oh!

There was an error while loading. Please reload this page.

thatbirdguythatuknownot added 2 commits March 12, 2022 06:06
@thatbirdguythatuknownot
bpo-39829: __len__() called twice in the list() constructor
39b88e3
@thatbirdguythatuknownot
bpo-39829: __len__ called twice in the list() constructor
ad547f5
@methane
methane merged commit 2153daf into python:main Mar 14, 2022
@bedevere-bot bedevere-bot removed the awaiting merge label Mar 14, 2022
carljm pushed a commit to carljm/cpython that referenced this pull request Mar 14, 2022
Carl Meyer
Merge branch 'main' into dictwatch
d22463b
* main: (94 commits)
  Revert "bpo-46986: Upgrade bundled setuptools to 60.9.3 (pythonGH-31820)" (pythonGH-31879)
  bpo-30677: [doc] mention that os.mkdir() can raise FileNotFoundError (pythonGH-31548)
  git ignore Lib/site-packages (pythonGH-31862)
  bpo-31415: importtime was made by Inada Naoki (pythonGH-31875)
  bpo-46920: Remove code that has explainers why it was disabled (pythonGH-31813)
  bpo-46920: Remove disabled debug code added decades ago and likely unnecessary (pythonGH-31812)
  bpo-46920: Remove code that has no explainer why it was disabled (pythonGH-31814)
  bpo-46906: Mention native endian in PyFloat_Pack8() doc (pythonGH-31866)
  bpo-40280: select: Use NULL for empty fdset (pythonGH-31865)
  CI: Fix patchcheck (pythonGH-31708)
  bpo-46987: Remove _PySys_GetObjectId / _PySys_GetObjectId (pythonGH-31835)
  bpo-46994: Accept explicit contextvars.Context in asyncio create_task() API (pythonGH-31837)
  bpo-39829: Fix `__len__()` is called twice in list() constructor (pythonGH-31816)
  bpo-47003: Cleanup _overlapped module (pythonGH-31848)
  bpo-47004: Sync with importlib_metadata 4.11.3. (python#31854)
  bpo-46986: Upgrade bundled setuptools to 60.9.3 (pythonGH-31820)
  bpo-46985: Upgrade bundled pip to 22.0.4 (pythonGH-31819)
  bpo-46805: Add low level UDP socket functions to asyncio (pythonGH-31455)
  bpo-46995: Deprecate missing asyncio.Task.set_name() for third-party task implementations (pythonGH-31838)
  bpo-43215: Document Happy Eyeballs args of asyncio.open_connection (pythonGH-24525)
  ...
This was referenced May 17, 2022
bpo-43574: Dont overallocate list literals #24954
Closed
Regression in overallocation for literal list initialization in v3.9+ #87740
Closed
@methane

methane commented May 18, 2022

Copy link
Copy Markdown
Member

Since this PR fixed regression (#87740), should we backport this PR to 3.10?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@methane methane added the needs backport to 3.10 label May 18, 2022
@miss-islington

miss-islington commented May 18, 2022

Copy link
Copy Markdown
Contributor

Thanks @thatbirdguythatuknownot for the PR, and @methane for merging it 🌮🎉.. I'm working now to backport this PR to: 3.10.
🐍🍒⛏🤖

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-bot

bedevere-bot commented May 18, 2022

Copy link
Copy Markdown

GH-92912 is a backport of this pull request to the 3.10 branch.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-bot bedevere-bot removed the needs backport to 3.10 label May 18, 2022
miss-islington pushed a commit to miss-islington/cpython that referenced this pull request May 18, 2022
@thatbirdguythatuknownot @miss-islington
bpo-39829: Fix __len__() is called twice in list() constructor (pyt…
77d9d68
…honGH-31816)

(cherry picked from commit 2153daf)

Co-authored-by: Crowthebird <[email protected]>
methane pushed a commit that referenced this pull request May 18, 2022
@miss-islington @thatbirdguythatuknownot
bpo-39829: Fix __len__() is called twice in list() constructor (GH-…
009aeb6
…31816)

(cherry picked from commit 2153daf)

This patch fixes gh-87740 too.

Co-authored-by: Crowthebird <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@methane methane methane approved these changes
+1 more reviewer
@godlygeek godlygeek godlygeek left review comments
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

6 participants

@thatbirdguythatuknownot @methane @miss-islington @bedevere-bot @godlygeek @the-knights-who-say-ni
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.