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

Bind and switch (and other improvements) #136

Merged

Conversation

countvajhula
Copy link
Collaborator

@countvajhula countvajhula commented Dec 15, 2023

Summary of Changes

This is our WIP from the most recent Qi meeting, including:

  • a binding specification for if (and therefore switch) that allows conditions to bind clauses (see: the ol' bind and switch)
  • remove fixed-point finding in deforestation pass as a single pass is sufficient
  • more unit tests for bindings
  • starter tests for the expander
  • use the de-expander to improve more error messages

Public Domain Dedication

  • In contributing, I relinquish any copyright claims on my contribution and freely release it into the public domain in the simple hope that it will provide value.

@countvajhula countvajhula marked this pull request as ready for review December 15, 2023 23:39
@countvajhula
Copy link
Collaborator Author

countvajhula commented Dec 16, 2023

FYI @michaelballantyne @dzoep I'm merging these changes which are mostly what we talked about yesterday. One concern is that the "de-expander" is basically matching (but not validating) the whole core language in order to address #134 . But in flow.rkt where we need this, it feels like we could already have the unparsed surface syntax, but I'm not sure if there is a way to just keep it around in addition to passing it to closed-floe expander. Of course, when "get-surface-syntax" is available from syntax-spec that would also solve this.

P.S. No action needed, enjoy your vacation!

@countvajhula countvajhula merged commit 4fa02e2 into drym-org:lets-write-a-qi-compiler Dec 16, 2023
5 of 6 checks passed
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

Successfully merging this pull request may close these issues.

1 participant