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

Write direct Uniplate instances for performance #163

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

raehik
Copy link
Collaborator

@raehik raehik commented Jul 28, 2021

(building, so may use for viewing tests)

@raehik raehik force-pushed the uniplate-direct branch 3 times, most recently from ad3ad5c to a6ca268 Compare August 16, 2021 11:46
@raehik
Copy link
Collaborator Author

raehik commented Aug 16, 2021

I've written instances for all combinations between ProgramFile and Expression. All tests pass and I've confirmed that the direct instances are being used. Now I need to check performance and go through the possibly unlawful patterns I've written. In short, there are ways to "promote" from

  • Expr->Stmt
  • Stmt->Block
  • Block->ProgramUnit

but some don't appear likely, or intended, or allowed during parsing. So I figured "lying" to Uniplate and stating that those promotions weren't possible would potentially improve performance. I want to know if there's any real gain for the more questionable lies & generally clarify behaviour.

@raehik raehik changed the title Uniplate direct Write direct Uniplate instances for performance Aug 16, 2021
@raehik raehik added the stalled label May 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant