-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
[move-decompiler] Model import from binary and basic decompiler setup #14964
Conversation
⏱️ 2h 28m total CI duration on this PR
|
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #14964 +/- ##
===========================================
- Coverage 71.5% 60.2% -11.4%
===========================================
Files 2409 859 -1550
Lines 490368 211785 -278583
===========================================
- Hits 350832 127576 -223256
+ Misses 139536 84209 -55327 ☔ View full report in Codecov by Sentry. |
10c6304
to
dc2d715
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Spotted 2 obvious issues. Will look more later.
third_party/move/move-model/src/builder/binary_module_loader.rs
Outdated
Show resolved
Hide resolved
third_party/move/move-model/src/builder/binary_module_loader.rs
Outdated
Show resolved
Hide resolved
third_party/move/move-model/src/builder/binary_module_loader.rs
Outdated
Show resolved
Hide resolved
third_party/move/move-prover/tests/sources/functional/unused_schema.v2_exp
Outdated
Show resolved
Hide resolved
This PR closes the loop on the needed components for the decompiler and sets up basic plumbing for the command line tool. - A major addition is a way to import Move bytecode into the move-model. Until now, this wasn't directly possible. The new module `binary_module_loader` now takes care of this. The code is mostly complete, what is missing is a way to analyze metadata to synthesize attributes. (Future PRs.) - The crate `move-decompiler` has been added, which glues the various parts which have been created in the last few PRs into a command line tool. - Some tests have been added together with the decompiler, which is also a good way to test the new `binary_module_loader`, by replicating parts of the move-stdlib. However, the decompiler isn't functional yet, the code isn't correct in multiple instances. This has to be fixed in subsequent PRs, until the tests in `move-decompiler` allow to compile and executed decompiled code.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
✅ Forge suite
|
✅ Forge suite
|
✅ Forge suite
|
Description
This PR closes the loop on the needed components for the decompiler and sets up basic plumbing for the command line tool.
binary_module_loader
now takes care of this. The code is mostly complete, what is missing is a way to analyze metadata to synthesize attributes. (Future PRs.)move-decompiler
has been added, which glues the various parts which have been created in the last few PRs into a command line tool.binary_module_loader
, by replicating parts of the move-stdlib. However, the decompiler isn't functional yet, the code isn't correct in multiple instances. This has to be fixed in subsequent PRs, until the tests inmove-decompiler
allow to compile and executed decompiled code.How Has This Been Tested?
Tests in
move-decompiler
Type of Change
Which Components or Systems Does This Change Impact?