小编ygr*_*rek的帖子

构建和构建OCaml项目的首选方法是什么?

对于生态系统的新手来说,目前尚不清楚构建和管理中小型OCaml项目的规范首选方式.我理解ocamlc&c.的基础知识- 它们反映了传统的UNIX C编译器,看起来很简单.但是,高于单个文件的一次性编译水平,目前还不清楚如何最好地简单干净地管理编译.问题不是寻找潜在的工具,而是通过社区的经验验证一种或几种正确的(足够的)方法来构建和构建标准的OCaml项目.

我的模型用例是一个适度但非常重要的项目,纯OCaml或OCaml加上C依赖项.这样一个项目:

  1. 包含许多源文件
  2. 链接到许多标准库
  3. 链接到一个或多个第三方库
  4. 可选地包括C库和OCaml包装器作为子项目(尽管这也可以单独管理并作为第三方库包含,如(3)中所示)

几个替代工具脱颖而出:

  • 自定义Makefile似乎是大多数开源OCaml包中的通用标准,但看起来令人沮丧的冗长和复杂 - 甚至比适度的C/C++项目更令人沮丧.更糟糕的是,许多甚至看似简单的OCaml库层都将autoconf/automake置于顶层,以实现更高的复杂性.
  • ocamlbuild似乎提供了一种现代化,简化的机制,可以使用最少的配置自动化构建,但是对于新手来说没有很好的文档记录,在OCaml生态系统的介绍性材料中也没有示例,也没有被各种已发布的OCaml项目明显使用.我一直在寻找灵感.
  • OASIS似乎是其他构建系统顶层的约定和库代码层,以支持构建包管理器和库,如Cabal.

(我也看过OMake,它似乎是一个自封的" make++",它还包括一套常用语言的标准规则,包括OCaml和ocaml- makenéeOCamlMakefile,为GNU提供标准规则的模板make.)

这些都是管理OCaml构建的首选现代方式吗?

项目文件的结构如何最佳?

如何包含和管理第三方库依赖项?是首选在系统级别安装它们,还是有一种标准和直接的方式在本地管理项目?我更喜欢一种模式,其中项目尽可能保持独立.

ocaml makefile build ocamlbuild

57
推荐指数
4
解决办法
6297
查看次数

Concoqtion(Coq + MetaOCaml) - 为何放弃?

在OCaml邮件列表上窃听人们之前,我想我可能会在这里发布我的问题.我刚发现这个美女(链接到Concoqtion网站).Concoqtion是MetaOCaml的扩展,它允许索引类型(可能还有更多).有了它,很容易创建列表,其中包括列表的长度:

type ('n:'(nat),'a) listl =
   | Nil : ('(0),'a) listl
   | Cons of let 'm:'(nat) in 'a * ('(m),'a) listl : ('(m+1),'a) listl
Run Code Online (Sandbox Code Playgroud)

这(m+1)是在类型级别完成的.井井有条.

但是,最后一个版本是2007年(OCaml 3.08).有谁知道为什么这个项目被取消,或者今天OCaml有类似的东西?

ocaml types coq metaocaml

7
推荐指数
1
解决办法
342
查看次数

编写类型为'a - > string的函数

出于调试目的,我想在OCaml中有一个函数转换为字符串任意类型,调试器目前有一个,但是有一个很酷.

sexplib库是完美的,但事实是我不能修改我需要添加的所有类型with sexp,我也不能使用camlp4.

有这样的功能吗?(它不会出现在生产代码上,所以我接受了肮脏的解决方案)

像Haskell的Show类型类似的东西正是我的意思.

谢谢你的时间

ocaml

6
推荐指数
1
解决办法
434
查看次数

标签 统计

ocaml ×3

build ×1

coq ×1

makefile ×1

metaocaml ×1

ocamlbuild ×1

types ×1