aboutsummaryrefslogtreecommitdiff
path: root/src/gemma_api.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gemma_api.cpp')
-rw-r--r--src/gemma_api.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/gemma_api.cpp b/src/gemma_api.cpp
new file mode 100644
index 0000000..77c1d56
--- /dev/null
+++ b/src/gemma_api.cpp
@@ -0,0 +1,33 @@
+// Testing bindings, see README.md and
+// https://www.gnu.org/savannah-checkouts/gnu/guile/docs/docs-2.0/guile-ref/Dynamic-Types.html
+
+#include <stdio.h>
+#include <libguile.h>
+// #include <libguile/boolean.h>
+// #include <libguile/numbers.h>
+
+// extern SCM my_incrementing_function (SCM a, SCM flag);
+
+// extern "C" SCM my_ping(SCM i);
+
+static SCM my_ping(SCM i) {
+ return i;
+}
+
+
+SCM my_incrementing_function (SCM a, SCM flag)
+{
+ SCM result;
+
+ if (scm_is_true (flag))
+ result = scm_sum (a, scm_from_int (1));
+ else
+ result = a;
+
+ return result;
+}
+
+
+extern "C" void init_module() {
+ scm_c_define_gsubr("my-ping", 1, 0, 0, (scm_t_subr)my_ping);
+}