On 6/17/12 1:16 PM, Helmut Eller wrote:
* Helmut Eller [2012-06-09 07:46] writes:
Attached is a prototype implementation to illustrate how this could be done. See the comments in the file for the main points. A more polished implementation would probably change more places then MAKE-XEP-LAMBDA.
[snip]
I could use a bit of feedback regarding the names. Currently I use "typed calling convention" resp. "typed entry point" and for the regular entry point I use "external entry point" or XEP. For the :typed-no-xep case the naming is a bit misleading as the typed entry point is the only entry point and in the IR has the lambda-kind set to :external, i.e. the XEP is a typed entry. Is there a better word for it?
Sorry that I still haven't had a chance to look at your code or even play with it. I find the :typed and :typed-no-xep hard to remember, though. Could it be :unboxed instead? That makes it pretty clear that you're using calling convention that supports unboxed args. Also, how complex is it to keep track of this information so that the compiler can make the appropriate call? Oh, and is there a use case you're interested in where block compilation doesn't do what you want? (In my particular, hypothetical use case, I can see doing this with f2cl'ed code where the preferred technique is putting one Fortran function per file. But this seems to rather uncommon but would be very useful.) Ray