Hmmm, code_typed() is close to what I want to do, but that requires me to
pass in the types of the function directly, which isn't exactly what I
want; I'm not married on putting a macro in front of a function definition;
I'm fine with just having a function object that I pass to another
function, or a macro, or something.  But ideally, I'd like to be able to
use the type annotations in the function definition to be able to infer the
argument types.  (I'm fine with throwing an error if types aren't specific
enough; this is for making a function that should be callable from C code
after all, so being stricter than normal is fine).

The idea behind that is that I would love to eventually be able to have a
function foo, which I can then construct a `block` object for, without the
calling function needing to worry about what types foo takes in or gives
out.
-E


On Sun, Jun 29, 2014 at 1:39 PM, Leah Hanson <[email protected]> wrote:

> So, you're trying to do this before/without actually having the method
> definition evaluate? (These things are readily available from code_typed's
> output, but you'd (I think) need to define the method first.)
>
> -- Leah
>
>
> On Sun, Jun 29, 2014 at 3:21 PM, Elliot Saba <[email protected]>
> wrote:
>
>> I'm having trouble figuring out how to get a function's argument types
>> from a macro.
>>
>> Specifically, I'm playing around with calling functions that expect
>> blocks as arguments from Julia.  I've got a simple case working, (which is
>> awesome) but it hard-codes knowledge of the block's signature, and I'd like
>> to dynamically generate that.  Ideally, I'd be able to do something like:
>>
>> block_struct = @block function( arg1::Float64 )
>>     ...
>>     return foo::Int64
>> end
>>
>> And the @block macro would be able to figure out the types of arg1 and
>> foo.  Is such a thing possible?  I need these types so that I can construct
>> a description of this function to pass off to the objective-c runtime,
>> allowing for objective-c code (And modern apple C++ code) to callback to
>> julia.  :)
>>  -E
>>
>
>

Reply via email to