mirror of
https://github.com/Nexoniarz/Finch.git
synced 2026-11-03 08:54:25 +00:00
export fn and finch build --shared: libraries a C program loads (game scripts)
export fn name(...) is a C function by that name (numbers, bool, char, pointers in and out). --shared builds lib<name>.so / <name>.dll with no main. finch_module_on_fatal(handler) lets the host take runtime errors over (longjmp out) instead of the process exiting. tests/shared.sh: a C host loads one, calls it and survives an index error. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
f9838dfe03
commit
68637a35a7
16 changed files with 148 additions and 10 deletions
22
tests/shared/mod.fch
Normal file
22
tests/shared/mod.fch
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
import "host.h"
|
||||
|
||||
fn greet(str who) -> str {
|
||||
return "hello " + who
|
||||
}
|
||||
|
||||
export fn add(int a, int b) -> int {
|
||||
return a + b
|
||||
}
|
||||
|
||||
export fn hello(ptr[char] name) {
|
||||
host_print(greet(str(name)))
|
||||
}
|
||||
|
||||
export fn crash(int i) -> int {
|
||||
xs := [1, 2, 3]
|
||||
return xs[i]
|
||||
}
|
||||
|
||||
export fn is_even(int n) -> bool {
|
||||
return n % 2 == 0
|
||||
}
|
||||
Loading…
Reference in a new issue