AnyMath 文档

调用约定

Julia使用三个调用约定来实现四个不同的目的:

姓名 前缀 目的

土着人

朱莉娅_

通过专用签名加快速度

JL呼叫

jlcall公司_

泛型调用的包装器

JL呼叫

jl_

建造工程

C ABI

jlcapi_

可从C调用的包装器

朱莉娅本地呼叫公约

本机调用约定是为快速非泛型调用而设计的。 它通常使用专门的签名。

*LLVM幽灵(零长度类型)被省略。 *LLVM标量和向量按值传递。 *LLVM聚合(数组和结构)通过引用传递。

小的返回值作为LLVM返回值返回。 一个大的返回值是通过"结构返回"(秘书处)约定,其中调用者提供指向返回槽的指针。

作为齐次元组的参数或返回值有时表示为LLVM向量而不是LLVM数组。

JL呼叫约定

JL调用约定适用于builtins和generic dispatch。 使用此约定的手写函数通过宏声明 JL_可回收. 约定正好使用3个参数:

* F -正在应用的函数的Julia表示 * 阿格斯 -指向框的指针数组的指针 * 纳格斯 -数组的长度

返回值是指向框的指针。

C ABI

C ABI包装器允许从C调用Julia。包装器使用本机调用约定调用函数。

元组始终表示为C数组。