Skip to content

[Python3] Make update-checkout work with Python 2 & 3 #33081

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

Merged
merged 5 commits into from
Jul 24, 2020

Conversation

tbkka
Copy link
Contributor

@tbkka tbkka commented Jul 23, 2020

As usual, Python 3 is less forgiving:

  • It will pickle global functions, but not local closures

  • Multiprocessing requires the top-level code to only run in the main process

tbkka added 4 commits July 21, 2020 16:30
Three issues addressed here:

1. Dependency on dictionary iteration order

 CharacterProperties.swift.gyb iterated a dictionary to produce its output.
 Changed this to a list of tuples to ensure the order is predictable.

2. Python3 `map` returns an iterator, not a list

 Changed a bunch of `map` calls to `list(map(...))` to ensure the result is a list

3. Python3 `int()` expects a string, won't accept a list of characters

 Added a concatenation step that is effectively a no-op on Python2
Python3 doesn't like to pickle local functions, so make the multiprocessing
initialization function be global.

Python3 multiprocessing also seems to require conditional execution of the
top-level code.  TBH, I'm not entirely sure why Python 2 didn't need this.
@tbkka
Copy link
Contributor Author

tbkka commented Jul 23, 2020

@swift-ci Please test

@tbkka
Copy link
Contributor Author

tbkka commented Jul 23, 2020

@swift-ci Please test Windows

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - aa8bb69

@tbkka
Copy link
Contributor Author

tbkka commented Jul 23, 2020

@swift-ci Please clean test macOS

@tbkka
Copy link
Contributor Author

tbkka commented Jul 23, 2020

@swift-ci Please test Linux

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - aa8bb69

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - aa8bb69

@tbkka
Copy link
Contributor Author

tbkka commented Jul 23, 2020

@swift-ci Please clean test macOS

@tbkka
Copy link
Contributor Author

tbkka commented Jul 24, 2020

@swift-ci Python lint

@tbkka tbkka merged commit 3459fe8 into swiftlang:master Jul 24, 2020
@AnthonyLatsis AnthonyLatsis added the update-checkout Area → utils: the `update-checkout` script label Sep 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
update-checkout Area → utils: the `update-checkout` script
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants