js_of_ocamlを使用してOcamlからJavascriptにコンパイルされたコードがあります。さて、Web Workerスレッドで動作するようにそのコードを移動すると、私はStackOverflow
を取得し始めました。なぜ `enable-javascript-harmony`がWebワーカーのStackOverflowを防ぐのですか?
しかし、メインスレッドでコードを実行した場合、またはchrome://flags/#enable-javascript-harmony
をワーカーバージョンで有効にすると、コードは正常に実行されます。
何が起こっているのでしょうか? enable-harmony
フラグは正確に何をしていますか?
私はテールコールの最適化を有効にする可能性があると推測しますが、まだ有効になっていないのは私にとっては奇妙なことです。また、テール・コールだけでは、メイン・スレッドで実行された場合にコードがオーバーフローしない理由が説明されていません。
実際のコードの例については、下のリンクを参照してください。最初のリンクでは、コードは、第二に、コードの主要な部分が労働者に委任され、メインスレッドで実行されます:
我々が到達optimize_0plus_sound
補題上の最初の誘導は、スタックオーバーフローがワーカーバージョンで発生します。メインスレッドでCoqを実行しているバージョンはまったく問題ありません。奇妙な。
ありがとうございます!
確認していただきありがとうございますAndreas!しかし、私は別のブラウザを使用しています。実際には、ワーカーと非ワーカーの間の動作は異なるようです。私はより詳細なテストを行う必要があります。 – ejgallego
実際、私はワーカーとメインスレッドとの間のさまざまな動作を確認します。質問は更新されました。 – ejgallego