diff --git a/TeXmacs/progs/prog/glue-symbols.scm b/TeXmacs/progs/prog/glue-symbols.scm index 8bc12c5eb5..94fcecd624 100644 --- a/TeXmacs/progs/prog/glue-symbols.scm +++ b/TeXmacs/progs/prog/glue-symbols.scm @@ -11,16 +11,12 @@ ;; in the root directory or . ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; YOU SHOULD DO NOT EDIT THIS FILE ;; -;; This file was generated automatically by -;; /src/src/Scheme/Glue/build-glue/make-apidoc-module.scm -;; from the glue functions defined in -;; /src/src/Scheme/Glue/build-glue/build-glue-(basic|server|editor).scm -;; -;; It is updated automatically when running the script -;; /src/src/Scheme/Glue/build-glue +;; Hand-maintained symbol list. Glue bindings themselves are generated by +;; the `glue_*.lua` files under `src/Scheme/{L2..L5,Glue,Plugins}/` via the +;; `mogan.glue` xmake rule (codegen entry: src/Scheme/Glue/build_glue.lua). +;; This file only feeds autocompletion and apidoc; add new glue symbols here +;; when you introduce them. ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -589,18 +585,6 @@ "persistent-has?" "persistent-get" "persistent-file-name" - "tmdb-keep-history" - "tmdb-set-field" - "tmdb-get-field" - "tmdb-remove-field" - "tmdb-get-attributes" - "tmdb-set-entry" - "tmdb-get-entry" - "tmdb-remove-entry" - "tmdb-query" - "tmdb-inspect-history" - "tmdb-get-completions" - "tmdb-get-name-completions" "supports-sql?" "sql-exec" "sql-quote" diff --git a/devel/1128.md b/devel/1128.md new file mode 100644 index 0000000000..6d9e7e8176 --- /dev/null +++ b/devel/1128.md @@ -0,0 +1,74 @@ +# [1128] 移除 glue_tmdb.lua 死代码 + +## 1 背景 + +- `src/Scheme/Plugins/glue_tmdb.lua` 历史上用于生成 `src/Plugins/Database` + 下 Database 插件的 scheme glue(`tmdb-keep-history` / `tmdb-set-field` + / `tmdb-get-field` 等共 12 个 `tmdb-*` 绑定,initializer 为 + `initialize_glue_tmdb`)。 +- `src/Plugins/Database` 目录早已在 [200_16] 的 tmdb 清理中被整体移除, + 对应的 C++ 实现(`keep_history`/`set_field`/`get_field`/...) 不复存在。 +- [1124] 完成 L5/Plugins glue standalone 迁移时已确认: + > glue_tmdb 是死代码(无 init 调用、无文本包含、无 group_name), + > 不在 rule 内,留作后续清理。 +- 即:`glue_tmdb.lua` 既不在 `xmake.lua` 的 `mogan.glue` rule 文件列表里 + (不会被 codegen 生成 .cpp),也没有任何 `initialize_glue_tmdb()` 的 + 声明/调用残留 —— 它是被遗忘的孤儿文件。 + +## 2 What + +1. 删除 `src/Scheme/Plugins/glue_tmdb.lua`。 +2. 删除 `TeXmacs/progs/prog/glue-symbols.scm` 中残留的 12 行 + `tmdb-*` 符号(原 592–603 行)。 +3. 重写 `glue-symbols.scm` 头部那段误导性的「YOU SHOULD DO NOT EDIT / + 自动生成」注释 —— 这套自动生成机制早已停摆(见 Why),改成 + 「手工维护」的说明,指向真实的 glue 来源(`glue_*.lua` + + `mogan.glue` rule)。 + +## 3 Why + +- **彻底收尾 [200_16]/[1124] 留下的尾巴**:Database 插件的 C++ 代码 + 和 glue 已无对应关系,lua 文件继续存在只会让人误以为 tmdb glue + 仍在生效,徒增阅读负担。 +- **避免误用**:任何后续重新引入 Database/插件机制的开发者,可能把 + 这个 lua 当成现成模板,但它的 12 个绑定指向的 C++ 函数已全部消失, + 复制即引入编译错误。 +- **`glue-symbols.scm` 已不是自动生成的**:文件头旧注释引用的 + `make-apidoc-module.scm` 生成链已经断开 —— + - 该脚本第 16 行写死要 `(map load '("build-glue-basic.scm" + "build-glue-server.scm" "build-glue-editor.scm"))`,但前两个源 + 文件已不在仓库里; + - 启动器 `build-glue`(sh)调的是 `guile`,而本项目 Scheme 引擎 + 早已换 s7; + - 真正的 glue 来源已迁到 `src/Scheme/{L2..L5,Glue,Plugins}/glue_*.lua`, + 由 `xmake.lua` 的 `mogan.glue` rule 用 Lua 生成 `.cpp`,与 + `make-apidoc-module.scm` 这套 guile 脚本完全脱钩。 + 所以 `glue-symbols.scm` 实质上是手工维护的静态清单,残留的 `tmdb-*` + 不会自己消失,必须手工删;同时把误导性的「自动生成」注释改掉, + 免得下个人又被它带偏。 + +## 4 How + +- `git rm src/Scheme/Plugins/glue_tmdb.lua`。 +- 手工删除 `glue-symbols.scm` 中 12 行 `tmdb-*`(592–603)。 +- 手工替换 `glue-symbols.scm` 13–25 行的旧注释块,改成简短一段 + 「Hand-maintained symbol list ...」,保留分号分隔的视觉边界, + 不动 `(texmacs-module ...)` 与 `(tm-define ...)` 主体。 +- 不动 `TeXmacs/progs/database/db-base.scm` / `bib-manage.scm` / + `db-users.scm` / `lp-build.scm` 等仍调用 `tmdb-*` 的 Scheme 文件: + 这些调用本来就因为 C++ 端缺失而无定义,属于 [200_16] 移除 tmdb + 时遗留的 Scheme 侧债务,与本 PR 的「清 C++ 死代码」范围不重叠。 + +## 5 涉及文件 + +- `src/Scheme/Plugins/glue_tmdb.lua`(删除) +- `TeXmacs/progs/prog/glue-symbols.scm`(删 12 行 `tmdb-*`;重写头部注释) +- `devel/1128.md`(新增,本文档) + +## 6 验证 + +- `grep -rn glue_tmdb src/ TeXmacs/ xmake.lua` 无匹配(仅 devel/ 下 + 历史引用)。 +- `grep -n tmdb TeXmacs/progs/prog/glue-symbols.scm` 无匹配。 +- `xmake b stem` 编译通过。 + diff --git a/src/Scheme/Plugins/glue_tmdb.lua b/src/Scheme/Plugins/glue_tmdb.lua deleted file mode 100644 index 1917f94340..0000000000 --- a/src/Scheme/Plugins/glue_tmdb.lua +++ /dev/null @@ -1,142 +0,0 @@ -------------------------------------------------------------------------------- --- --- MODULE : glue_tmdb.lua --- DESCRIPTION : Generating glue on src/Plugins/Database --- COPYRIGHT : (C) 1999-2023 Joris van der Hoeven --- 2023 jingkaimori --- 2023 Darcy Shen --- --- This software falls under the GNU general public license version 3 or later. --- It comes WITHOUT ANY WARRANTY WHATSOEVER. For details, see the file LICENSE --- in the root directory or . - -function main() - return { - binding_object = "", - initializer_name = "initialize_glue_tmdb", - glues = { - { - scm_name = "tmdb-keep-history", - cpp_name = "keep_history", - ret_type = "void", - arg_list = { - "url", - "bool" - } - }, - { - scm_name = "tmdb-set-field", - cpp_name = "set_field", - ret_type = "void", - arg_list = { - "url", - "string", - "string", - "array_string", - "double" - } - }, - { - scm_name = "tmdb-get-field", - cpp_name = "get_field", - ret_type = "array_string", - arg_list = { - "url", - "string", - "string", - "double" - } - }, - { - scm_name = "tmdb-remove-field", - cpp_name = "remove_field", - ret_type = "void", - arg_list = { - "url", - "string", - "string", - "double" - } - }, - { - scm_name = "tmdb-get-attributes", - cpp_name = "get_attributes", - ret_type = "array_string", - arg_list = { - "url", - "string", - "double" - } - }, - { - scm_name = "tmdb-set-entry", - cpp_name = "set_entry", - ret_type = "void", - arg_list = { - "url", - "string", - "scheme_tree", - "double" - } - }, - { - scm_name = "tmdb-get-entry", - cpp_name = "get_entry", - ret_type = "scheme_tree", - arg_list = { - "url", - "string", - "double" - } - }, - { - scm_name = "tmdb-remove-entry", - cpp_name = "remove_entry", - ret_type = "void", - arg_list = { - "url", - "string", - "double" - } - }, - { - scm_name = "tmdb-query", - cpp_name = "query", - ret_type = "array_string", - arg_list = { - "url", - "scheme_tree", - "double", - "int" - } - }, - { - scm_name = "tmdb-inspect-history", - cpp_name = "inspect_history", - ret_type = "void", - arg_list = { - "url", - "string" - } - }, - { - scm_name = "tmdb-get-completions", - cpp_name = "get_completions", - ret_type = "array_string", - arg_list = { - "url", - "string" - } - }, - { - scm_name = "tmdb-get-name-completions", - cpp_name = "get_name_completions", - ret_type = "array_string", - arg_list = { - "url", - "string" - } - }, - } - } -end