# Pastebin fbud7nyO ❯ cat main.go package main import "C" import ( "fmt" "math" "sort" "sync" ) var count int var mtx sync.Mutex //export Add func Add(a, b int) int { return a + b } //export Cosine func Cosine(x float64) float64 { return math.Cos(x) } //export Sort func Sort(vals []int) { sort.Ints(vals) } //export Log func Log(msg string) int { mtx.Lock() defer mtx.Unlock() fmt.Println(msg) count++ return count } func main() {} // See awesome.go GitHub ❯ go build -o test.so -buildmode=c-shared main.go ❯ raku -e 'use NativeCall; sub Add(int64, int64 --> int64) is native("./test.so") {*}; say Add 1, 2' 3