Configuration 在本地init中包含global.ocamlinit

Configuration 在本地init中包含global.ocamlinit,configuration,ocaml,toplevel,Configuration,Ocaml,Toplevel,当存在项目local.ocamlinit时,我希望包括我的全局~/.ocamlinit文件,例如在本地目录中,因为我会在~/.ocamlinit中设置我的utop历史文件名 为此,我试过了 #use (Filename.concat (Sys.getenv "HOME") ".ocamlinit");; 当然,这不起作用,所以我看了一下,但它们似乎都采用字符串参数。如何最好地做到这一点 我想,更一般地说,问题是如何将非常量传递给顶级指令(不确定在计算任何代码之前是否对指令进行了预处理)。您可以

当存在项目local.ocamlinit时,我希望包括我的全局~/.ocamlinit文件,例如在本地目录中,因为我会在~/.ocamlinit中设置我的utop历史文件名

为此,我试过了

#use (Filename.concat (Sys.getenv "HOME") ".ocamlinit");;
当然,这不起作用,所以我看了一下,但它们似乎都采用字符串参数。如何最好地做到这一点


我想,更一般地说,问题是如何将非常量传递给顶级指令(不确定在计算任何代码之前是否对指令进行了预处理)。

您可以使用编译器libs包提供的编程接口。例如:

Topdirs.dir_use Format.err_formatter (Filename.concat (Sys.getenv "HOME") ".ocamlinit")
应在不需要任何依赖项的情况下工作