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

3 participants