Skip to content

Conversation

@markshannon
Copy link
Member

@markshannon markshannon commented Jan 13, 2020

Quoting bpo 39320:

We can replace the complex bytecodes used in unpacking with simpler, more focused ones.
Specifically the collection building operations:

  • BUILD_LIST_UNPACK
  • BUILD_TUPLE_UNPACK
  • BUILD_SET_UNPACK
  • BUILD_TUPLE_UNPACK_WITH_CALL
    can be replaced with simpler, and self-explanatory operations:
  • LIST_TO_TUPLE
  • LIST_EXTEND,
  • SET_UPDATE

This PR implements those changes. (The proposed changes to ** unpacking will be implemented in another PR).

https://bugs.python.org/issue39320

@markshannon markshannon force-pushed the handle-unpacking-in-compiler branch 2 times, most recently from 1f851c4 to 5dbab06 Compare January 15, 2020 15:43
@markshannon markshannon force-pushed the handle-unpacking-in-compiler branch from 5dbab06 to f920034 Compare January 15, 2020 16:31
@markshannon markshannon added the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Jan 22, 2020
@bedevere-bot
Copy link

🤖 New build scheduled with the buildbot fleet by @markshannon for commit f920034 🤖

If you want to schedule another build, you need to add the ":hammer: test-with-buildbots" label again.

@bedevere-bot bedevere-bot removed the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Jan 22, 2020
@markshannon
Copy link
Member Author

The PPC64 Fedora failure is a pre-existing problem.

@markshannon markshannon merged commit 13bc139 into python:master Jan 23, 2020
@markshannon markshannon deleted the handle-unpacking-in-compiler branch January 23, 2020 09:25
shihai1991 pushed a commit to shihai1991/cpython that referenced this pull request Jan 31, 2020
* Add three new bytecodes: LIST_TO_TUPLE, LIST_EXTEND, SET_UPDATE. Use them to implement star unpacking expressions.

* Remove four bytecodes BUILD_LIST_UNPACK, BUILD_TUPLE_UNPACK, BUILD_SET_UNPACK and  BUILD_TUPLE_UNPACK_WITH_CALL opcodes as they are now unused.

* Update magic number and dis.rst for new bytecodes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants