问题标签 [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.

0 投票
2 回答
71 浏览

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

因此,我不知道这里可能出现什么问题。这是怎么回事?

0 投票
1 回答
128 浏览

ocaml - 沙丘中 package.opam 文件的目的是什么?

沙丘文档写道:

一个典型的 dune 项目将在根目录有一个 dune-project 和一个或多个 .opam 文件,以及任何有趣的东西的 dune 文件:库、可执行文件、测试、要安装的文档等……</p>

这个 package-name.opam 文件在根目录的目的是什么?据我所知,它与很好地打包东西以导出到 opam 有关,但是如果我们不想将我们的代码作为包发布到 opam,那么 package.opam 文件没有其他用途吗?

0 投票
1 回答
69 浏览

ocaml - 使用沙丘生成 OCaml 文档

我在我的项目的内部包中,我运行了dune build @doc. 它不会抱怨并运行到完成。然后我检查/_build/default目录,没有_doc目录存在。

我错过了什么吗?

0 投票
2 回答
90 浏览

package - 如何使用 dune ocaml 将本地库包含到可执行文件中

我有一个结构如下的项目:

bin.ml

dune

Readertsp.mlhttps ://pastebin.com/U0h69uRy

dune

当我尝试沙丘构建时,我收到此错误:

你知道如何解决这个问题吗?

0 投票
0 回答
56 浏览

ocaml - 冻结依赖项

有哪些可用的解决方案/实践来减少移动部分并选择一些经过某种方式审查的精确依赖项集(nix 样式哈希、冻结文件、开关签名等)?

语境 :

我检查了Basedune build它。我(预期)通过选择最前沿(尽管如此)遇到了一些问题opam repo add janestreet-bleeding https://ocaml.janestreet.com/opam-repository,这导致了我对 OCaml 生态系统的质疑。

0 投票
1 回答
102 浏览

optimization - 如何在 ocaml 中将 Flambda 与沙丘一起使用?

我正在做一个项目,我需要尽可能多地优化我的代码,因为正常编译需要几个小时才能运行。

有人告诉我使用 Flambda,但我在互联网上没有找到任何关于如何将它与沙丘一起使用的信息。

我很感激遵循/资源阅读的说明。

0 投票
1 回答
53 浏览

ocaml - 用 ocaml dune 构建“hello world”

按照https://dune.readthedocs.io/en/stable/quick-start.html上的教程,我创建了一个hello_world.ml包含

和一个dune包含

然后输入

但它抱怨其他(完全不相关的)文件中的错误。

dune即使文件中没有提到其他文件(甚至递归地),沙丘是否有可能查看其他文件?以及如何预防?

0 投票
1 回答
54 浏览

ocaml - 使用 dune 编译时包含嵌套在子目录中的 mly 文件

假设我有以下目录:

由于我希望所有内容都在同一个库中,因此我有以下内容:

源/沙丘:

它编译得很好。

现在,问题是,我的 file1 和 file2 实际上是 mly 文件,所以我有这个:

如果我尝试编译(通过在沙丘文件中通过解析器(1|2)更改文件(1|2)),我会遇到以下错误:

我编辑我的沙丘文件:

现在有两个错误:

好的,然后我在 parser(1|2) 目录中添加两个沙丘文件:

[编辑] 看起来我错过了一些东西,但这实际上工作得很好

我现在有和以前一样的错误:

我错过了什么可以取悦沙丘吗?(如果我有 .mll 文件,我也会遇到同样的问题)

0 投票
0 回答
34 浏览

debugging - 如何使用 Dune 文件和 VSCode (MacOS) 调试 OCaml 程序

我正在寻找调试 OCaml 程序,实际上在我的情况下,它实际上是来自库的内联测试,在带有 VSCode 的 mac 上。当我尝试直接在 VSCode 中调试时,它要求我选择一个环境,似乎没有任何 ocamldebug 所以我选择 lldb 然后它出错,因为我没有启动文件。有一个启动文件蓝图​​,但它要求提供程序路径,所以我又回到了原点。

0 投票
0 回答
45 浏览

ocaml - 如何使用 dune 运行单个 OCaml 内联测试?

我正在尝试在沙丘项目中在 OCaml 中运行单个内联测试。我拥有的唯一命令是dune test运行所有测试。我似乎找不到运行单个测试的命令。