From 9338c21449af6d084d2a629d15d1679848202147 Mon Sep 17 00:00:00 2001 From: PuqiAR Date: Sun, 10 May 2026 21:25:05 +0800 Subject: [PATCH] =?UTF-8?q?*(=E6=97=A0=E7=94=A8)=20feat:=20=E5=9C=A8VM.cpp?= =?UTF-8?q?=E4=B8=AD=E6=B7=BB=E5=8A=A0likely=E5=B1=9E=E6=80=A7=E4=BB=A5?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=88=86=E6=94=AF=E9=A2=84=E6=B5=8B=20refact?= =?UTF-8?q?:=20=E5=9C=A8xmake.lua=E4=B8=AD=E4=BC=98=E5=8C=96=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ExampleCodes/SpeedTest/fib.py | 4 ++-- src/VM/VM.cpp | 3 ++- xmake.lua | 4 ++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ExampleCodes/SpeedTest/fib.py b/ExampleCodes/SpeedTest/fib.py index 88d9d7a..3f0ae16 100644 --- a/ExampleCodes/SpeedTest/fib.py +++ b/ExampleCodes/SpeedTest/fib.py @@ -1,11 +1,11 @@ from time import time as tt def fib(x:int) -> int: - if x <= 1: return x; + if x <= 1: return x return fib(x-1) + fib(x-2) if __name__ == '__main__': t0 = tt() - result = fib(30) + result = fib(35) t1 = tt() print('cost: ',t1-t0, 'result:', result) diff --git a/src/VM/VM.cpp b/src/VM/VM.cpp index db33585..7a90205 100644 --- a/src/VM/VM.cpp +++ b/src/VM/VM.cpp @@ -209,8 +209,9 @@ namespace Fig "none", *currentFrame->proto->locations[ipIdx])); } - else + else [[likely]] { + Object *obj = callee.AsObject(); if (!obj->isFunction()) { diff --git a/xmake.lua b/xmake.lua index 7928b5b..95b29d5 100644 --- a/xmake.lua +++ b/xmake.lua @@ -15,6 +15,10 @@ elseif is_plat("windows") then add_ldflags("-Wl,--stack,268435456") end +if is_mode("release") then + set_optimize("fastest") +end + set_languages("c++23") add_includedirs("src")