我们阅读了每一条反馈,并非常认真地对待您的意见。
要查看所有可用的限定符,请参阅我们的文档.
对这个项目有疑问吗?注册一个免费的GitHub帐户以打开一个问题,并联系其维护者和社区。
单击“注册GitHub”,表示您同意我们的服务条款和隐私声明。我们偶尔会向您发送与帐户相关的电子邮件。
已经在GitHub上了?登录到您的帐户
110.99.2
无响应
核心系统
专业
在smlnj v110.99.2中,我无法通过向smlnj发送SIGINT来中断表达式的执行。例如,如果我运行一个无限循环而true do();,按CTRL-C无法停止。旧版本的smlnj似乎没有这个问题。在smlnj v110.79中,我可以使用CTRL-C停止无限循环:
而true do();
新泽西州标准ML v110.79[建造日期:2019年10月27日星期日08:29:41]
2022-05-19 23:50:00提交
我无法重现此错误(macOS/arm64),因为报告没有提供任何联系信息,也没有指定Unix/architecture的版本,所以我无法进行进一步测试或要求提供更多信息。
文本已成功更新,但遇到以下错误:
我还验证了这个问题在110.99.3中的Linux上不是问题。
对不起,出了点问题。
根据原始提交者的电子邮件,问题实际上在于跨导出ML。如果在以下情况下将信号设置为在环境中忽略导出ML调用时,该行为将在程序重新启动时保留。我们需要弄清楚信号语义的精确描述(以及它如何与导出ML和导出Fn)并纠正实施。
导出ML
导出Fn
通过将信号处理程序状态的设置延迟到堆映像加载后,修复了此问题。此更改意味着在创建图像时忽略的信号不会被忽略,但在运行图像时不会被忽略。
修复问题 #68 (无法使用中断执行 SIGINT公司).
SIGINT公司
9c7357e号
还更新了110.99.3的自述文件。
我是这个错误报告的原始提交者。为了便于以后参考,这里是邮件列表线程的摘录,我在其中提供了有关此错误的其他信息:
SML/NJ版本:v110.99.2操作系统:Ubuntu 20.04(Linux 5.13.0) 如果我运行无限循环而true do();,我无法阻止它按下CTRL-C。根据/proc/{pid}/status,SML/NJ被忽略信号: SigPnd:SigBlk公司:信号:INT(2)QUIT(3)信号Cgt:FPE(8)SEGV(11)终端(15)
SML/NJ版本:v110.99.2操作系统:Ubuntu 20.04(Linux 5.13.0)
如果我运行无限循环而true do();,我无法阻止它按下CTRL-C。根据/proc/{pid}/status,SML/NJ被忽略信号:
SigPnd:SigBlk公司:信号:INT(2)QUIT(3)信号Cgt:FPE(8)SEGV(11)终端(15)
我做了一些测试,发现只有当SML/NJ在SIGINT被忽略的相对不寻常的环境中构建(我碰巧通过GNU Guix安装了smlnj)。我能够做到通过安装,在Ubuntu 20.04中可靠地重现问题SML/NJ 110.99.2使用以下步骤: $wget(美元)http://smlnj.cs.uchicago.edu/dist/working/10.99.2/config.tgz'$tar xvf配置.tgz$trap“”情报$config/install.sh-默认值64 生成的sml可执行文件将忽略SIGINT。
我做了一些测试,发现只有当SML/NJ在SIGINT被忽略的相对不寻常的环境中构建(我碰巧通过GNU Guix安装了smlnj)。我能够做到通过安装,在Ubuntu 20.04中可靠地重现问题SML/NJ 110.99.2使用以下步骤:
$wget(美元)http://smlnj.cs.uchicago.edu/dist/working/10.99.2/config.tgz'$tar xvf配置.tgz$trap“”情报$config/install.sh-默认值64
生成的sml可执行文件将忽略SIGINT。
你还在110.99.3中遇到问题吗?
JohnReppy公司
没有分支或拉请求