So I tried running test.n

C:\Dev\neko\neko-1.1-src\bin>nekovm.exe test.n
The virtual machine is working !
Calling a function inside std library...
Called from tools/test.neko line 3
Uncaught exception - [EMAIL PROTECTED]

By inserting a printf I determined that load_primitive is finding
test() (i.e., test__0).

Any hints where to look next?

Hello,
This exception is raised when a primitive is returning the NULL value.
In libs/std/others.c   test() is returning alloc_string....

So there is two possibilities :

a) alloc_string is returning NULL, which it shouldn't unless there is some linking problem (it's function from the C Neko API, so std.ndll should dynamicly load it from neko.dll)

b) alloc_string and then test() are returning a correct value but then interpreter somehow lose it. This test occurs in the DoCall macro in vm/interp.c after we return from a C function call.

Maybe one thing that can cause a problem are the specific registers assigned for GCC in vm/interp.c. Try to disable them and recompile the VM. It's possible that it's not working correctly under MinGW.

Nicolas

---
Neko : One VM to run them all

Reply via email to