Skip to content

Support for explicit regions in types#125

Merged
melsman merged 8 commits intomasterfrom
explicit-regions-in-types
May 28, 2023
Merged

Support for explicit regions in types#125
melsman merged 8 commits intomasterfrom
explicit-regions-in-types

Conversation

@melsman
Copy link
Copy Markdown
Owner

@melsman melsman commented Apr 14, 2023

This PR deals with issue #124 and implements a leftover from #34, namely to provide support for region annotations in types:

ty ::= ...
       | t`r | {lab:ty,...,lab:ty}`r
       | (ty * ty)`r | (ty -> ty)`r

Here is a more detailed implementation task list:

  • Extend Topdec.grm to support the extended grammar and extend DecGrammar.sml accordingly.
  • Allow for explicit regions to appear in semantic types (unification should propagate explicit region information) by changing code in StatObject.sml.
  • Extend ElabDec.sml to insert explicit regions into constructed semantic types.
  • Extend CompileDec to compile region annotations in types into region annotations in LambdaExp types.
  • Make sure that OptLambda preserves the type annotations when performing optimisations, which can be tricky.
  • Many tests in test/explicit_regions/.

@melsman melsman self-assigned this Apr 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant