跳到内容
新问题

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

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

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

使用引发错误异常 #60

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

使用引发错误异常 #60

JohnReppy公司已打开此问题2022年7月15日·1条评论
受让人
标签
缺陷 有些东西不起作用了 编译器 编译器问题 gforge公司 从smlnj-gforge存储库移植的错误(或功能请求) 无效 这似乎不对

评论

@JohnReppy公司
复制链接
贡献者

JohnReppy公司 评论2022年7月15日

版本

110.96

操作系统

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

操作系统版本

远景

处理器

x86(32位)

组件

核心系统

严重程度

次要

问题描述

当导出的代码(即通过exportML或exportFn)调用“use”时
使用的代码引发异常,我们得到的异常不是
引发了,但改为ExnDuringExecution。

这发生在exportFn导出的任何代码中,也发生在代码中
如果在REPL返回到
输入控制台。

其他评论:
有一个解决方法:始终使用导出ML并使用脚本发送
控制台输入以启动程序。但那真的很笨重。

成绩单

$sml@SMLload=错误.x86-win32[打开bug2.sml]Exn执行期间

预期行为

无响应

复制步骤

(*错误1.sml*)

乐趣 foo公司_ =(使用"错误2.sml" 手柄exn=>打印(通用消息exn);操作系统。流程.成功);SMLofNJ.出口Fn("缺陷",foo);
(*错误2.sml*)(提升Div):单位

其他信息

无响应

电子邮件地址

crary@cs.cmu.edu

smlnj-gforge的意见

原始smlnj-gforge错误号303

Karl Crary通过网络表单提交crary@cs.cmu.edu2022-03-28 14:53:00

评论人@德马奎恩2022-04-12 18:28:00+000 UTC

这不是一个bug,而是对“use”函数的“误用”,该函数仅用于顶级REPL。

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

我将此问题归类为“功能”,而不是错误。

问题的根源是以下因素的结合使用导出ML(我假设使用正在应用于错误1.sml以构建堆映像)。实施使用函数跟踪是否在的另一个实例中调用使用.自导出ML保留此状态使用属于错误2.sml看起来好像嵌套在的另一个实例中使用。彻底的解决方法是延迟导出ML直到编译完代码。

(*错误1.sml*)

乐趣 足球_ = (使用"错误2.sml" 手柄exn=>打印(通用消息exn);操作系统。过程.成功);乐趣 出口()=SMLofNJ.出口Fn("缺陷",foo);

然后可以在shell中执行以下操作:

回声 "导出();" |sml错误1.sml

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

没有分支或拉请求

1名参与者