7月29日,GNU编译器集合(GCC)指导委员会正式宣布采纳一项全新的AI贡献政策。这项由GCC AI政策工作组历时数月起草的建议,为开源社区如何看待AI生成的代码投下了一枚重磅炸弹。
▍核心红线:“具有法律意义”的AI代码一概拒绝
政策的核心内容十分明确:GCC将拒绝任何“具有法律意义”的、由人工智能或大语言模型(LLM)生成或派生的代码贡献。
所谓“具有法律意义”,参照GNU项目维护者指南的定义——阈值约为15行代码和/或文本。也就是说,只要AI贡献的代码超过15行,就可能触及版权意义上的“红线”,GCC维护者将不予接收。这一决定意味着,在可预见的未来,GCC这一拥有数十年历史的开源编译器项目,将不再接受通过AI/LLM产生并可能涉及版权或法律风险的核心代码改动。
▍例外与空间:测试用例放行,轻量修改有条件接受
不过,政策并非“一刀切”式封杀。测试用例成为最大例外。政策明确写道:维护者可以接受“具有法律意义”的测试用例贡献,即便其完全或部分由LLM生成。这一安排反映出GCC社区在平衡法律风险与工程效率上的现实考量——测试用例用于验证编译器行为,本身较少涉及复杂的版权创新内容,引入AI有望大幅提升测试效率。
此外,对于 “法律意义不显著”的改动,如样式微调、注释修正等轻量修改,只要满足GCC一贯的贡献前置条件且在提交中清晰标注为AI生成内容,维护者也可以酌情接受。
更重要的是,政策并不禁止将LLM用于研究、分析、Bug发现和报告、补丁审查等辅助用途,前提是LLM的输出不包含在正式贡献中。
▍版权迷雾:AI生成代码的“身份危机”
GCC做出这一决定的根本原因,在于AI生成代码的版权归属存在根本性法律模糊。
早在今年4月的政策讨论邮件中,工作组成员就明确指出:AI生成代码的法律地位不明确、不具有版权性,无法满足GCC贡献的法律先决条件。更令人担忧的是,LLM可能直接“复述”一段带有版权声明但被剥离了版权头的代码,从而违反代码许可证的要求。
这与Linux内核的立场形成微妙对比。Linux内核今年4月出台的政策允许AI辅助代码进入内核,但要求人类提交者对AI生成的代码承担完全责任。而GCC选择了更保守的路线——直接拒收具有法律意义的AI生成代码。政策制定工作由Jonathan Wakely领导,工作组成员包括Carlos O‘Donell、Jason Merrill等多位GCC核心开发者。
▍行业风向:开源社区集体“排雷”
GCC并非孤例。在开源社区,对AI生成代码的警惕正在形成一股浪潮:
· OpenJDK:明确禁止提交由AI生成或部分生成的代码
· LLVM:有条件允许,但贡献者必须审查、理解代码并为质量负责
· glibc:同样倾向于不接受LLM生成的代码
GCC指导委员会表示,这项政策并非一成不变,而是一项“暂行”安排。项目相关利益方计划在2027年初重新审视该政策,届时将根据行业法律环境、开源社区实践以及AI技术本身的演进状况做出调整。
15行代码——这是GCC为AI划下的版权红线。在AI生成代码日益泛滥的今天,开源社区正在集体面对一个根本性问题:当代码的“作者”不再是人类,版权、许可证和法律责任该由谁来承担?
GCC给出了自己的答案:在迷雾散去之前,先说不。