runtimeverification / k

K Framework Tools 7.0
BSD 3-Clause "New" or "Revised" License
430 stars 142 forks source link

Tracking MX project performance fixes #4283

Open Baltoli opened 2 months ago

Baltoli commented 2 months ago

@jberthold and @virgil-serbanuta are working on optimizing symbolic execution of the MX- family of projects. Part of this work will entail making changes at the K level to improve performance. We'd ideally like to learn from this process and perhaps write up some guides on writing K code that performs well from the get-go.

Please log any MX PRs that are in aid of improved performance here:

jberthold commented 2 months ago

https://github.com/runtimeverification/mx-backend/pull/108 addresses a problem with variable subsorting: When a rule with variable A:SortA is matched against a configuration that has a variable B:SortB and SortA < SortB, the match will be conditional/indeterminate (causing an abort in booster, and matching with further rules/branching in kore-rpc). This is the correct behaviour, but in this particular case, the variable B was only introduced temporarily (programmatically in the python client code) to temporarily abstract unnecessary payload. It is easy to make this mistake of picking too general a sort when abstracting. pyk will insert the required injections SortA -> SortB automatically so the fix was easy.

jberthold commented 1 month ago

Some book-keeping of past PRs related to mx-backend performance:

jberthold commented 2 weeks ago

Recent PRs