首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有ocaml 3.12.1和emacs的typerex 1.0.1,未找到cmt(i)文件

带有ocaml 3.12.1和emacs的typerex 1.0.1,未找到cmt(i)文件
EN

Stack Overflow用户
提问于 2013-05-27 22:27:09
回答 1查看 191关注 0票数 2

有没有人设法让当前版本的typerex (我猜是1.0.1)完全工作在ocaml < 4.0.0上?我目前使用的是ocaml 3.12.1和emacs24。我按照typerex网站上的说明进行了操作,因此我下载了gz,执行了配置、制作和安装,并将emacs行添加到了我的.emacs文件中。如果我启动emacs,它会执行代码突出显示,但当我尝试从typerex下拉菜单中执行某些操作时,例如重命名,我得到一个“Command failed : No cmt(i) file for...”。

根据typerex (http://www.typerex.org/manual-index.html)的站点,我应该在myocamlbuild文件中添加一行。

Options.ocamlc := S [ A "ocp-ocamlc"]

,我是这样喜欢的:

代码语言:javascript
运行
复制
let _ = dispatch & function
  | Before_options ->
      (* Set up to use ocamlfind *)
      Options.ocamlc     := S [ A "ocp-ocamlc"]

但我还是遇到了同样的问题。

如上所述,我的.typerex文件指向我的_build,所以CMT _build (这是目前该文件中唯一存在的内容)。

我开始怀疑,因为显然只有ocaml 4.0.0或类似的版本才支持cmt文件(请在其他地方阅读),所以我是不是在某个地方得到了错误的版本(我不这么认为,但这并不能证明什么)。站点上的文档有点稀疏,support选项卡会立即转到stackoverflow,所以我想我来了……

卡斯珀

EN

回答 1

Stack Overflow用户

发布于 2013-05-28 17:38:08

从版本4.00开始,OCaml会生成.cmt文件。我相信Typerex的早期版本提供了一个经过特殊修改的OCaml编译器版本,它集成了-bin-annot分支,早在4.00发布之前-- -bin-annot正是在OCamlPro中为满足Typerex的需要而开发的。

Typerex 2之所以会有很大的不同,是因为之前/现在的Typerex设计使得它部署起来太过繁重,而且正如您所看到的,很难进行配置。在您等待更完善的第二个版本时,您可以使用以下非常好的工具:

  • Merlin是一个年轻的程序,它从正在编辑的OCaml缓冲区中增量地提取语法和键入信息(因此只有部分正确的源代码),以便提供早期错误反馈、类型感知完成等。它为Vim和Emacs提供了编辑器模式( Vim one现在更完善),我相信它是解决在部分完整源代码上获取增量信息问题的正确答案--它将比Typerex做得更好that.
  • ocamlspot是一个分析完整的OCaml源代码文件并提供语义信息的程序,目前主要是定义点信息。从4.00开始,它就依赖于-bin-annot机制,因此非常容易安装和部署(它以前存在很多与4.00Typerex之前相同的问题)。它也可以在Emacs和Vim中使用(但这一次Emacs界面看起来更精致)。

这些工具的组合不会为您提供Typerex、present或promised的所有功能(特别是没有太多可重构的功能),但它们依赖于可靠的设计,并且可能会随着时间的推移而很好地发展。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16775304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档