Commit Graph

  • 4f87078a87 Plan main PuqiAR 2026-06-01 18:52:06 +08:00
  • 9338c21449 *(无用) feat: 在VM.cpp中添加likely属性以优化分支预测 refact: 在xmake.lua中优化构建设置 PuqiAR 2026-05-10 21:25:05 +08:00
  • 98de782760 feat: 增加repl入口,-r/--repl。 添加计时选项。 -- 我发现一个问题,analyzer没法保存环境。完了。 PuqiAR 2026-04-30 21:24:11 +08:00
  • fafa2b4946 feat: 在解析器中实现 Lambda 和 new 表达式 - 增加了对 Lambda 表达式的初步解析支持,包括参数处理和返回类型。Lambda闭包尚未支持。 - 引入了用于对象初始化的新的表达式,支持可选的命名参数。 - 改进了表达式语法错误的错误报告。 - 更新了解析器和分析器以处理新的表达式类型并验证其语义。 - 修改了现有测试以涵盖新功能并确保其正确性。 - 改进了各种解析和语义错误的诊断。 PuqiAR 2026-04-12 10:07:51 +08:00
  • 570a87c3cd feat: 增加函数类型表达式支持,更新解析器和分析器 PuqiAR 2026-03-18 17:30:09 +08:00
  • e1d9812f92 refact:实现参数解析器和入口点 - 新增了一个名为 ArgumentParser 的类来处理命令行参数,其中包括用于显示帮助、显示版本和显示许可证的标志。 - 更新了 main.cpp 以使用 ArgumentParser 来改进命令行界面。 - 创建了 Entry.cpp 和 Entry.hpp 来封装虚拟机执行逻辑,从而实现更好的关注点分离。 - 调整了 xmake.lua 以包含 ArgumentParser 和 Entry 组件的新源文件。 - 强化了命令行使用的错误处理和用户反馈。 PuqiAR 2026-03-14 14:18:21 +08:00
  • 6bcc98bdb3 删除无用的东西233 PuqiAR 2026-03-13 20:11:46 +08:00
  • 91b5a0e384 feat: 增加一个很简单的repl(还不能用) 写了readme PuqiAR 2026-03-13 01:28:43 +08:00
  • c0eacfd236 refactor: 修改Disassembler使用CoreIO的stream PuqiAR 2026-03-11 21:51:58 +08:00
  • 51a939ac45 对编译器和虚拟机进行重构,以支持闭包和垃圾回收功能 - 去除了不再使用的结构,并更新了编译器以处理新的闭包语义。 - 改进了 Compiler,使其能够生成带有源位置跟踪的指令。 - 在 FunctionObject 和 VM 中引入了作用域变量管理,以支持动态闭包。 - 实现了使用标记-扫描(Mark-And-Sweep) (Tri-Color tracing) 算法的垃圾回收机制,包括对作用域变量的处理。 - 在 VM 中增加了函数加载和作用域变量检索的支持。 - 更新了对象模型,包括引入 InstanceObject 并改进内存管理。 - 添加了用于调试的全局变量打印功能。 PuqiAR 2026-03-11 16:53:10 +08:00
  • 0f635ccf2b 重构类型系统并改进诊断功能 - 更新了类型系统,新增了类型并优化了结构。 - 引入了基类型和派生类,用于函数、结构体和接口类型。 - 实现了类型上下文,用于管理内置类型和类型解析。 - 添加了诊断类,用于收集和报告警告和错误。 - 通过改进错误处理增强了虚拟机执行,以应对递归限制问题。 - 实现了反汇编器,将字节码转换为代码,以改善调试和分析。 - 添加了新的抽象语法树节点,用于成员表达式、对象初始化、接口和结构体定义。 - 引入了语义错误测试,包括重定义、未声明的变量和无效的结构字段。 PuqiAR 2026-03-10 12:33:17 +08:00
  • 90448006ff refactor: 引入 Arena 内存池并优化指令分发,为类型系统重构做准备 PuqiAR 2026-03-08 15:59:55 +08:00
  • 91e4eb734e feat: 使用Computed Goto优化指令分发机制和算术运算处理 PuqiAR 2026-03-07 21:33:55 +08:00
  • 6dbecbbdc0 feat: 重构编译器以支持函数定义和调用,添加新的字节码以支持函数调用 另外,我很高兴地宣布,fib(40) 递归法 在我的平台, i5-13490f,只需要 6600ms, fib(30) 56ms 这是历史性的一刻! PuqiAR 2026-03-07 00:34:52 +08:00
  • 1fe9ccf7ea feat: 实现控制流语句并优化类型解析 - 新增了 ReturnStmt、BreakStmt 和 ContinueStmt 结构,以支持 AST 中的控制流。 - 引入了 TypeInfo 和 TypeContext 以实现更好的类型管理和解析。 - 对分析器进行了增强,能够处理函数定义和返回语句,包括类型检查和错误处理。 - 更新了编译器和解析器以适应新的控制流语句和类型解析逻辑。 - 重构了现有代码以提高清晰度和可维护性,包括对表达式和语句中的类型处理的更改。 - 删除了过时的 String 和 Struct 定义,代之以 StringObject 和 StructObject 以实现更好的对象表示。 PuqiAR 2026-02-28 20:42:15 +08:00
  • bb23ddf9fa feat: 添加函数定义和类型表达式支持,重构解析器以处理新语法(函数定义) PuqiAR 2026-02-26 14:41:41 +08:00
  • 12dc31a6c0 fix: 修复了在解析字面量时的条件逻辑,确保整数转换在浮点数转换之后进行 PuqiAR 2026-02-25 19:15:25 +08:00
  • a0fb8cdffb feat: 添加“while 语句”支持,并对解析器进行重构以处理控制流相关内容 - 引入了 WhileStmt 结构来表示 while 循环语句。 - 在解析器中实现了对 while 语句的解析逻辑。 - 在分析器中为 while 语句添加了语义分析。 - 重构了现有的解析器方法,以利用 StateProtector 进行状态管理。 - 更新了对各种表达式和语句的错误处理。 - 移除了未使用的终止符管理方法,并简化了表达式解析。 - 将 FigLSPServer.cpp 重命名为 LSPServer.cpp,并调整了构建配置。 - 增强了重复声明和类型错误的错误报告。 - 在多个文件中改进了代码格式和一致性。 PuqiAR 2026-02-25 17:31:00 +08:00
  • b7bb889676 feat: 增加了analyzer, compiler不再分析并且报错, 只生产 bytecode, analyzer作为前端结束最后一道防线检查代码,同时引入一个简单的LSP PuqiAR 2026-02-23 19:57:28 +08:00
  • 852dd27836 feat: 优化表达式解析器,添加终止符重置功能及代码格式调整 PuqiAR 2026-02-23 15:03:53 +08:00
  • abdb1d2fb0 feat: 添加跳转指令支持及条件语句编译实现 PuqiAR 2026-02-20 17:02:13 +08:00
  • eb20993e27 feat: 添加If语句及块语句解析支持 PuqiAR 2026-02-20 15:46:33 +08:00
  • 2631f76da1 feat: Implement compiler and virtual machine for Fig language PuqiAR 2026-02-20 14:05:56 +08:00
  • f2e899c7a7 更换新Logo! 然后为拓展增加Logo。 PuqiAR 2026-02-18 14:28:19 +08:00
  • c81da16dfb 修复EOF飘逸(去除末尾\n)以及其他修复... PuqiAR 2026-02-18 00:16:59 +08:00
  • 663fe39070 添加缺失的 doxy PuqiAR 2026-02-17 14:13:57 +08:00
  • 6b75e028ff 修复右结合绑定力错误 PuqiAR 2026-02-17 14:03:48 +08:00
  • 878157c2fc 完成Parser定义以及表达式解析 PuqiAR 2026-02-14 23:03:46 +08:00
  • 35e479fd05 完成表达式Ast定义。修改了format文件 PuqiAR 2026-02-14 18:00:46 +08:00
  • 51e831cc6a 添加了注释文档 PuqiAR 2026-02-14 15:32:11 +08:00
  • 35b98c4d7f 完成Lexer实现,100%可靠 PuqiAR 2026-02-14 14:54:44 +08:00
  • 877253cbbc 完成 Error定义和ErrorLog. 以及一些相关的东西 PuqiAR 2026-02-13 23:11:37 +08:00
  • cfcdfde170 结构调整2 PuqiAR 2026-02-12 14:55:48 +08:00
  • 5e75402b43 项目结构调整 PuqiAR 2026-02-12 14:55:34 +08:00
  • 642ce66f75 Merge branch 'main' of https://git.fig-lang.cn/PuqiAR/Fig PuqiAR 2026-02-12 14:54:49 +08:00
  • dd0b2904ba Initial commit PuqiAR 2026-02-12 14:53:03 +08:00
  • 58212a3715 初始化仓库,包含format文件,ci, actions和文档。新的路开始了! PuqiAR 2026-02-12 14:51:26 +08:00