v0.4.3-alpha
[Fix] 修复builtin type的方法可能会导致 bad_variant_access的问题。现在Function严格区分3中函数:
Normal, Builtin, MemberType
[Feat] 增加了 Repl! 通过 Fig -r/--repl进入。目前必须写分号,且异常产生时因为获取不到源文件会有意想不到的问题 :(
[Impl] 精简了Context类,减少内存占用。当然,一些内置函数名获取不了了
后续的 Fig lang standard (目前还没有)中内置函数(MemberType/Builtin)严格无异常抛出
[Feat] 写了个Simple Compiler 和 Bytecode VM作为测试。性能拉跨。优化目前停止
[...] 剩下的忘了~
This commit is contained in:
116
xmake.lua
116
xmake.lua
@@ -3,81 +3,63 @@ add_rules("plugin.compile_commands.autoupdate", {outputdir = ".vscode"})
|
||||
|
||||
set_policy("run.autobuild", false)
|
||||
|
||||
set_languages("c++23")
|
||||
|
||||
add_ldflags("-static", {force = true})
|
||||
if is_plat("linux") then
|
||||
-- Linux: clang + libc++
|
||||
set_toolchains("clang")
|
||||
add_cxxflags("-stdlib=libc++")
|
||||
add_ldflags("-stdlib=libc++")
|
||||
elseif is_plat("windows") then
|
||||
-- 1. CI cross (Linux -> Windows)
|
||||
-- 2. local dev (Windows + llvm-mingw)
|
||||
set_toolchains("mingw") -- llvm-mingw
|
||||
add_ldflags("-Wl,--stack,268435456")
|
||||
-- set_toolchains("clang")
|
||||
-- static lib
|
||||
-- add_ldflags("-target x86_64-w64-mingw32", "-static")
|
||||
-- add_cxxflags("-stdlib=libc++")
|
||||
-- add_ldflags("-stdlib=libc++")
|
||||
end
|
||||
|
||||
|
||||
|
||||
add_files("src/Core/warning.cpp")
|
||||
add_files("src/Core/runtimeTime.cpp")
|
||||
|
||||
add_files("src/Lexer/lexer.cpp")
|
||||
add_files("src/Parser/parser.cpp")
|
||||
|
||||
add_files("src/Module/builtins.cpp")
|
||||
|
||||
add_files("src/Evaluator/Value/value.cpp")
|
||||
add_includedirs("src")
|
||||
|
||||
add_defines("__FCORE_COMPILE_TIME=\"" .. os.date("%Y-%m-%d %H:%M:%S") .. "\"")
|
||||
|
||||
target("Fig")
|
||||
set_kind("binary")
|
||||
set_languages("c++23")
|
||||
|
||||
add_ldflags("-static", {force = true})
|
||||
if is_plat("linux") then
|
||||
-- Linux: clang + libc++
|
||||
set_toolchains("clang")
|
||||
add_cxxflags("-stdlib=libc++")
|
||||
add_ldflags("-stdlib=libc++")
|
||||
elseif is_plat("windows") then
|
||||
-- 1. CI cross (Linux -> Windows)
|
||||
-- 2. local dev (Windows + llvm-mingw)
|
||||
set_toolchains("mingw") -- llvm-mingw
|
||||
add_ldflags("-Wl,--stack,268435456")
|
||||
-- set_toolchains("clang")
|
||||
-- static lib
|
||||
-- add_ldflags("-target x86_64-w64-mingw32", "-static")
|
||||
-- add_cxxflags("-stdlib=libc++")
|
||||
-- add_ldflags("-stdlib=libc++")
|
||||
end
|
||||
|
||||
|
||||
|
||||
add_files("src/Core/warning.cpp")
|
||||
add_files("src/Core/runtimeTime.cpp")
|
||||
|
||||
add_files("src/Lexer/lexer.cpp")
|
||||
add_files("src/Parser/parser.cpp")
|
||||
|
||||
add_files("src/Module/builtins.cpp")
|
||||
|
||||
add_files("src/Evaluator/Value/value.cpp")
|
||||
add_files("src/Evaluator/Core/*.cpp")
|
||||
add_files("src/VirtualMachine/VirtualMachine.cpp")
|
||||
add_files("src/Evaluator/evaluator.cpp")
|
||||
add_files("src/Evaluator/main.cpp")
|
||||
|
||||
add_includedirs("src")
|
||||
-- add_includedirs("src/Evaluator")
|
||||
|
||||
add_files("src/Repl/Repl.cpp")
|
||||
add_files("src/main.cpp")
|
||||
|
||||
set_warnings("all")
|
||||
|
||||
add_defines("__FCORE_COMPILE_TIME=\"" .. os.date("%Y-%m-%d %H:%M:%S") .. "\"")
|
||||
target("vm_test_main")
|
||||
set_kind("binary")
|
||||
|
||||
-- -- Bytecode VM target
|
||||
-- target("Figc")
|
||||
-- set_kind("binary")
|
||||
-- set_languages("c++23")
|
||||
|
||||
-- add_ldflags("-static", {force = true})
|
||||
-- if is_plat("linux") then
|
||||
-- -- Linux: clang + libc++
|
||||
-- set_toolchains("clang")
|
||||
-- add_cxxflags("-stdlib=libc++")
|
||||
-- add_ldflags("-stdlib=libc++")
|
||||
-- elseif is_plat("windows") then
|
||||
-- -- 1. CI cross (Linux -> Windows)
|
||||
-- -- 2. local dev (Windows + llvm-mingw)
|
||||
-- set_toolchains("mingw") -- llvm-mingw
|
||||
-- add_ldflags("-Wl,--stack,268435456")
|
||||
-- -- set_toolchains("clang")
|
||||
-- -- static lib
|
||||
-- -- add_ldflags("-target x86_64-w64-mingw32", "-static")
|
||||
-- -- add_cxxflags("-stdlib=libc++")
|
||||
-- -- add_ldflags("-stdlib=libc++")
|
||||
-- end
|
||||
add_files("src/VirtualMachine/VirtualMachine.cpp")
|
||||
add_files("src/Bytecode/vm_test_main.cpp")
|
||||
|
||||
-- add_includedirs("src/Evaluator")
|
||||
-- add_files("src/Evaluator/Value/value.cpp")
|
||||
-- add_files("src/VirtualMachine/main.cpp")
|
||||
-- add_files("src/Core/warning.cpp")
|
||||
-- add_files("src/Lexer/lexer.cpp")
|
||||
-- add_files("src/Parser/parser.cpp")
|
||||
set_warnings("all")
|
||||
|
||||
-- add_includedirs("src")
|
||||
-- set_warnings("all")
|
||||
target("ir_test_main")
|
||||
set_kind("binary")
|
||||
|
||||
-- add_defines("__FCORE_COMPILE_TIME=\"" .. os.date("%Y-%m-%d %H:%M:%S") .. "\"")
|
||||
add_files("src/IR/ir_test_main.cpp")
|
||||
|
||||
set_warnings("all")
|
||||
Reference in New Issue
Block a user