Calling Conventions

    The native calling convention is designed for fast non-generic calls. It usually uses a specialized signature.

    • LLVM ghosts (zero-length types) are omitted.
    • LLVM scalars and vectors are passed by value.

    The JL Call convention is for builtins and generic dispatch. Hand-written functions using this convention are declared via the macro JL_CALLABLE. The convention uses exactly 3 parameters:

    • - Julia representation of function that is being applied
    • args - pointer to array of pointers to boxes

    Tuples are always represented as C arrays.