You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Recent experiment of deforestation in Qi (see https://racket.discourse.group/t/todays-qi-meeting-notes/2323 for the context) points out that define-inline can be quite useful in a higher-order combinatory context, where the functions (serving as combinators) are always expected to be inlined and further optimized. There are things that it can do better:
The support for case-lambda is lacking;
Variable-reference case cannot be inlined.
I’m interested in looking into this at some point, so this issue serves as a note.
The text was updated successfully, but these errors were encountered:
For references as a variable, are you thinking of having it inline the lambda with the body? An alternative would be to have an expansion-time API that could get the function definition, that Qi could use as needed.
Yes, that’s the straightforward way (“inline the lambda with the body”). Ideally, the change should not change the behavior of existing code, say by requiring an #:aggressive directive (and the programmer’s care!). Other approaches are welcome, though.
Recent experiment of deforestation in Qi (see https://racket.discourse.group/t/todays-qi-meeting-notes/2323 for the context) points out that
define-inline
can be quite useful in a higher-order combinatory context, where the functions (serving as combinators) are always expected to be inlined and further optimized. There are things that it can do better:case-lambda
is lacking;I’m interested in looking into this at some point, so this issue serves as a note.
The text was updated successfully, but these errors were encountered: