diff --git a/port/linux/.vscode/launch.json b/port/linux/.vscode/launch.json index 2a6acd0b8..dada82f4c 100644 --- a/port/linux/.vscode/launch.json +++ b/port/linux/.vscode/launch.json @@ -11,7 +11,7 @@ "program": "${workspaceFolder}/build/test/pikascript_test", // "program": "${workspaceFolder}/build/boot/demo06-pikamain/pikascript_demo06-pikamain", "args": [ - "--gtest_filter=pikaMain.mem_now" + // "--gtest_filter=pikaMain.mem_now" ], "stopAtEntry": false, "cwd": "${workspaceFolder}", diff --git a/src/PikaObj.c b/src/PikaObj.c index fd445eadc..a00cd66bc 100644 --- a/src/PikaObj.c +++ b/src/PikaObj.c @@ -1735,11 +1735,10 @@ PikaObj* obj_importModuleWithByteCodeFrame(PikaObj* self, return self; } -PikaObj* obj_linkLibraryFile(PikaObj* self, char* input_file_name) { +int obj_linkLibraryFile(PikaObj* self, char* input_file_name) { obj_newMetaObj(self, "@lib", New_LibObj); LibObj* lib = obj_getObj(self, "@lib"); - LibObj_loadLibraryFile(lib, input_file_name); - return self; + return LibObj_loadLibraryFile(lib, input_file_name); } PikaObj* obj_linkLibrary(PikaObj* self, uint8_t* library_bytes) { diff --git a/src/PikaObj.h b/src/PikaObj.h index 1e4637ce0..8d6189d52 100644 --- a/src/PikaObj.h +++ b/src/PikaObj.h @@ -408,7 +408,7 @@ PikaObj* pks_eventListener_getEventHandleObj(PikaEventListener* self, void pks_eventListener_init(PikaEventListener** p_self); void pks_eventListener_deinit(PikaEventListener** p_self); PikaObj* methodArg_getDefContext(Arg* method_arg); -PikaObj* obj_linkLibraryFile(PikaObj* self, char* input_file_name); +int obj_linkLibraryFile(PikaObj* self, char* input_file_name); NewFun obj_getClass(PikaObj* obj); void pks_printVersion(void); diff --git a/src/PikaParser.c b/src/PikaParser.c index 69c0fac1f..e47fcfcab 100644 --- a/src/PikaParser.c +++ b/src/PikaParser.c @@ -2607,6 +2607,7 @@ static char* _Parser_linesToBytesOrAsm(Args* outBuffs, parse_after: if (NULL == single_ASM) { out_ASM = NULL; + pika_platform_printf(" -> %s\r\n", line); strsDeinit(&buffs); goto exit; } diff --git a/src/PikaVM.c b/src/PikaVM.c index 53fcb0906..8420ed3b7 100644 --- a/src/PikaVM.c +++ b/src/PikaVM.c @@ -3743,8 +3743,9 @@ PikaObj* pikaVM_runFile(PikaObj* self, char* file_name) { pikaMemMaxReset(); char* libfile_path = strsPathJoin(&buffs, pwd, "pikascript-api/pikaModules_cache.py.a"); - obj_linkLibraryFile(self, libfile_path); - self = pikaVM_runSingleFile(self, file_name); + if (PIKA_RES_OK == obj_linkLibraryFile(self, libfile_path)) { + self = pikaVM_runSingleFile(self, file_name); + } strsDeinit(&buffs); return self; } diff --git a/test/python/PikaUI/test_page.py b/test/python/PikaUI/test_page.py index 72c2566a3..82f75690a 100644 --- a/test/python/PikaUI/test_page.py +++ b/test/python/PikaUI/test_page.py @@ -1,33 +1,38 @@ import PikaUI as ui from PikaStdLib import MemChecker as mem -class Page1(ui.Page): + +class MainContainer(ui.Container): def onclick_next(self, event): print('Page1: onclick_next') app.pageManager.enter(Page2()) mem.now() def build(self): - main = ui.Container( + text = ui.Text( + text='Hello Page1', + align=ui.ALIGN.CENTER + ) + btn = ui.Button( + text='Next', + align=ui.ALIGN.CENTER, + pos=(0, 50), + height=30, + width=80, + onclick=self.onclick_next + ) + return [text, btn] + + +class Page1(ui.Page): + def build(self): + mainCtn = MainContainer( width=300, height=200, pos=(0, 50) - ).add( - ui.Text( - text='Hello Page1', - align=ui.ALIGN.CENTER - ), - ui.Button( - text='Next', - align=ui.ALIGN.CENTER, - pos=(0, 50), - height=30, - width=80, - onclick=self.onclick_next - ) ) title = ui.Text("Title") - return [main, title] + return [mainCtn, title] class Page2(ui.Page): @@ -37,8 +42,8 @@ class Page2(ui.Page): def build(self): return ui.Container( - width= 400, - height= 200, + width=400, + height=200, pos=(0, 50) ).add( ui.Text( @@ -55,6 +60,7 @@ class Page2(ui.Page): ) ) + app = ui.App() app.pageManager.enter(Page1()) app.timer.cb(0) @@ -74,4 +80,3 @@ mem.now() # app.pageManager.back() # app.timer.cb(0) # mem.now() -