Native Function Loader
Implemented in path ./src/vm_core/native
, the native functions allow C0VM to do many interesting and useful things (like printing to stdout
!).
This documentation will provide detailed explanation on how we transcribe C Native Functions works into TypeScript. We will also show the native functions we planned to implement and our progress on them.
Native Functions
Native functions are lower-level functions that is hard to implement using the C0 code itself / is more efficient if implemented using native code.
In C0VM, there are several categories of the native functions, listed as below:
Status Code:
🟢 Supported
🟡 Not Implemented Yet
🔴 No Plan to Implement
Category Name | Explanation | Status |
---|---|---|
Command Line Argument | Receive CLI argument, Parse CLI argument | 🟡 |
Standard I/O | Print content to | 🟢 |
Cursor | Cursor related utility | 🔴 |
Double Arithmetic |
| 🔴 |
File I/O | File read/write operations | 🔴 |
Float Arithmetic |
| 🔴 |
Image | Image reading, operation and saving | 🔴 |
Parse String | Convert string to data ( | 🟢 |
String Operation | String-related operation like | 🟢 |
Native Function Implementation
The native function object is defined as above.
The numArgs
represent the number of argument the native function will receive.
The functionType
stores the name of native function
The f
stores the actual native function, which receives a ReactUIHook
, a HeapAllocator
and several C0Value
s.
Native Function Loading
Defined in ./src/vm_core/native/native_interface.ts
, the function nativeFuncLoader
receives an index and returns the corresponding C0Native
object.
To call the corresponding native function, use syntax like
Last updated