問題タブ [ecl]

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

multithreading - *standard-input* を上書きしないことでマルチスレッドを防止

の使用方法によって動作が異なる Common Lisp プログラムがあります*standard-input*。詳細は次のとおりです。

このprocess関数は複数のスレッドを開始します。各スレッドは標準入力の一部を読み取り、それをファイルに書き込み (すべてロック内)、結果のファイルを並行して処理します (ロック外)。実際、結果のファイルを並行して処理するのは、それ以外の場合にのみ、input-stream?順次false処理します

(mkfifo を使用して) FIFO を作成し、ファイルをそこにコピーして、代わりにそれを使用してプログラムを実行すると、再び並列処理が観察されます。

上記のプログラムは、ECL を使用してコマンド ライン ユーティリティとしてビルドされ、Linux で実行されます。次のいずれかの方法で実行します。

  1. 猫「ビッグファイル」 | マイプログラム
  2. 私のプログラム「ビッグファイル」

並列処理はケース 2 でのみ発生します。

問題は、なぜ違いがあるのか​​ということです。

アップデート:

  • 私の質問に間違いがありました。これでOKです。
  • process関数を追加し、プログラムの実行方法を説明しました
0 投票する
1 に答える
254 参照

common-lisp - Common Lisp ECL で段階的なデバッグを実行するにはどうすればよいですか?

ECLを使ってCommon Lispを勉強しています。デバッグ方法はhttps://malisper.me/debugging-lisp-part-1-recompilation/を参考にやってみましたが、ステップ実行がうまくいきませんでした。

"(break)" を挿入して "RETRY" を選択すると、ブレークで最初に処理が停止します。これは、上記のページに示されているように意図された動作です。

次にSキーを押した時、踏んだはずなのに以下のエラーメッセージが表示されました。

これはECLの実装上の問題かもしれませんが、ECLでは通常どのようなデバッグが行われているのか知りたいです。

よろしく、NOEU