Sitelet https://web.archive.org/web/20220111022413/https://github.com/nodejs/node/pull/41372
Skip to content
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

build: use list for mutable retval rather than tuple #41372

Merged
merged 2 commits into from Jan 5, 2022

Conversation

@Trott
Copy link
Member

@Trott Trott commented Jan 1, 2022

This is a really small semantic Python nit. Pinging @nodejs/python in case I'm just wrong in my understanding or something.

We define retval as a tuple and then replace the tuple by "appending" items with += but that actually creates a new tuple every time. Because it is intended to be mutable, use a list instead, then return a tuple from the function, as it should be immutable outside the function.

We define `retval` as a tuple and then replace the tuple by "appending"
items with `+=` but that actually creates a new tuple every time.
Because it is intended to be mutable, use a list instead, then return a
tuple from the function, as it should be immutable outside the function.
configure.py Outdated Show resolved Hide resolved
@nodejs-github-bot

This comment has been hidden.

Co-authored-by: Mestery <mestery@pm.me>
@nodejs-github-bot
Copy link
Contributor

@nodejs-github-bot nodejs-github-bot commented Jan 1, 2022

@Mesteery Mesteery added the python label Jan 1, 2022
cclauss
cclauss approved these changes Jan 1, 2022
Copy link
Contributor

@cclauss cclauss left a comment •

Approve. Under heavy use, the proposed syntax is a nice performance boost...
% py -3.10 # 100k cycles on an M1 Mac...

Python 3.10.1 (main, Dec  6 2021, 22:18:13) [Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from timeit import timeit
>>> print(timeit("abc += ['d']", "abc = list('abc')", number=100_000))
0.011850042035803199
>>> print(timeit("abc.append('d')", "abc = list('abc')", number=100_000))
0.010260708979330957
>>> print(timeit("abc += ('d', )", "abc = tuple('abc')", number=100_000))
20.874202583101578

configure.py Show resolved Hide resolved
@nodejs-github-bot
Copy link
Contributor

@nodejs-github-bot nodejs-github-bot commented Jan 5, 2022

Commit Queue failed
- Loading data for nodejs/node/pull/41372
✔  Done loading data for nodejs/node/pull/41372
----------------------------------- PR info ------------------------------------
Title      build: use list for mutable retval rather than tuple (#41372)
Author     Rich Trott  (@Trott)
Branch     Trott:python-nit -> nodejs:master
Labels     python, author ready
Commits    2
 - build: use list for mutable retval rather than tuple
 - Update configure.py
Committers 2
 - Rich Trott 
 - GitHub 
PR-URL: https://github.com/nodejs/node/pull/41372
Reviewed-By: Christian Clauss 
Reviewed-By: Tobias Nießen 
------------------------------ Generated metadata ------------------------------
PR-URL: https://github.com/nodejs/node/pull/41372
Reviewed-By: Christian Clauss 
Reviewed-By: Tobias Nießen 
--------------------------------------------------------------------------------
   ℹ  This PR was created on Sat, 01 Jan 2022 17:10:54 GMT
   ✔  Approvals: 2
   ✔  - Christian Clauss (@cclauss): https://github.com/nodejs/node/pull/41372#pullrequestreview-842349446
   ✔  - Tobias Nießen (@tniessen) (TSC): https://github.com/nodejs/node/pull/41372#pullrequestreview-842435129
   ✔  Last GitHub CI successful
   ℹ  Last Full PR CI on 2022-01-01T17:24:05Z: https://ci.nodejs.org/job/node-test-pull-request/41718/
- Querying data for job/node-test-pull-request/41718/
   ✔  Last Jenkins CI successful
--------------------------------------------------------------------------------
   ✔  No git cherry-pick in progress
   ✔  No git am in progress
   ✔  No git rebase in progress
--------------------------------------------------------------------------------
- Bringing origin/master up to date...
From https://github.com/nodejs/node
 * branch                  master     -> FETCH_HEAD
✔  origin/master is now up-to-date
- Downloading patch for 41372
From https://github.com/nodejs/node
 * branch                  refs/pull/41372/merge -> FETCH_HEAD
✔  Fetched commits as 513e9fd0b611..277dc43511ca
--------------------------------------------------------------------------------
[master 30b065eb28] build: use list for mutable retval rather than tuple
 Author: Rich Trott 
 Date: Sat Jan 1 09:05:03 2022 -0800
 1 file changed, 3 insertions(+), 3 deletions(-)
[master 2f121192c8] Update configure.py
 Author: Rich Trott 
 Date: Sat Jan 1 09:23:34 2022 -0800
 1 file changed, 1 insertion(+), 1 deletion(-)
   ✔  Patches applied
There are 2 commits in the PR. Attempting autorebase.
Rebasing (2/4)

Executing: git node land --amend --yes
--------------------------------- New Message ----------------------------------
build: use list for mutable retval rather than tuple

We define retval as a tuple and then replace the tuple by "appending"
items with += but that actually creates a new tuple every time.
Because it is intended to be mutable, use a list instead, then return a
tuple from the function, as it should be immutable outside the function.

PR-URL: #41372
Reviewed-By: Christian Clauss cclauss@me.com
Reviewed-By: Tobias Nießen tniessen@tnie.de

[detached HEAD 1fd4e0a6a4] build: use list for mutable retval rather than tuple
Author: Rich Trott rtrott@gmail.com
Date: Sat Jan 1 09:05:03 2022 -0800
1 file changed, 3 insertions(+), 3 deletions(-)
Rebasing (3/4)
Rebasing (4/4)

Executing: git node land --amend --yes
--------------------------------- New Message ----------------------------------
Update configure.py

Co-authored-by: Mestery mestery@pm.me

PR-URL: #41372
Reviewed-By: Christian Clauss cclauss@me.com
Reviewed-By: Tobias Nießen tniessen@tnie.de

[detached HEAD c7dc8f9f76] Update configure.py
Author: Rich Trott rtrott@gmail.com
Date: Sat Jan 1 09:23:34 2022 -0800
1 file changed, 1 insertion(+), 1 deletion(-)

Successfully rebased and updated refs/heads/master.

ℹ Use --fixupAll option, squash the PR manually or land the PR from the command line.

https://github.com/nodejs/node/actions/runs/1656698573

@nodejs-github-bot nodejs-github-bot merged commit bd92726 into nodejs:master Jan 5, 2022
61 checks passed
@nodejs-github-bot
Copy link
Contributor

@nodejs-github-bot nodejs-github-bot commented Jan 5, 2022

Landed in bd92726

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

5 participants