问题标签 [oasis]

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 投票
3 回答
286 浏览

ocaml - 如何为 OCaml 配置 _oasis 以设置“配置文件”标志

我在 OCaml 中有一个现有项目和一个_oasis文件。我不知道在哪里启用ocamlbuild.

我查阅了 Oasis 手册和代码,发现profilesetup.data 中有一个可用的变量。我认为这是 Oasis 自动生成的。

我应该在 _oasis 中包含哪些内容以设置profile为 true ?

0 投票
1 回答
613 浏览

module - 如何使用(或不使用)Oasis 制作多级模块层次结构

假设我有一组模块,每个模块都带有子模块。

此外,我希望这些灌木中的每一个都位于一个主模块下。

现在,很容易为每个M1M2M3使用 OasisPack:选项构建项目目录。特别是,我喜欢并试图解决的是(a)以标准.ml/.mli格式布置文件的能力和(b)ocamldoc生成正确链接的文档。

但是由于我想在一个公共模块层次结构下分发每个M1,M2M3在同一个库中,我不能使用Pack:,而是被迫将整个该死的东西放入一个文件中,以便 (a) 不会意外破坏全局命名空间,(b) 不会意外地在整个Home.命名空间中扩散不打算直接使用的模块,以及 (c) 不会破坏 ocamldoc 链接。

所以我的问题是,根据上述建议的目标,我如何使用 Oasis 创建具有这种形式的分层模块的包?

一些额外的限制包括:

  • M1., M2., 和M3.命名空间下的模块发生冲突绝非偶然——在真实情况下也会发生这种情况!
  • M2.和命名空间中的模块M3.依赖于命名空间中的模块M1.

我的偏好将能够得出一个解决方案,该解决方案还允许合理的文件布局,例如

也有可能这对 Oasis 来说是不可能的。在这种情况下,关于如何使用其他构建工具的建议是可以接受和欢迎的。假设我对其他工具知之甚少……因为这可能是真的!

0 投票
1 回答
471 浏览

ocaml - 用于简单 OCaml 项目的基本 Oasis 或 Opam 文件

我是 OCaml 的新用户。我问了一个问题来学习如何建立一个基本的 OCaml 项目,但我仍然有问题。跳到末尾以获得 TL;DR

例如,我正在尝试学习 Irmin。在Irmin 的主页上,我看到我必须做

这样做,我最终得到了 Irmin 版本 0.8.3。不幸的是,我不能效仿他们的例子,因为显然 Irmin 的版本是 0.9.4,而且看起来 API 已经改变了。所以,我想开始一个干净的项目,只依赖 Irmin 0.9.4

首先,我设置了一个 opam 开关

确保从头开始工作。然后,我创建了一个_oasis看起来像这样的基本文件

然后我从 Irmin 主页中复制了示例example.ml

如果我这样做oasis setup,然后ocamlbuild example.ml我会得到一堆错误

所以简而言之,我的问题是:

建立一个依赖于 Irmin 0.9.4 的干净项目的最简单方法是什么,确保它是独立的(它不会依赖于构建过程安装的预安装库)?

0 投票
1 回答
73 浏览

ocaml - 使用 OASIS 输出汇编文件

使用 OASIS 构建时,有没有办法保留程序集文件?

我正在寻找比直接使用更简单的东西ocamlopt -S

0 投票
3 回答
582 浏览

ocaml - oasis 选择了错误的 ocamlbuild

我尝试使用 Opam 提供的 Ocaml 版本编译 Ocaml 项目。我的 ocamlbuild、ocamlfind 和 oasis 似乎还可以:

但是当我尝试编译时,似乎调用了错误的ocamlbuild版本,甚至ocamlfind的版本是正确的,我认为它解释了为什么ocamlfind找不到sexplib库。

我试图告诉 oasis 使用哪个版本的 ocambuild 没有成功,有人知道怎么做吗?谢谢

0 投票
2 回答
118 浏览

ocaml - ocaml-glpk(glpk 绑定)和 OASIS

前言:我是 OCaml、OPAM 和 OASIS 的新手。

tldr 问题:如何正确设置opam存储库中尚不可用的软件包(我不能这样做opam install X)?更多详情如下:

我正在尝试将ocaml-glpk 包含在 OCaml 项目中。我只是通过运行安装了 ocaml-glpk makemake install如 README 中所述,并且给定的示例编译并正确运行。但是,我正在使用 OASIS 来生成我的项目的构建系统,但我不知道如何设置它。我的文件中有相同的示例(重命名为glpkExample.ml文件src夹)和以下内容_oasis

运行后oasis setup -setup-update dynamic,我运行make并收到以下错误:

glpk 库似乎缺少编译本机可执行文件所需的 cmxa 文件。我不知道如何解决这个问题。为了正确编译glpkExample.ml,我的 Makefile 包含/home/dimitrios/.opam/system/lib/glpk并使用了OCamlMakefile非常长且令人费解的 . 任何有关使用 OASIS 进行设置或如何让 ocaml-glpk 与 OASIS 一起工作的帮助将不胜感激。

谢谢!

0 投票
1 回答
242 浏览

ocaml - 如何防止警告 ocamlbuild/oasis 警告?

我正在使用 OCaml 和 Oasis 为 ocamlbuild 生成适当的输入。

这里非常简单的问题 - 每次我编译我的软件时ocaml setup.ml -build都会收到以下警告:

我如何让这些停止?

编辑

我发现所有这些都是在 oasis 生成的 myocamlbuild.ml 中定义的。我使用的外壳 zsh 可能与 ocaml 源如何提取有关 ocamlfind 位置和其他变量等信息的方式不同。因此发出警告。我会看看我是否无法弄清楚如何修复警告。

0 投票
2 回答
388 浏览

ocaml - 如何告诉 _oasis 或 OCamlbuild 生成注释?

问题很简单:我在OCamlBuild或 Oasis 手册中的任何地方都找不到如何告诉该工具在编译时自动生成注释文件 (.cmt)。

注释文件很有用,因为当您使用 Emacs 时,当需要告诉您表达式的类型是什么时,Merlin 会吃掉它们。

0 投票
1 回答
105 浏览

ocaml - 如何强制 Oasis 在给定目录中构建文档?

我正在为 OCaml 项目使用Oasis构建系统,我想构建文档并将其放入${projectroot}/doc/api/.

现在,我的_oasis文件是这样的:

然后,我运行以下命令:

然后,我api.docdir/ --> _build/src/api.docdir/在项目的顶级目录中获得了一个链接,该链接指向我期望的文档。但是,似乎-d doc/api没有考虑到带有额外参数的 。

那么,我错过了什么?因为,我在这里有点没有想法......

0 投票
1 回答
128 浏览

ocaml - 如何在 Oasis 中添加额外的警告?

我有这个-w ..包含多个库的oasis 文件——我该如何启用-warn-error +a它们?


出于参考目的,给定的 oasis 文件如下所示: