-
Notifications
You must be signed in to change notification settings - Fork 10
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
Geb should use VampIR higher-order functions #89
Comments
As far as I understand, VampIR higher-order functions are compile-time only, so they cannot non-trivially interact with field elements. Which means that while this optimisation can be used in the majority of cases, it cannot be used in general. I think that's what you mean by the "Lisp-style quote/unquote" because how otherwise would you compile e.g. |
Yes -- I believe this is all correct. |
Note: see the discussions in #105 for some things to remember when implementing this (in particular #105 (comment)). |
In fact, those discussions make me wonder whether we should use VampIR higher-order functions (as suggested in this issue) at all, or just closure-convert what we can and quote/interpret what we can't within Geb itself before compiling to VampIR (via |
Now that VampIR has higher-order functions, Geb should compile to them, as that should make them much more efficient than first-order functions translated from higher-order functions via Geb's currying/distributivity equivalence. (The equivalence will still be used to provide Lisp-style
quote
/unquote
; it just won't be needed for higher-order function execution.)@murisi provided examples of how to use VampIR higher-order functions:
https://github.com/anoma/vamp-ir/blob/main/tests/funcs.pir
The text was updated successfully, but these errors were encountered: