一句话:提出编译器指导的方法,自动迁移因库 API 破坏性变更而失效的客户端代码调用点。
库开发者修复缺陷、增加特性或重构代码时可能引入 API 破坏性变更(如重命名),导致客户端项目出现大量编译错误。客户端程序员必须反复升级库调用点,但过程繁琐易错,且他们常不熟悉新版 API 用法。已有迁移方法要么挖掘 API 映射,要么学习编辑脚本;前者难以处理复杂情况,后者缺乏充足训练源(如迁移提交)。标题表明本文采用编译器指导的调用点迁移,但摘要未给出具体技术细节、关键结果与评估。
API developers evolve software libraries to fix bugs, add new features, or refactor code, but the evolution can introduce API-breaking changes (e.g., API renaming). To benefit from such evolution, the programmers of client projects have to repetitively upgrade the callsites of libraries, since API-breaking changes introduce many compilation errors. It is tedious and error-prone to resolve such errors, especially when programmers are often unfamiliar with the API usages of newer versions. To migrate client code, the prior approaches either mine API mappings or learn edit scripts, but both the research lines have inherent limitations. For example, mappings alone cannot handle complex cases, and there is no sufficient source (e.g., migration commits) for learning edit scripts.