From 68036f8731b6d41476fbe54bebbf29fff711bbe9 Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Fri, 14 Jul 2023 22:38:06 +0800 Subject: [PATCH] ... --- docs/C-API/call.md | 10 +++++++--- docs/C-API/stack.md | 12 ++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/docs/C-API/call.md b/docs/C-API/call.md index f90bf135..e52fe926 100644 --- a/docs/C-API/call.md +++ b/docs/C-API/call.md @@ -6,10 +6,14 @@ order: 6 ### `bool pkpy_vectorcall(pkpy_vm*, int argc)` -Wraps `vm->vectorcall(argc)`. - -This is the only way to call a function in the C-APIs. +Wraps `vm->vectorcall(argc)`. This function is used to call a function with a fixed number of arguments. The arguments are popped from the stack. The return value is pushed onto the stack. 1. First push the function to call. 2. Push `self` argument if it is a method call. Otherwise, call `pkpy_push_null`. 3. Push arguments from left to right. + +!!! +Unlike lua, a python function always returns a value. +If the function returns `void`, it will push `None` onto the stack. +You can call `pkpy_pop_top` to discard the return value. +!!! \ No newline at end of file diff --git a/docs/C-API/stack.md b/docs/C-API/stack.md index 572b9cba..7692a4f2 100644 --- a/docs/C-API/stack.md +++ b/docs/C-API/stack.md @@ -103,14 +103,26 @@ PK_EXPORT bool pkpy_is_none(pkpy_vm*, int i); Push a global variable onto the stack. + ``` + [] -> [value] + ``` + + `bool pkpy_setglobal(pkpy_vm*, pkpy_CName name)` Set a global variable to the value at the top of the stack. + ``` + [value] -> [] + ``` + + `bool pkpy_eval(pkpy_vm*, const char* source)` Evaluate a string and push the result onto the stack. + ``` + [] -> [result] + ``` + + `bool pkpy_unpack_sequence(pkpy_vm*, int size)` Unpack a sequence at the top of the stack. `size` is the element count of the sequence.