如何在Julia的C API中访问Julia函数的方法?结构jl_method_instace_t
和jl_method_t
我认为它们是C级别Julia方法的容器,但是如何构造其中一个呢?如何才能获得抽象函数的特定方法。
答案 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是什么。