问题标签 [ocsigen]

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 回答
190 浏览

facebook - ocsigenserver:main:对未定义的全局“Https_client”的引用

我有一个名为 Facebook.ml 的文件,它使用 Netclient 库中的 Https_client 模块。我已将该文件编译为 Facebook.cmo,并且可以在顶层和我编译的其他代码中使用所有函数而不会出现任何问题。

但是,ocsigenserver 无法在 Netclient 库中找到 Https_client 模块,当我测试我的 ocsigen 构建时,make test.byte我收到了错误

我在 .conf.in 文件中添加了以下行:

我正在编译 Facebook.ml

我做错了什么?


按照 Drup 的建议,我将 Makefile.options 文件更新为

收到错误:

但我知道该文件确实存在于指定的文件路径中。我需要在其他任何地方添加路径吗?

0 投票
2 回答
451 浏览

ocaml - Lwt 和递归函数

可以使用 Lwt.return 作为递归函数中的最终调用吗?

我有一个编译得很好但运行不正常的函数,它看起来像f下面的函数。请假设g本示例中提供的任何功能都没有问题,我基本上只是想找出具有以下形式的功能是否可以,或者是否有更好/更简单(并且符合 Lwt)的方式执行以下操作:

我很确定我做错了。但是我使用的实际功能比这个例子复杂得多,所以我很难调试它。

0 投票
1 回答
138 浏览

ocaml - Ocsigen/Eliom:如何删除不必要的 JavaScript?

我正在使用 Ocsigen 框架进行 Web 编程的第一步。我可以构建简单的应用程序,但我注意到 Ocsigen 会生成大量不必要的 JavaScript 代码。即使是完全没有交互式组件的Hello world 示例,也会生成并包含一个 400 KB 的 JavaScript 文件。有没有办法告诉它不要那样做?

我在测试一个使用内部链接的简单应用程序时首先注意到了这个问题;关闭 JavaScript 进行测试工作正常,但重新打开 JavaScript 后,我​​注意到每个链接实际上都有一个相关联的 JavaScript 片段,我没有编写也无法控制。显然,如果网站没有它也能正常工作,则不需要此代码。我真的很想避免这种情况。有小费吗?

0 投票
1 回答
284 浏览

ocaml - ocsigenserver.opt 在 Unix.ECONNREFUSED 启动时失败

我的 ocsigen 服务器已经正常工作了一段时间,但就在我要向某人展示它时,它在启动时喷出这个,然后退出失败:

我该如何解决?

0 投票
1 回答
112 浏览

ocaml - Eliom 客户端到客户端消息传递 - Eref 范围问题

最近我一直在尝试更好地理解 Eliom 的通信功能,为此我尝试构建一个简单的网页,允许用户相互发送消息。

如果我通过 Firefox 以一个用户身份登录,通过 Chrome 以第二个用户身份登录,则该网页可以正常工作。但是,当我在同一个浏览器中登录两个不同的用户并尝试从一个用户向另一个用户发送消息(即从一个选项卡到另一个选项卡)时,发送的任何消息都会显示在所有选项卡上,而不仅仅是预期收件人的选项卡。

我相信我可能对 erefs 的选择范围或我在哪里设置/获取范围和 erefs(顶级与服务定义)有一些问题。

我正在尝试纠正我的错误,以便两个用户可以登录到同一浏览器的两个不同选项卡并相互发送消息,并且消息仅显示在正确的用户选项卡上。

注意:部分代码取自 Eliom 网站教程: http ://ocsigen.org/tuto/4.2/manual/how-to-implement-a-notification-system

我的 .eliom 文件:

0 投票
2 回答
223 浏览

ocaml - eliom 5.0.0:无法正常工作

我已将 eliom 更新到通过 opam 安装的最新版本 (5.0.0),但它失败了。我已经尝试使用 4.02.1 和 4.02.3 编译器,但是,它无法编译基本的 eliom :

任何想法 ?

0 投票
2 回答
504 浏览

macos - 找不到 js_of_ocaml.ppx

我正在尝试运行 js_of_eliom,但它似乎没有 ppx_deriving 这是我在制作时收到的消息:

当我执行 ocamlfind 查询 js_of_ocaml.ppx 时,我得到了这个:

但我已经安装了 ppx_deriving,opam 列表显示它:

我正在使用 el capitan(10.11) 在 mac osx 中运行,知道为什么会这样吗?

编辑

哦,对不起,我还安装了 js_of_ocaml,这出现在我的 ocamlfind 中:

0 投票
1 回答
678 浏览

ocaml - 未实现的 Javascript 原语 caml_pure_js_expr

我想编写和编译cubes.ml这样1)它包装了一个OCaml函数来制作一个可以在Web中调用的JS函数;2)OCaml函数和字节码在Linux下仍然可以在命令行中测试。

cubes.ml如下:

以下 2 个命令生成一个字节码T,并转换Tcubes.js

我测试过 的函数可以很好jsOneArgumentcubes.js被其他的JS或者HTML文件调用。所以我的 1) 目标得到了满足。

但是,我的 2) 目标无法满足:./T返回错误:

虽然node cubes.js返回hello,但我确实需要能够./T直接测试,因为当出现错误时,它会很好地显示错误位置,而显示的信息node cubes.js是不可读的......

那么有谁知道如何解决这个问题?

PS:node --versionv6.1.0npm --version3.8.6; ocaml -versionThe OCaml toplevel, version 4.02.3. js_of_ocaml --version2.7.

0 投票
1 回答
267 浏览

js-of-ocaml - 包装一个返回记录的 OCaml 函数

我已经定义了一个 OCaml 函数manipulate: string -> string。我把它包装成一个 JS 函数jsManipulate

现在,我想manipulate返回更多信息,而不仅仅是一个字符串;我希望它返回一条记录: OCaml 格式的manipulate: string -> myrecord位置myrecord = { result: string; info_1: int; info_2: bool }

在这种情况下,有谁知道如何包装manipulate以制作一个 JS 函数,该函数还从 JS 字符串返回一个 JS 记录(或对象?)?

PS:我只想调用manipulate一次(而不是3次)来构建JS对象。

0 投票
1 回答
190 浏览

js-of-ocaml - 从 Eliom 客户端代码调用外部 Js 库

我现在正在尝试 Eliom,看看我能用它做什么。我想从我的 eliom 客户端代码中调用一个外部 javascript 库。我正在尝试的示例代码如下:

相当于简单的javascript:

从 OCaml 代码对 Three.js 的简单调用。现在,我还不能 100% 确定语法,但我观察到 THREE 是未定义的,因为这段代码是在加载 Three.js 之前执行的。

我该怎么做: 1)在 js_of_ocaml 生成的文件之前包含 js 文件;或者 2) 在生成的 js 文件中包含 Three.js;或 3) 其他选择?

目前,页面是这样生成的:

先感谢您