跳到内容
新问题

对这个项目有疑问吗?注册一个免费的GitHub帐户以打开一个问题,并联系其维护者和社区。

单击“注册GitHub”,表示您同意我们的服务条款隐私声明。我们偶尔会向您发送与帐户相关的电子邮件。

已经在GitHub上了?登录到您的帐户

无法使用SIGINT中断执行 #68

关闭
5项任务中的1项
JohnReppy公司已打开此问题2022年7月15日·5条评论
关闭
5项任务中的1项

无法使用SIGINT中断执行 #68

JohnReppy公司已打开此问题2022年7月15日·5条评论
受让人
标签
缺陷 有些东西不起作用了 编译器 编译器问题 固定在110.99.3中 将在110.99.3版本中修复的问题 gforge公司 从smlnj-gforge存储库移植的错误(或功能请求)

评论

@JohnReppy公司
复制链接
贡献者

JohnReppy公司 评论2022年7月15日

版本

110.99.2

操作系统

  • 全部
  • Linux操作系统
  • macOS操作系统
  • 窗户
  • 其他Unix

操作系统版本

无响应

处理器

无响应

组件

核心系统

严重程度

专业

问题描述

在smlnj v110.99.2中,我无法通过向smlnj发送SIGINT来中断表达式的执行。
例如,如果我运行一个无限循环而true do();,按CTRL-C无法停止。
旧版本的smlnj似乎没有这个问题。在smlnj v110.79中,我可以使用CTRL-C停止无限循环:

新泽西州标准ML v110.79[建造日期:2019年10月27日星期日08:29:41]

  • 而true do();

中断

成绩单

无响应

预期行为

无响应

复制步骤

无响应

其他信息

无响应

电子邮件地址

无响应

smlnj-gforge的意见

原始smlnj gforge错误编号311

2022-05-19 23:50:00提交

评论人@JohnReppy公司2022-05-20 09:20:00+000 UTC

我无法重现此错误(macOS/arm64),因为报告没有提供任何联系信息,也没有指定Unix/architecture的版本,所以我无法进行进一步测试或要求提供更多信息。

@JohnReppy公司 JohnReppy公司补充缺陷 有些东西不起作用了 编译器 编译器问题 gforge公司 从smlnj-gforge存储库移植的错误(或功能请求)标签2022年7月15日
@JohnReppy公司
复制链接
贡献者 作者

我还验证了这个问题在110.99.3中的Linux上不是问题。

@JohnReppy公司 JohnReppy公司补充这个固定在110.99.3中 将在110.99.3版本中修复的问题标签2022年7月19日
@JohnReppy公司
复制链接
贡献者 作者

根据原始提交者的电子邮件,问题实际上在于跨导出ML。如果在以下情况下将信号设置为在环境中忽略导出ML调用时,该行为将在程序重新启动时保留。我们需要弄清楚信号语义的精确描述(以及它如何与导出ML导出Fn)并纠正实施。

@JohnReppy公司 JohnReppy公司重新打开了这个2022年7月20日
@JohnReppy公司 JohnReppy公司远离的这个固定在110.99.3中 将在110.99.3版本中修复的问题标签2022年7月20日
@JohnReppy公司
复制链接
贡献者 作者

通过将信号处理程序状态的设置延迟到堆映像加载后,修复了此问题。此更改意味着在创建图像时忽略的信号不会被忽略,但在运行图像时不会被忽略。

@JohnReppy公司 JohnReppy公司补充这个固定在110.99.3中 将在110.99.3版本中修复的问题标签2022年7月22日
JohnReppy公司添加了提交引用的这个问题 2022年7月22日
还更新了110.99.3的自述文件。
@cwfoo公司
复制链接

我是这个错误报告的原始提交者。为了便于以后参考,这里是邮件列表线程的摘录,我在其中提供了有关此错误的其他信息:

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。

@JohnReppy公司
复制链接
贡献者 作者

你还在110.99.3中遇到问题吗?

免费注册 在GitHub上加入此对话.已经有账户了吗?登录以发表评论
标签
缺陷 有些东西不起作用了 编译器 编译器问题 固定在110.99.3中 将在110.99.3版本中修复的问题 gforge公司 从smlnj-gforge存储库移植的错误(或功能请求)
项目
还没有
开发

没有分支或拉请求

2名参与者