Edi Weitz edi@agharta.de writes:
Here's a variant of my recent patch. Even uglier, but now the caching and creation of funcallables happens at macro-expansion time already. Don't know if this is still sane, gotta go to bed now... :)
As you may have noticed, I've pushed your patch. However, I did some more testing afterwards and noticed that it didn't work very well. For some reason related to RT the foreign-funcall tests didn't reflect this but I pushed a new test (FUNCALL.INT.2) that failed.
I fixed it by having the %foreign-funcall expansion call get-foreign-funcallable at run-time and also at macroexpansion time. Let me know if you have a better idea.
Anyway, thanks for your patch!