No description, website, or topics provided.
Switch branches/tags
Clone or download
yuyichao Automatically convert arguments if they are of the wrong type.
This (and ignoring return value with `Cvoid`) has been the plan all along....
The new behavior is also closer to that of the new `cfunction`
(i.e. arguments are converted during `ccall`).
Latest commit c6222cc Aug 11, 2018

FunctionWrappers.jl: Type stable and efficient wrapper of arbitrary functions

Build Status Build status

Proof of principle implementation of JuliaLang/julia#13984.


  1. Does not handle more than 128 arguments without jlcall wrapper

    128 is an arbitrary limit. Should be high enough for all practical cases

  2. Does not support vararg argument types

  3. Wrapper Object cannot be serialized by dump.c and therefore the precompilation of FunctionWrappers is done using a runtime branch and by making the wrapper type mutable.

Compared to @cfunction

This does not require LLVM trampoline support, which is not currently supported by LLVM on all the architectures julia runs on (JuliaLang/julia#27174). Other than this issue @cfunction should cover all of the use cases.