Skip to content

[0840] 消除 diff-text 模块启动时的 conditional master routine warning#4039

Merged
da-liii merged 2 commits into
mainfrom
da/0840/tm-define
Jul 20, 2026
Merged

[0840] 消除 diff-text 模块启动时的 conditional master routine warning#4039
da-liii merged 2 commits into
mainfrom
da/0840/tm-define

Conversation

@da-liii

@da-liii da-liii commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • 启动加载 TeXmacs/progs/generic/diff-text.scm 时报 6 条 warning: conditional master routine ...is-diff-active? / diff-enable? / diff-feedback / trigger-diff-text / accept-diff / reject-diff)。
  • 根因:tm-define 宏链依赖展开期全局 cur-conds/cur-props 累积;模块内若同时存在带 :requiretm-definekbd-tab/keyboard-press/mouse-event 重载),tm-define-overloaded 实际展开时读到的 cur-conds 已被污染,导致首次定义的 master routine 被误判为带 condition(参见 TeXmacs/progs/kernel/texmacs/tm-define.scm:333-336)。
  • 修复:这 6 个纯函数无 :require、也不被别处重载,改为 define-public 绕开 tm-define 机制;tm-define 实现未改。语义不变。

Test plan

  • xmake b stem 构建通过
  • build/linux/x86_64/release/moganstem -headless -d -x "(quit-TeXmacs)" 启动日志不再出现 conditional master routine 告警
  • 商业版构建后按 devel/0840.md §3.2 交互流程验证 diff-text 功能仍正常

🤖 Generated with Claude Code

da-liii and others added 2 commits July 20, 2026 17:23
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
tm-define 宏链依赖展开期全局 cur-conds 累积,模块内若同时存在带
:require 的 tm-define(kbd-tab/keyboard-press/mouse-event 重载),
会让首次定义的 master routine 在 tm-define-overloaded 实际展开时
读到被污染的 cur-conds,误触发 "conditional master routine" warning。
is-diff-active?/diff-enable?/diff-feedback/trigger-diff-text/
accept-diff/reject-diff 没有 :require 也不被重载,改为 define-public
绕开该机制,语义不变。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@da-liii
da-liii merged commit e5144d8 into main Jul 20, 2026
3 checks passed
@da-liii
da-liii deleted the da/0840/tm-define branch July 20, 2026 11:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant