Skip to content

FFI

Given a file named “pen.json” with:

{
"type": "library",
"dependencies": {}
}

Import a foreign function of native calling convention

Section titled “Import a foreign function of native calling convention”

Given a file named “Foo.pen” with:

import foreign g \(number) number
f = \(x number) number {
g(x)
}

When I run pen build

Then the exit status should be 0.

Import a foreign function of the C calling convention

Section titled “Import a foreign function of the C calling convention”

Given a file named “Foo.pen” with:

import foreign "c" g \(number) number
f = \(x number) number {
g(x)
}

When I run pen build

Then the exit status should be 0.

Given a file named “Foo.pen” with:

foreign f = \(x number) number {
x
}

When I run pen build

Then the exit status should be 0.

Export a foreign function of the C calling convention

Section titled “Export a foreign function of the C calling convention”

Given a file named “Foo.pen” with:

foreign "c" f = \(x number) number {
x
}

When I run pen build

Then the exit status should be 0.