Skip to content
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

Notes on cmx loading and saving in Lambda_to_flambda #558

Open
lthls opened this issue Jul 13, 2021 · 0 comments
Open

Notes on cmx loading and saving in Lambda_to_flambda #558

lthls opened this issue Jul 13, 2021 · 0 comments

Comments

@lthls
Copy link

lthls commented Jul 13, 2021

  • Basic work: add a third kind of cmx files to cmx_format (in addition to the Closure and Flambda ones), save them in classic mode, and load them during Lambda_to_flambda in classic mode. This also means some saving and restoring of table entries, and dealing correctly with packs; the simplest way would make the Flambda_cmx_format.t type parametric, with one field containing either the approximations for Lambda_to_flambda or the full information from simplify. This introduces one extra indirection, but otherwise should allow us to reuse all of the tricky parts of Flambda_cmx_format. Overall, not a great deal of code to patch but without prior knowledge about which code needs to be used this could take several days at least.
  • One way compatibility: this means a function creating typing environments from approximations. This should not be too hard, one or two days for someone with a good knowledge of the type-related code, perhaps up to a week for someone less familiar with that part of the code.
  • Two way compatibility: generate approximations from typing environments. This could be done either on import, or systematically on export (to reduce the cost of loading in classic mode). This requires a deeper understanding of the types, but assuming that no unexpected problems show up it could be done in a week or so for someone already familiar with the code.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant