Skip to content

[feat] 重构 Incision API 与跨版本运行时后端 - #723

Merged
Bkm016 merged 1 commit into
TabooLib:dev/6.3.0from
FxRayHughes:fix/incision-review
Jul 28, 2026
Merged

[feat] 重构 Incision API 与跨版本运行时后端#723
Bkm016 merged 1 commit into
TabooLib:dev/6.3.0from
FxRayHughes:fix/incision-review

Conversation

@FxRayHughes

Copy link
Copy Markdown
Contributor

变更内容

  • 引入 Incision Gate API v2 的结构化 Selector / Pointcut,保留单行 scope 兼容;两者同时声明时警告并优先使用 scope
  • 移除 NMS Namespace 选择,让宿主、方法/字段、descriptor 与 Site INVOKE/FIELD/NEW 统一沿用 TabooLib NMS remap 自动转换。
  • 按 defining ClassLoader 隔离 transformer、原始字节、dispatcher、matcher 与 native callback,并完善卸载清理。
  • 将 Backend 安装改为带状态确认和回滚的流程,修复 retransform 失败仍登记成功、整类 remap 污染服务端字节码等问题。
  • 修复 native 缓存/提取并发与生命周期问题,补充 Bridge/Gate 跨 ClassLoader 调度约束。
  • 统一 Scope、Site、InsnPattern 的扫描与织入路径,并增加命中数量契约、predicate 编译拒绝和版本 matcher 隔离。

兼容性与测试

  • Incision-Test 功能矩阵覆盖 Paper 1.12.2、1.16.5、1.20.6、1.21.11、26.2 与 Spigot 26.1.2。
  • 覆盖 Java 8、16、21、25/26,以及 JVMTI、Instrumentation 和 Backend 回滚合约。
  • 适用节点均为 0 fail;Paper 1.16.5、1.20.6、1.21.11 完整 372 项通过。
  • 完成 Adyeshach API 与 NMS helper 的真实跨 PluginClassLoader Lead/Trail/Splice/Site INVOKE 测试。
  • JMH 1.37 完成 6 服务端 × 2 Backend 共 72 条 ns/op 结果,并附原始 JSON、日志、CSV、Python 图表与复现脚本。
  • 已执行 :module:incision:publishToMavenLocal -PdevLocal --no-daemon 与 Incision-Test clean build --no-daemon

文档

  • 更新 Incision README,增加 Scope/Pointcut 优先级与 NMS 单份代码跨版本写法。
  • 新增 Scope 到 Pointcut 迁移指南、功能测试报告、JMH 性能报告和模块设计概览。
  • 删除已被实际测试报告取代的 review 文档。

本分支没有对应的上游 Issue,因此不添加虚构的 Closes 关联。

@FxRayHughes
FxRayHughes force-pushed the fix/incision-review branch from 58723ec to e916f1d Compare July 28, 2026 07:55
@Bkm016
Bkm016 merged commit 75b18a2 into TabooLib:dev/6.3.0 Jul 28, 2026
0 of 2 checks passed
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.

2 participants