吧务
level 15
xzcyr
楼主
相当古怪的bug,开帖说一下。此bug的重现步骤如下。
1.
执行如下代码:
BeginPackage["abc`"];
EndPackage[];
abc`Det;
Det[{{1, 2}, {3, 4}}]
执行后会发现Det变红,且最后一行原样返回,这是意料之中的。
2.
执行
Exit
关闭内核。
3.
重启内核,执行
BeginPackage["abc`"];
EndPackage[];
注意,Det[{{1, 2}, {3, 4}}]和上面两行代码不要放在同一个单元内。执行完上述代码后,你会发现,Det立刻变红了,进一步执行
?? *`Det
我们会看到 abc`Det 已经冒出来了,尽管我们这一轮根本没创建过这个符号。
顺便说一句,我会撞上这个bug,是因为 VectorAnalysis` 程序包不知道从啥时候开始,为了保证高版本可用性,使用了一个肮脏的策略:它居然把程序包里的所有符号全塞到 System` 里了……
2025年09月28日 06点09分
1
1.
执行如下代码:
BeginPackage["abc`"];
EndPackage[];
abc`Det;
Det[{{1, 2}, {3, 4}}]
执行后会发现Det变红,且最后一行原样返回,这是意料之中的。
2.
执行
Exit
关闭内核。
3.
重启内核,执行
BeginPackage["abc`"];
EndPackage[];
注意,Det[{{1, 2}, {3, 4}}]和上面两行代码不要放在同一个单元内。执行完上述代码后,你会发现,Det立刻变红了,进一步执行
?? *`Det
我们会看到 abc`Det 已经冒出来了,尽管我们这一轮根本没创建过这个符号。
顺便说一句,我会撞上这个bug,是因为 VectorAnalysis` 程序包不知道从啥时候开始,为了保证高版本可用性,使用了一个肮脏的策略:它居然把程序包里的所有符号全塞到 System` 里了……