Skip to content

Generated functions no longer supported in 1.12 #772

@willow-ahrens

Description

@willow-ahrens

Because 1.12 is stricter about definition order, generated functions are no longer a supported approach for finch staging. Currently, I've removed it from the staging approach. I see the following options:

  1. Fix the import order, etc. until generated functions work. I don't see a huge reason to do this, it's a high maintenance burden to keep generated functions working and I don't see many volunteers to figure this one out.
  2. Leave things as-is. It's somewhat confusing that we would still push code through the type domain in this case, but it's not the end of the world.
  3. simplify the staging/virtualization mechanism. We could completely delete the concept of "program instances". This would be a good thing for code clarity, and may also improve compile times. It's a lot of work though

For options 2 and 3, it should also be possible to add runtime-generated-functions as a low-overhead option when there are no closures in the generated body, so there may still be an easy way to get a low-overhead approach. It's unclear if this is worth the additional complexity and whether we could really reduce the calling overhead.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions