这软件输出可把我整笑了,求解释。第一次对输出可信度产生质疑
mathematica吧
全部回复
仅看楼主
level 3
yb118 楼主
看图,区别就是注释在分号的前后。两次运行,第一行是否显示输出竟然还不一样,醉的不要不要的。
各位看客,被这输出整笑了吗?辛苦半个月写的程序,莫名其妙产生了2种输出结果,排查了一上午,才发现是这个无语的问题……[怒][怒][怒]于是有了上面的测试代码。没发现不一致的时候会不会有没有类似逗比问题导致程序结果错误谁知道呢???对这软件是越来越不放心了[喷][喷][喷]
2021年05月18日 03点05分 1
level 3
yb118 楼主
我不知道你说的什么操作,要源代码就是“
第一行;
第二行;(*我日这**注释*)
%
第一行;
第二行(*我日这**注释*);

了,没几行代码你自己也可以试试
2021年05月18日 03点05分 3
level 3
yb118 楼主
第一行;
第二行;(*我日这**注释*)
%
第一行;
第二行(*我日这**注释*);
%
2021年05月18日 03点05分 4
这个是纯复制粘贴,上楼还加了几行字还有个引号不知道会不会有影响?
2021年05月18日 03点05分
吧务
level 10
12.2成功复现问题。
粘贴来的代码的框符与手动输入的不同,%被划入注释所在的RowBox中。
按一下ctrl+shift+e就能比较区别了,如果不熟悉框符可以用ctrl+shift+n看看重建框符的结果。看了你就懂了。
最简单的例子是:
a;(**)
b
也许算BUG吧。
2021年05月18日 09点05分 7
这种代码曾在9.0.0~9.0.1之间出过另一个BUG,见MSE 20203
2021年05月18日 09点05分
BoxForm`ConvertForm不会进行错误的转换,看来是负责粘贴InputForm代码的转换器有点问题。这也不能说是什么大问题,因为复制到外部的InputForm代码往往会自动插入换行,粘贴回来的时候积极地消除换行也算是尽量使两个过程互逆。
2021年05月18日 09点05分
问题是,外边粘贴过来的会自动同行显示,一眼就能看出,mma自己的input代码复制粘贴到另一个input里,还是换行显示,这就迷惑人了!看起来%是两行,执行起来其实%在上一行末尾。直接导致%指代了错误的一行代码还不被明显的发现!程序内复制粘贴也算日常操作了,这重大的bug延续这么多年,醉
2021年05月18日 10点05分
@asdasd1dsadsa 谢谢你复现12.2版本的情况
2021年05月18日 10点05分
吧务
level 10
BoxForm`TopLevelMakeExpression[BoxData[{RowBox[{"a", ";", RowBox[{"(*", "*)"}]}], "\n", "b"}], StandardForm]
BoxForm`TopLevelMakeExpression[BoxData[RowBox[{"a", ";", RowBox[{"(*", "*)"}], "\n", "b"}]], StandardForm]
2021年05月18日 09点05分 8
吧务
level 10
基本可以定位,是前端令牌Paste的问题。
在插入ClipboardNotebook后应用前端令牌"SelectionDisplayAs"->"InputForm"也能复现相同问题。
2021年05月18日 10点05分 9
吧务
level 10
我已向WRI报告此问题,等待回复中。
2021年05月18日 10点05分 10
[大拇指][大拇指][大拇指]
2021年05月18日 12点05分
吧务
level 13
12.0简单复现步骤, 先输入
a;
b;
%
再补上 (**)
a;
b;(**)
%
优先级会解析为
a;
(b;(**)
%)
2021年05月18日 13点05分 11
吧务
level 10
三天过去了,WRI回复了两次,都说不知道问题在哪,让提供更多信息……
截图和复现程序都配齐了,而且从回复看来似乎回复者不知道什么是BoxForm转换。
目前我的Report还卡在审核人员手里,开发者还没见到……
2021年05月21日 11点05分 12
挺你[大拇指]
2021年05月21日 13点05分
有时候是会遇到水平不怎么高的客服……这种时候只能拉锯了。
2021年06月05日 02点06分
@xzcyr 他们已经复现出来了,信息传递给开发人员了。考虑到大多数人找客服估计都是提一些比较平凡的、或者实际不存在的问题,客服平均水平不高还是可以理解的。
2021年06月05日 08点06分
2021年06月05日 09点06分
1