問題タブ [ocaml-lwt]

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 投票する
1 に答える
211 参照

ocaml - ocaml-websocket のコンパイルに失敗しました

ocaml-websocket をビルドしようとすると、次のエラーで失敗します:

問題の関数行は、

以前のリリースで lwt API が変更された場合、何か考えはありますか?

0 投票する
1 に答える
483 参照

ocaml - How to fully utilise `lwt` in this case

Here is what I am going to do:

I have a list of task and I need to run them all every 1 hour (scheduling).

All those tasks are similar. for example, for one task, I need to download some data from a server (using http protocol and would take 5 - 8 seconds) and then do a computation on the data (would take 1 - 5 seconds).


I think I can use lwt to achieve these, but can't figure out the best way for efficiency.


For the task scheduling part, I can do like this (How to schedule a task in OCaml?):


The questions come from the actual do_task part.

So a task involves http download and computation.

The http download part would have to wait for 5 to 8 seconds. If I really execute each task one by one, then it wastes the bandwidth and of course, I wish the download process of all tasks to be in parallel. So should I put this download part to lwt? and will lwt handle all the downloads in parallel?

By code, should I do like this?:


So, through the code above, will all tasks be executed in parallel, at least for the http download part?

For calculation part, will all calculations be executed in sequence?

Furthermore, can any one briefly describe the mechanism of lwt? Internally, what is the logic of light weight thread? Why can it handle IO in parallel?

0 投票する
1 に答える
717 参照

ocaml - Emacs Tuareg モードで lwt の構文の色とインデントを有効にする方法は?

Emacs に Tuareg モードを使用しています。

も使用してlwtいます。lwtいくつかの構文拡張がありますが、トゥアレグはそれらを認識できず、インデントや色付けがなく醜いです.

私はこれを見つけました:

https://github.com/skydeck/lwt/blob/master/utils/tuareg-2.0.4.patch

tuareg- 2.0.4で lwtカラーリングを有効にするためのパッチです。


ただし、Tuareg- 2.0.5を使用しており、パッチを直接試してみましたが、失敗しました。

Tuareg をダウングレードする方法がわからないので、tuareg-2.0.4 のファイルをダウンロードしてelpa/tuareg-2.0.5フォルダーにコピーし、再度パッチを適用しました。

これは、言われているようにパッチが正常に適用されましたが、それでも私のemacsは認識できませんlwt


誰でも方法を教えてもらえますか?

0 投票する
1 に答える
287 参照

ocaml - 何かをlwtサポートする方法は?

私は用語を理解しようとしていlwt supportedます。


したがって、データベースに接続してデータを書き込むコードがあるとします: Db.write conn data. まだ lwt とは関係がなく、各書き込みには10 sec.

さて、lwtを使いたいと思います。以下のように直接コーディングできますか?

5にデータ項目がmy_data_listあることをサポートします。5 つのデータ項目すべてがデータベースに順番に書き込まれますか、それとも並行して書き込まれますか?


また、手動で Lwt またはhttp://ocsigen.org/tutorial/applicationで、彼らは言う

Lwt の使用は非常に簡単であり、ブロッキング関数 (非協調関数) を使用しない限り、問題は発生しません。ブロック機能により、entre サーバーがハングする可能性があります。

ブロック機能を使用しない方法がよくわかりません。自分の機能ごとに、それを作成するために使用できLwt.returnますlwt supportか?

0 投票する
1 に答える
562 参照

mysql - LWT とデータベース アクセス

データベース アクセスを lwt で動作させることができません。スレッドに含めるべきですか?どのように?または、値を返す新しいスレッドを作成し'a lwtますか? もしそうなら、その値をどうするか?

同じことが にPrintf.eprintfも当てはまり、これも lwt によってブロックされているようです。そのため、代わりに Lwt_io を使用します。しかし、なぜ lwt は通常の io をブロックするのでしょうか?

私が持っているのは、のような単純な db リクエストですDb.update session。関数内にありLwt_main.run mainます。これはすべて CGI スクリプト内にあります (重要ではありません。データベースへのアクセスは、lwt コマンドで開始するまで問題なく動作します)。

必要に応じて、さらにコードを提供できます。

よろしく
オーレ

編集

編集 2

これが解決策でした:

0 投票する
2 に答える
99 参照

ocaml - Lwt_term を使用したプログラムのコンパイル

OCaml に次のコードがあります。

を使用してコンパイルしようとすると

次のエラーが表示されます。

上記の問題とは関係ないことはわかっていますが、utop から Lwt を開くことはできますが、Lwt_term を開くことはできません。私は何を間違っていますか?

0 投票する
1 に答える
166 参照

ocaml - Async コードから Lwt ライブラリを使用するにはどうすればよいですか?

私はこれを見つけました: https://github.com/janestreet/lwt-async

しかし、どこに行けばいいのか、まったくわかりません。コンパイル時にフォルダーとリンクにドロップするだけでよいのは、Lwt の代わりですか?

Jane Street の Async を使用するコードベースから Lwt コードを呼び出す別の方法はありますか?

ありがとう。