问题标签 [ocaml-dune]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - 在多文件项目中使用 dune + qtest
首先让我说我是 OCaml 的一个完整的初学者,所以如果我似乎做出了一些奇怪的选择,我很可能没有意识到它们是一个选择。
我正在尝试在我的项目中进行单元测试。经过一番搜索,我决定了qtest.lib
。
我的项目设置如下:
在dune
文件中,我写道:
在mylib.ml
中,我输入了以下代码:
此时,一切都按预期工作:
如果我尝试在项目中引入另一个文件,问题就开始了。我创建helper.ml
了以下内容:
现在,dune runtest
错误出来了
在我复制它的其他一些尝试中,提到的文件是_build/default/.mylib.inline-tests/inline_test_runner_mylib.ml-gen
.
我首先假设这意味着我错误地组织了我的文件。但是,我可以Helper.bar
访问mylib.ml
:
因此,我不知道这里可能出现什么问题。这是怎么回事?
ocaml - 沙丘中 package.opam 文件的目的是什么?
沙丘文档写道:
一个典型的 dune 项目将在根目录有一个 dune-project 和一个或多个 .opam 文件,以及任何有趣的东西的 dune 文件:库、可执行文件、测试、要安装的文档等……</p>
这个 package-name.opam 文件在根目录的目的是什么?据我所知,它与很好地打包东西以导出到 opam 有关,但是如果我们不想将我们的代码作为包发布到 opam,那么 package.opam 文件没有其他用途吗?
ocaml - 使用沙丘生成 OCaml 文档
我在我的项目的内部包中,我运行了dune build @doc
. 它不会抱怨并运行到完成。然后我检查/_build/default
目录,没有_doc
目录存在。
我错过了什么吗?
package - 如何使用 dune ocaml 将本地库包含到可执行文件中
我有一个结构如下的项目:
bin.ml
:
dune
:
Readertsp.ml
:https ://pastebin.com/U0h69uRy
dune
:
当我尝试沙丘构建时,我收到此错误:
你知道如何解决这个问题吗?
ocaml - 冻结依赖项
有哪些可用的解决方案/实践来减少移动部分并选择一些经过某种方式审查的精确依赖项集(nix 样式哈希、冻结文件、开关签名等)?
语境 :
我检查了Base和dune build
它。我(预期)通过选择最前沿(尽管如此)遇到了一些问题opam repo add janestreet-bleeding https://ocaml.janestreet.com/opam-repository
,这导致了我对 OCaml 生态系统的质疑。
optimization - 如何在 ocaml 中将 Flambda 与沙丘一起使用?
我正在做一个项目,我需要尽可能多地优化我的代码,因为正常编译需要几个小时才能运行。
有人告诉我使用 Flambda,但我在互联网上没有找到任何关于如何将它与沙丘一起使用的信息。
我很感激遵循/资源阅读的说明。
ocaml - 用 ocaml dune 构建“hello world”
按照https://dune.readthedocs.io/en/stable/quick-start.html上的教程,我创建了一个hello_world.ml
包含
和一个dune
包含
然后输入
但它抱怨其他(完全不相关的)文件中的错误。
dune
即使文件中没有提到其他文件(甚至递归地),沙丘是否有可能查看其他文件?以及如何预防?
ocaml - 使用 dune 编译时包含嵌套在子目录中的 mly 文件
假设我有以下目录:
由于我希望所有内容都在同一个库中,因此我有以下内容:
源/沙丘:
它编译得很好。
现在,问题是,我的 file1 和 file2 实际上是 mly 文件,所以我有这个:
如果我尝试编译(通过在沙丘文件中通过解析器(1|2)更改文件(1|2)),我会遇到以下错误:
我编辑我的沙丘文件:
现在有两个错误:
好的,然后我在 parser(1|2) 目录中添加两个沙丘文件:
[编辑] 看起来我错过了一些东西,但这实际上工作得很好
我现在有和以前一样的错误:
我错过了什么可以取悦沙丘吗?(如果我有 .mll 文件,我也会遇到同样的问题)
debugging - 如何使用 Dune 文件和 VSCode (MacOS) 调试 OCaml 程序
我正在寻找调试 OCaml 程序,实际上在我的情况下,它实际上是来自库的内联测试,在带有 VSCode 的 mac 上。当我尝试直接在 VSCode 中调试时,它要求我选择一个环境,似乎没有任何 ocamldebug 所以我选择 lldb 然后它出错,因为我没有启动文件。有一个启动文件蓝图,但它要求提供程序路径,所以我又回到了原点。
ocaml - 如何使用 dune 运行单个 OCaml 内联测试?
我正在尝试在沙丘项目中在 OCaml 中运行单个内联测试。我拥有的唯一命令是dune test
运行所有测试。我似乎找不到运行单个测试的命令。