Category:Sparkling: Difference between revisions

Content added Content deleted
No edit summary
Line 77: Line 77:
== Extensibility ==
== Extensibility ==


Users can write and load native extension functions with the aid of the Sparkling C API. Extension functions must be written in C (or in C++ with external C linkage), and they must follow a predefined signature, which makes it possible for the Sparkling virtual machine to communicate with such a function. Function arguments are passed in an array of Sparkling value ("SpnValue") objects, and the return value of a function - as seen by a Sparkling script - should be moved into place using a pointer to another SpnValue. The return value of a native function determines whether the virtual machine
Users can write and load native extension functions with the aid of the Sparkling C API. Extension functions must be written in C (or in C++ with external C linkage), and they must follow a predefined signature, which makes it possible for the Sparkling virtual machine to communicate with such a function. Function arguments are passed in an array of Sparkling value ("SpnValue") objects, and the return value of a function - as seen by a Sparkling script - should be moved into place using a pointer to another SpnValue. The return value of a native function determines whether the virtual machine continues the execution of a program (zero) or raises a runtime exception (non-zero).


== Debugging ==
== Debugging ==