Commit Graph
493 Commits
Author SHA1 Message Date
TermiNexus 5680592f37 feat(tpc): 新增 --func-hotspot 函数热点统计,Ctrl+C 时落盘
启用后为每个函数定义生成 internal i64 计数器并在入口递增;各模块 Ctrl+C 处理器以追加方式写最终文件(含 main 的模块启动时清空一次),经 llvm.global_ctors 自注册;未传参数时零影响。
2026-09-13 17:50:01 +08:00
TermiNexus 355811d64e chore(tpc): 移除属性链/调用分派错误路径的临时诊断打点
- HandlesBase: 删除 _AttrFailDiag 现场诊断(含模块别名链逐跳 dump),恢复精简错误信息

- HandlesExprAttr: 删除 [CHAIN-DBG] stderr 打点与 [attr-diag]/[attr-diag-nested] KeyError 包装

- HandlesExprCall: 删除 Unknown module 异常的 _rc_note 诊断后缀
2026-09-12 12:50:35 +08:00
TermiNexus ed3355202a fix(tpc): Mod.Var 链属性访问补第四条类回退(直读 var_/global_struct_class) 2026-09-12 12:42:59 +08:00
TermiNexus 015fbf17cf fix(tpc): 跨模块模块级变量类登记与 Mod.Var.Field 链解析;并停止跟踪 __pycache__/*.pyc 2026-09-12 11:51:42 +08:00
TermiNexus 9257dd841f fix(tpc): rowptr[X] 字段 element_class 登记补短名模糊扫描,修 Unknown module 误报 2026-09-12 11:24:49 +08:00
TermiNexus cc2f5d34eb feat(tpc): includes 只认项目配置;ASan 改为显式链接 clang64 运行库
includes 目录不再回退仓库硬编码 TransPyCRoot/includes:Phase2Translator 新增 PROJECT_INCLUDE_DIRS(INCLUDE_DIRS 置空以兼容旧引用),Config.py 从 project.vpj 的 includes 同步;HandlesImports 的模块搜索、TypeAnnotationResolver._builtins_include_dirs 一律只读项目目录。

ASan:mingw64 clang 没有 x86_64-w64-windows-gnu 目标的 ASan runtime,新增 _FindAsanRuntimeDir 定位 clang64 运行库并按 -l: 显式链接(asan_dynamic-x86_64.dll.a + runtime_thunk),定位失败即报错退出。HandlesExprFormat:i32 不再写 'l' 长度修饰符(LP64 下 printf 会按 64 位读实参)。
2026-09-11 22:47:21 +08:00
TermiNexus ab3873b038 加了忘记加的东西 2026-09-09 14:46:41 +08:00
TermiNexus a433f79f54 基线重置,TransPyC 不再作为直接脚手架主仓库 2026-09-09 14:44:44 +08:00
TermiNexus 7ab8bef3b5 perf(vipersimd): add/mul 数组内核 ×8 双缓冲(32 doubles/大迭代)压榨访存口 2026-09-09 10:38:39 +08:00
TermiNexus e5d91ae497 chore(repo): 解除剩余 Test/*/.tpv_build 构建缓存追踪(.gitignore 已忽略) 2026-09-09 08:57:03 +08:00
TermiNexus 0bfbcdd028 fix(memhub): MEMDBG 改为运行期开关 _memdbg_enable,BuddyTest 入口关闭 2026-09-09 08:55:49 +08:00
TermiNexus 4a8d8f34c0 fix(llvmfunc): T2 窥孔槽 load 超过 64 记录上限时放弃转发,避免删 def 留悬空 use 2026-09-09 08:55:48 +08:00
TermiNexus 8e2d5b227c chore(repo): 清理并忽略构建缓存与 PROF 性能产物,避免提交临时文件 2026-09-08 20:47:36 +08:00
TermiNexus 0bda395ecc fix(translator,peephole): TPC 属性链解析修复与窥孔 T1-T3 收尾
- TPC(lib/core): 泛型父特化形参按声明类登记 var_struct_class; _find_struct_key 键归一支持方括号内嵌 sha 前缀; 字段探测失败不再冒泡 FuncGen fail-fast; cast 局部通用指针槽按静态类 bitcast; 属性解析失败附诊断
- 窥孔(includes/llvmlite/__function.vp): 窥孔移至 Renumber 前使输出 SSA 编号连续; T3 no-op bitcast 消除; T4(数组 bitcast->GEP)验证干扰返回类型收敛已移除
- 附调试打点与 1.log
2026-09-08 12:52:48 +08:00
TermiNexus 76d1ee6076 fix(compiler,peephole): TPC 属性链解析与窥孔输出瘦身
- TPC(lib/core): 任意级属性链按链前向类解析恢复 stub 退化字段; cast 局部 rowptr[X] 登记回填; 通用指针槽按静态类名 bitcast 兜底; 赋值 RHS 求值失败 fail-fast 防未初始化变量; 报错行按源码文本锚定并附 ATTR-DIAG 现场
- 窥孔(includes/llvmlite/__function.vp): 成员访问单级链模式; 窥孔移至 Renumber 前使 SSA 编号连续; T3 no-op bitcast 消除; 替换缓冲按最坏上界分配
- __builder/__module/string.vp 配套; 清理 Test 构建产物与 PROF 杂项
2026-09-08 11:02:37 +08:00
TermiNexus 45e78ad107 基线重置,修复了一些 bug 2026-09-07 14:46:02 +08:00
TermiNexus b02bedae9a fix(link): 为 weak/linkonce 函数与全局补 COMDAT,修复 COFF 下跨模块重复符号
COFF 下无 COMDAT 的 weak/linkonce 定义会被 llc 展开成强符号 .weak.<name>.default(weak external 实现副本)。rowptr 新一代 includes 让泛型特化(list[rowptr[AST]].__before_init__)与跨模块共享常量(PYI_BUF_SIZE)在多个模块重复定义 → ld.lld duplicate symbol。

在 Phase2Translator 三处 dso_local 后处理簇后调用 _AddWeakComdat:函数定义补 ' comdat'、全局补 ', comdat'(置于 align/section 前),并在模块头加 comdat any 声明。llc/ld.lld 端到端已验证(双 obj 同符号链接无重复报错)。
2026-09-05 12:02:48 +08:00
TermiNexus cb8eef3316 fix(ViperQtProject): 主题切换同步应用 QPalette(修浅色勾选框缺失/深色框缺失) 2026-09-03 11:42:28 +08:00
TermiNexus ebaa939800 revert(ViperQtProject): 复选框回归纯原生渲染(移除 indicator 边框实验) 2026-09-03 11:38:09 +08:00
TermiNexus 7bf80350d7 feat(ViperQtProject): 原生指示器仅改边框色(不设背景/图标) 尝试保留对勾 2026-09-03 11:36:41 +08:00
TermiNexus 921a247fe5 feat(ViperQtProject): 对勾图标改 base64 data URI 内嵌(免运行时文件) 2026-09-03 11:34:49 +08:00
TermiNexus 07f16ae1a6 fix(ViperQtProject): indicator 加透明占位背景使 QSS 接管图标绘制 2026-09-03 11:33:31 +08:00
TermiNexus b12873d513 feat(ViperQtProject): 复选框改用灰框/蓝勾 PNG 指示器(QUrl 标准路径) 2026-09-03 11:30:54 +08:00
TermiNexus 3d98670b74 revert(ViperQtProject): 复选框指示器恢复原生对勾渲染,移除自定义图标 2026-09-03 11:28:46 +08:00
TermiNexus 93a0babde6 feat(ViperQtProject): 复选框指示器改用对勾图标(灰框/蓝勾 PNG) 2026-09-03 11:25:11 +08:00
TermiNexus 503d23fc1a fix(ViperQtProject): 浅色主题复选框黑色边框、补界面集成方式等小节标题重刷 2026-09-03 11:19:31 +08:00
TermiNexus 07a3ad10fe feat(ViperQtProject): 右上角新增深色/浅色主题切换 2026-09-03 11:16:55 +08:00
TermiNexus 7c85fa8ac0 feat(ViperQtProject): 许可协议逐份同意、树形组件占满高度、移除点击复选框展开 2026-09-03 11:06:35 +08:00
TermiNexus a5463a71f8 feat(ViperQtProject): 安装向导扩展与深色主题优化 2026-09-03 11:01:54 +08:00
TermiNexus a6151350de test(ViperBTests): 新增 ViperZipfileProject(zipfile 写->读回->CRC 损坏检测) 2026-09-03 09:35:12 +08:00
TermiNexus 64a527c615 feat(ViperBTests): ViperRequestsTest 大文件切片下载验证步骤
demo 新增第 6 步:httpbin /bytes/1048576 串行(1线程)与并行(4线程)下载后大小与内容逐字节比对一致
2026-09-03 08:27:58 +08:00
TermiNexus ac3e235406 feat(requests): 新增大文件切片下载(requests.download,串行+多线程 Range)
- download.vp: Content-Range 探测总大小,threads=1 串行切片 / threads>1 按带并行(≤8 线程),按偏移 Win32 落盘,http/https 按 scheme 分发,切片内跟随重定向
- requests/__init__.vp: 新增原始头/Content-Length/Content-Range 解析 helper 与线程安全 _DlOnce(Range 原语,全 stdlib 分配,不碰 _mbuddy)
- requests/https.vp: 镜像 _DlOnce(openssl + verify/ca/SNI/主机名校验)
2026-09-03 08:27:52 +08:00
TermiNexus 503dcaf568 fix(zlib): 修复动态块码长 RLE 尾部丢码与 gzip 头 FLG 偏移读取
- zdeflate: count_cl_freqs/write_cl_encoded 非零码长重复段尾部 1~2 个相同值不再被 i+=run 静默跳过,改由外层按字面量编码,保证码长总数恰为 HLIT+HDIST
- zinflate: gzip 头 FLG 改读偏移 3(input_pos-7),此前误读 MTIME[0] 导致真实 gzip(mtime 非 0)解析错位
2026-09-03 08:27:41 +08:00
TermiNexus dee1e19c62 feat(ViperOpenSSLProject): 以模板新建 OpenSSL FFI 测试工程(版本+摘要 demo,链接目标待定) 2026-09-02 16:19:23 +08:00
TermiNexus ab068df348 feat(ViperQtProject): 安装向导完善(许可协议/磁盘统计/安装日志/安装选项)
- 新增许可协议步骤:协议文本 + 勾选接受后才可继续
- 组件选择页:磁盘占用实时统计 + 安装选项(快捷方式/PATH/桌面图标)
- 安装进度页:阶段文案 + 实时日志输出(QPlainTextEdit)
- 安装按钮点击后禁用防重复,完成页汇总安装信息
2026-09-02 10:01:44 +08:00
TermiNexus 74624b1d0a feat(ViperQtProject): VS Installer 风格安装向导演示
- 四步骤:欢迎 → 组件选择 → 安装进度(QTimer 模拟)→ 完成
- 左导航高亮 + QStackedWidget 页面切换,深色主题 QSS
- 组件复选 + 计数摘要,安装路径浏览(QFileDialog),完成页汇总
2026-09-02 09:26:23 +08:00
TermiNexus fe0f9e5857 test(vqt6): 扩展功能测试(布局 + 信号槽回调 + QTimer 自动退出)
- QMainWindow + 中央控件 + 垂直/水平布局
- 按钮/复选框/输入框/下拉框/滑块/数值框/进度条/日志区
- 信号槽回调:clicked/toggled/currentIndexChanged/valueChanged/timeout 均触发 Viper 回调
- QTimer 3 次 tick 后自动退出,验证回调链路
2026-09-02 09:16:42 +08:00
TermiNexus f0a8999a6c feat(vqt6): 新增 ViperQtProject Qt6 Hello World 测试工程
- project.vpj: 静态链接 libvqt6_bridge.a,链接 Qt6.11.2 MinGW 动态库(Core/Gui/Widgets/Network)
- App/main.vp: QApplication + QWidget + QLabel + QPushButton 测试,FFI 摆放子控件几何
2026-09-02 08:53:37 +08:00
TermiNexus 49631ccf9b feat(linker): TPC 支持 project.vpj linker.dynamic_libs 动态链接 .dll/.so(解析为绝对路径,作为链接输入文件) 2026-09-01 22:01:18 +08:00
TermiNexus af432b445a feat(fltk): ViperFLProject 链接 libfltk_theme.a + Theme 按钮演示(base/Dark/Metro 主题切换) 2026-09-01 21:53:26 +08:00
TermiNexus 67b52777bd feat(fltk): main2 演示风格切换(Style 按钮循环 base/plastic/gtk+/gleam/oxy,状态栏 f-string 显示当前风格) 2026-09-01 21:31:12 +08:00
TermiNexus e529264c79 feat(fltk): ViperFLProject 回调 + 控件演示(按钮/复选框/滑块/输入/菜单/Spinner/Browser/Tree/Terminal + 定时器) 2026-09-01 21:23:24 +08:00
TermiNexus 7c8dd5f501 fix(fltk): gen_ffi 无名 C 类型参数修复(Fl_color_average 参数名重复)+ ViperFLProject 补齐 FLTK Windows 系统库(gdiplus/advapi32/shell32/ws2_32/user32/winspool) 2026-09-01 21:08:17 +08:00
TermiNexus 5ba5fb5ff3 fix(linker): include 模块自动扫描支持 .no_autobuild 标记与构建目录排除
- _scan_dir_for_libs:模块目录含 .no_autobuild 时跳过 C 源编译与库文件自动发现

- 递归时跳过 build/cmake-build*/.git/__pycache__/. 开头目录

- 防止 fltk 等内嵌完整第三方源码的 include 模块被误编译
2026-09-01 20:16:34 +08:00
TermiNexus e33792a9ad feat(linker): TPC 支持 project.vpj 静态链接 .a/.obj
- Config.py 读取 linker.static_libs(相对 vpj 目录解析为绝对路径)

- Phase2Translator 新增 static_libs 参数,并入 extra_link_files 参与链接(位于 -o 之后、-l 之前)
2026-09-01 20:15:17 +08:00
TermiNexus ca1e58f6fa feat(linker): TPC 支持 project.vpj 静态链接 .a/.obj,ViperFLProject 配置 fltk
- Config.py 读取 linker.static_libs(相对 vpj 目录解析为绝对路径)

- Phase2Translator 新增 static_libs 参数,并入 extra_link_files 参与链接

- ViperFLProject 改为 fltk GUI 测试:static_libs 链接 cfltk2 + FLTK 静态库

- 新增 FLTK 所需系统库 flags(comdlg32/comctl32/ole32/uuid/winmm/gdi32)
2026-09-01 20:15:02 +08:00
TermiNexus 6892183cc9 feat(fltk): 新增 FLTK 1.4 纯 extern FFI 绑定库(对接 cfltk C API)
- 生成 24 个 _cfl*.vp(10327 条 extern 声明)+ _types/_enums 常量

- __init__.vp 提供 Fl/Fl_Widget/Fl_Window/Fl_Button/Fl_Input/Fl_Text_Buffer/Fl_Group/Fl_Menu_Bar/Fl_Native_File_Chooser 等包装类

- 回调(Fl_Callback)按 bytes 不透明处理,菜单回调位传 t.CPtr(0)

- 新增 examples/hello.vp、dialog.vp 冒烟样例,26 个 .vp 全部通过 vast parse

- 内嵌 cfltk(C API 封装)与 FLTK 1.4 完整源码,构建目标 cfltk2
2026-09-01 19:53:54 +08:00
TermiNexus 2b5286ea11 fix(ast): parse_expression 返回注解改为 Expression | t.CPtr
- parse_expression 实际返回 Expression 包装节点(body 字段为实际表达式),
  原注解 AST | t.CPtr 类型不精确——调用方需强转才能访问 body
- 源头修正返回类型,调用方直接 expr_node.body 即可
2026-08-29 07:26:06 +08:00
TermiNexus 8c82629b0a test(vpt): 类型系统收敛测试——别名反查/typedef 链/__sizeof__ 联动
- T6: from-import 别名反查(MyInt/MyByte)+ typedef 值引用别名(MyWord=MyInt)
- T7: 库 typedef 裸名解析(BYTE/DWORD/MyDword 链)+ t/c 核心特判保留(CBool)
- T8: __sizeof__ 库 typedef 尺寸联动(BYTE=1/DWORD=4/MyWord=4/CBool=1)
- T9: typedef 联合(BYTE|t.CPtr)指针包装 + * 解引用
2026-08-29 06:22:36 +08:00
TermiNexus 65dd4a5e3e docs(_Type): 类型系统收敛方案阶段 1/2/3 实施完成 2026-08-29 06:15:09 +08:00