eclipse - julia源码中jl_value_t的含义

标签 eclipse compilation julia

我试图找到解决 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 中调试源代码时,这似乎不包含任何有用的信息,但是它经常被使用。我应该如何解释这个结构?它包含哪些信息?

最佳答案

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

有一些方便的函数可以检查一些常见的类型 a 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 的正确结构体。 .

关于eclipse - julia源码中jl_value_t的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21811577/

相关文章:

c++ - OpenCV:使用 imwrite() 函数时无法编译

julia - Julia 中高效的逐元素矩阵运算

julia - 将文本文件存储为二进制文件以加快读/写速度

julia - 模拟弹跳球?

Java代码-多边形的面积

java - 为什么在启动运行配置时 Eclipse 会以 "Verifying launch attributes..."状态挂起 57%?

eclipse - 可以 move Eclipse的tmp目录吗?

java - 运行 Axis2 Web 服务客户端在客户端和服务器端生成错误

代码在kali上编译后无法运行

linux - cifs mount 导致进程进入不间断 sleep