Improve superpmi.py scripting#42238
Merged
BruceForstall merged 3 commits intodotnet:masterfrom Sep 18, 2020
Merged
Conversation
Contributor
Author
|
@kunalspathak Here's my current set of changes. I need to do a little more testing, update the superpmi.md documentation, and write a summary of the changes for the commit message. |
am11
reviewed
Sep 15, 2020
src/coreclr/scripts/superpmi.py
Outdated
Member
There was a problem hiding this comment.
micro nit
Suggested change
| return_code = 1; | |
| return_code = 1 |
Contributor
Author
There was a problem hiding this comment.
That's what happens when you let a C programmer touch Python :)
src/coreclr/scripts/superpmi.py
Outdated
Member
There was a problem hiding this comment.
micro nit:
Suggested change
| if self.coreclr_args.log_file != None: | |
| if self.coreclr_args.log_file is not None: |
src/coreclr/scripts/superpmi.py
Outdated
Member
There was a problem hiding this comment.
Suggested change
| # 3. A copy of coredistools. If, when doing asm diffs, a copy of the coredistools | |
| # 3. A copy of coredistools. If, when doing asm diffs, a copy of the coredistools |
1. Update Azure storage collections location to a new location where we have appropriate permissions to manage the data. 2. Update the Azure storage upload/download implementation to the current version of the Azure Python API. 3. Add JIT-EE interface GUID to path of Azure stored collections. When downloading collections, use the appropriate collection for your JIT-EE interface GUID. This is all done by adding a "-printJITEEVersion" option to the SuperPMI MCS tool. Thus, to determine the JIT-EE version, we assume that MCS is built with the same version as the JIT (which will be true in a normal build), and that MCS is available and able to be run -- this typically requires a Core_Root location be available. The user can specify the JIT-EE version explicitly with the new `-jit_ee_version` argument. 4. Simplify the Azure storage format: there is no longer a JSON mapping of name to MCH file. Instead, there is just a directory full of files. By default, all files are downloaded and used for replay/asmdiffs, by that can be filtered with the new `-filter` argument. 5. The `-mch_files` (previously `-mch_file`) argument used by `replay`, `asmdiffs`, and `upload`, now accepts a list of directories and files, and for each directory all MCH files included in that directory, recursively, are used. 6. Also upload MCT (TOC) files with the MCH files. 7. A `--force_download` argument is added to allow forcing re-download of the Azure collections to the local cache. 8. PMI.dll is also looked for on the PATH before downloading a cached version from Azure storage. 9. Some of the lesser-used arguments were renamed to simplify them. 10. Various bugs were fixed and code simplification/reorganization was done. E.g., some of the commonality between replay and asmdiffs was factored out. 11. More code documentation was added. 12. The superpmi.md documentation was re-written and simplified.
fab1f22 to
5cc1845
Compare
Contributor
Author
|
This is ready for review. @kunalspathak PTAL |
Contributor
Author
|
Btw, none of this is used in the product, and there are a lot of changes, so you can choose how detailed a review you think is warranted. |
jashook
approved these changes
Sep 18, 2020
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
where we have appropriate permissions to manage the data.
to the current version of the Azure Python API.
collections. When downloading collections, use the appropriate
collection for your JIT-EE interface GUID. This is all done
by adding a "-printJITEEVersion" option to the SuperPMI
MCS tool. Thus, to determine the JIT-EE version, we assume
that MCS is built with the same version as the JIT (which
will be true in a normal build), and that MCS is available
and able to be run -- this typically requires a Core_Root
location be available. The user can specify the JIT-EE
version explicitly with the new
-jit_ee_versionargument.a JSON mapping of name to MCH file. Instead, there is just
a directory full of files. By default, all files are downloaded
and used for replay/asmdiffs, by that can be filtered with
the new
-filterargument.-mch_files(previously-mch_file) argument usedby
replay,asmdiffs, andupload, now accepts a listof directories and files, and for each directory all MCH
files included in that directory, recursively, are used.
--force_downloadargument is added to allow forcingre-download of the Azure collections to the local cache.
a cached version from Azure storage.
E.g., some of the commonality between replay and asmdiffs was
factored out.