【问题标题】:The meaning of jl_value_t in julia source codejulia源码中jl_value_t的含义
【发布时间】:2014-02-16 13:14:48
【问题描述】:

我正在尝试找到有关 Julia 源代码的方法,即codegen.cpp。他们使用引用自身的结构jl_value_t

#define JL_DATA_TYPE \
    struct _jl_value_t *type;

typedef struct _jl_value_t {
    JL_DATA_TYPE
} jl_value_t;

在eclipse中调试源代码时,这似乎没有包含任何有用的信息,但是它经常被使用。我应该如何解释这个结构?它包含什么信息?

【问题讨论】:

    标签: eclipse compilation julia


    【解决方案1】:

    对我来说,用 C 编写动态代码似乎是一个(肮脏的)技巧。所有装箱的 Julia 值都可以有自己的内存布局,只要它们以指向类型的指针开头,这样 C代码可以在访问类型定义的任何其他字段之前检查类型。

    有一些方便的函数可以检查jl_value_t* 可能指向的一些常见类型。 (例如jl_is_type(v)jl_is_long(v)jl_is_symbol(v)jl_is_typevar(v)jl_is_bool(v))。当您知道指向的对象的类型时,您可以将指针从src/julia.h 转换为正确的结构。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-02
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 2017-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多