gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 04:55:44 25 4
gpt4 key购买 nike

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

根据 typerex ( http://www.typerex.org/manual-index.html ) 的站点,我应该在 myocamlbuild 文件中添加一行,
Options.ocamlc := S [ A "ocp-ocamlc"]
,我确实喜欢这样:

let _ = dispatch & function
| Before_options ->
(* Set up to use ocamlfind *)
Options.ocamlc := S [ A "ocp-ocamlc"]

但我仍然遇到同样的问题。

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

我开始怀疑,因为显然 cmt 文件只支持 ocaml 4.0.0 或类似的东西(在某处阅读),所以我在某处得到了错误版本的东西(我不这么认为,但这并没有) '当然不能证明任何事情)。
网站上的文档有点稀疏,支持选项卡立即转发到 stackoverflow,所以我在这里,我想......

卡斯帕

最佳答案

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

Typerex 2 将显着不同的原因是 Typerex 以前/现在的设计使其部署过于繁重,并且如您所见,难以配置。在等待更完善的第二个版本时,您可以使用以下非常好的工具:

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

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

    关于ocaml - 带有 ocaml 3.12.1 和 emacs 的 typerex 1.0.1,未找到 cmt(i) 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16775304/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com