UQ-PAC / aslp

Partial evaluator for Arm's Architecture Specification Language (ASL)
Other
6 stars 2 forks source link

Offline Improvements #71

Closed ncough closed 3 months ago

ncough commented 3 months ago

A series of improvements to the offline lifter:

katrinafyi commented 3 months ago

Looks useful! I have small questions.

What does the install alias do? Was there something missing before?

For the changes to RemoveUnused, would these usually be handled by the partial evaluation? Do these constants only appear after the online step?

Edit: Does the dune handle generating the offline lifter before running coverage tests, or does this have to be done manually?

ncough commented 3 months ago

What does the install alias do? Was there something missing before?

My understanding is this triggers dune's integration with opam, generating the necessary files for dune install to succeed. Without it, I get an error along the lines of Error: The following <package>.install are missing: _build/default/asli.install.

For the changes to RemoveUnused, would these usually be handled by the partial evaluation? Do these constants only appear after the online step?

These changes are more specific to the offline implementation, where expressions are reduced down in post-passes and the control flow implications haven't been considered. There are other functions in the offline process that only go through these post-passes, not the full partial evaluation, and these changes help there too.

Does the dune handle generating the offline lifter before running coverage tests, or does this have to be done manually?

This is still done manually, I need to move a few things around before this can be done cleanly.