From 4e3410e05a2618509206decb69ba8cbc55154fcd Mon Sep 17 00:00:00 2001 From: IonutParau Date: Sat, 24 May 2025 16:12:55 +0200 Subject: [PATCH] signals --- src/emulator.c | 5 ++--- src/sandbox.lua | 10 +++++++--- src/testLuaArch.c | 4 ++++ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/emulator.c b/src/emulator.c index 5fbcdff..ee06bee 100644 --- a/src/emulator.c +++ b/src/emulator.c @@ -1,6 +1,7 @@ #include #include #include +#include #include "neonucleus.h" #include "testLuaArch.h" @@ -8,9 +9,7 @@ void emulator_debugPrint(void *componentUserdata, void *methodUserdata, nn_compo nn_value msg = nn_getArgument(computer, 0); const char *m = nn_toCString(msg); printf("[DEBUG] %s\n", m); - nn_return(computer, nn_values_cstring(m)); - nn_return(computer, nn_values_cstring(m)); - nn_return(computer, nn_values_cstring(m)); + nn_return(computer, nn_values_integer(strlen(m))); } int main() { diff --git a/src/sandbox.lua b/src/sandbox.lua index d926c43..3eb1946 100644 --- a/src/sandbox.lua +++ b/src/sandbox.lua @@ -1,7 +1,11 @@ print(component.doc("debugPrint", "log")) -local a, b, c = component.invoke("debugPrint", "log", "Absolute cinema") -print(a, b, c) +print(component.invoke("debugPrint", "log", "Absolute cinema")) -computer.pushSignal("stuff", 123, "b", false, nil) +computer.pushSignal("stuff", 123, "a", false, nil) +computer.pushSignal("stuf2", 456, "b", true, "shit") +computer.pushSignal("stuf3", 789, "c", false, -13) print(computer.popSignal()) +print(computer.popSignal()) +print(computer.popSignal()) +print(computer.popSignal()) diff --git a/src/testLuaArch.c b/src/testLuaArch.c index 37e32db..914bef1 100644 --- a/src/testLuaArch.c +++ b/src/testLuaArch.c @@ -355,6 +355,10 @@ void testLuaArch_loadEnv(lua_State *L) { lua_setfield(L, computer, "getTemperature"); lua_pushcfunction(L, testLuaArch_computer_addHeat); lua_setfield(L, computer, "addHeat"); + lua_pushcfunction(L, testLuaArch_computer_pushSignal); + lua_setfield(L, computer, "pushSignal"); + lua_pushcfunction(L, testLuaArch_computer_popSignal); + lua_setfield(L, computer, "popSignal"); lua_setglobal(L, "computer"); lua_createtable(L, 0, 10);