From 10d264572460c9e4bac22ae73674e478d46f2308 Mon Sep 17 00:00:00 2001 From: Pjotr Prins Date: Fri, 27 Jun 2025 12:27:16 +0200 Subject: First working Guile binding --- premake5.lua | 5 +++++ src/gemma_api.cpp | 18 +++++++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/premake5.lua b/premake5.lua index 4502e74..c5cf597 100644 --- a/premake5.lua +++ b/premake5.lua @@ -13,6 +13,11 @@ -- Run -- -- LD_LIBRARY_PATH=$GUIX_ENVIRONMENT/lib ./build/bin/Debug/PanGemma +-- +-- Next we start using the API from guile with +-- +-- env LD_LIBRARY_PATH=./build/bin/Debug/:$GUIX_ENVIRONMENT/lib guile +-- (load-extension "libgemmalib" "init_module") workspace "PanGemma" configurations { "Debug", "Release" } diff --git a/src/gemma_api.cpp b/src/gemma_api.cpp index 618f283..77c1d56 100644 --- a/src/gemma_api.cpp +++ b/src/gemma_api.cpp @@ -3,10 +3,17 @@ #include #include -#include -#include +// #include +// #include + +// extern SCM my_incrementing_function (SCM a, SCM flag); + +// extern "C" SCM my_ping(SCM i); + +static SCM my_ping(SCM i) { + return i; +} -extern SCM my_incrementing_zig_function (SCM a, SCM flag); SCM my_incrementing_function (SCM a, SCM flag) { @@ -19,3 +26,8 @@ SCM my_incrementing_function (SCM a, SCM flag) return result; } + + +extern "C" void init_module() { + scm_c_define_gsubr("my-ping", 1, 0, 0, (scm_t_subr)my_ping); +} -- cgit v1.2.3