在C中获取特定的Julia方法

时间:2017-07-31 15:08:53

标签: julia

如何在Julia的C API中访问Julia函数的方法?结构jl_method_instace_tjl_method_t我认为它们是C级别Julia方法的容器,但是如何构造其中一个呢?如何才能获得抽象函数的特定方法。

1 个答案:

答案 0 :(得分:1)

我有一个部分答案。您可以通过调用“which”函数来获取特定方法。

julia> f = which(+, (Int, Int))
+{T<:Union{Int128,Int16,Int32,Int64,Int8,UInt128,UInt16,UInt32,UInt64,UInt8}}(x::T, y::T) at int.jl:32

julia> typeof(f)
Method

我不知道如何“unbox”(不确定术语),相应的jl_value_t *为C侧的f得到一个jl_method_t *。但我认为这会让你走到一半。

我怀疑这是你能做的最好的事情,因为专业化似乎只有在函数已被调用(因此编译了Jit)的情况下才存在,对于那组参数。

我不确定jl_method_instance_t是什么。