問題タブ [nrepl]
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.
emacs - nreplをシャットダウンする適切な方法は何ですか?
emacsでnreplを正常にシャットダウンするにはどうすればよいですか?
swank-clojure はコンマと でシャットダウンされましたがsayoonara
、これは nrepl では機能しません。
clojure - Clojure サーバーに NREPL を埋め込むためのベスト プラクティス方法
Clojure でサービスの開発を始めたところです。サーバーのシャットダウンにアプローチする方法に少し迷っています。
Clojure 1.5.1 を使用しています。ロギングには、Timbre 1.5.3 を使用しています。ホットコード展開のために NREPL をサーバーに組み込みたいと考えています。
これは私の core.clj ファイルです。Core がメインで、「lein new app」が生成するアプリ シェルを使用しています。
「lein run」すると、nrepl-server が期待どおりに起動し、情報メッセージがターミナルに送られます。次に、Emacs の「nrepl」で接続します。問題ない。Emacs から "(extenium.core/stop)" を実行します。その時点で、Emacs に "Stopping nrepl server" メッセージが表示されます (標準出力がクライアントにリダイレクトされたことを意味します)。接続は (予想どおり) 終了し、「Stopped nrepl server」というメッセージは表示されません。罰金。
ターミナルを見て、「Stopping...」または「Stopped...」というメッセージが表示されません。代わりに、次の例外が発生します。
理想的には、次のものが必要です。
- NREPL クライアントからシャットダウンを開始できるようにします。例外なく、すべての NREPL クライアント接続を適切に閉じます。ターミナル (または最終的にはローテーション ログ ファイル) に向けられたログ メッセージでシャットダウンします。
- NREPL 接続の間、ログ出力をサーバー (ターミナルまたはログ) と NREPL 出力の両方に複製します。
- 着信 NREPL 接続に関する情報をキャプチャし、それらに名前を付け、接続および切断アクティビティをログに記録します。
- 最終的に、着信 NREPL 接続を認証します。
- 後で、実行するアクションを承認します。
clojure - nrepl (ritz-repl) の起動時間を短縮する方法はありますか?
以前は ritz-nrepl を使用していませんでしたが、nrepl には約 10 秒かかりました。
ritz-repl を試してみたところ、起動に 30 秒近くかかり、約 1.3G のメモリを消費しました。これでは使いづらくなってしまいます。
ubuntu + ssdを使用して「lein replの起動時間にほとんど気付かない」と誰かが言っているのを聞いたので、速度を上げることができることを期待してSSDを投入しました。しかし、ssdとhddの違いは自分ではわかりません。私が何か間違ったことをしたのか、それとも単なる神話なのかはわかりません。
debugging - clojure/ritz/nrepl: nrepl 経由で ritz に "frame-source" op を送信するために :thread-id を取得するにはどうすればよいですか?
Ritz サーバーをスレッドで起動し、nrepl クライアントを使用してプログラムで通信しています。
(一部はhttp://hugoduncan.github.io/ritz-conj/#/5/2に基づいています)
これはうまく機能します。ritz-nrepl サーバーから応答があります。しかし、フレームで何かをしたい場合:
「frame-source」操作には :thread-id が必要なため、これは例外をスローします。しかし、どうすればスレッドIDを知ることができますか? break-context を調べたところ、渡された :thread-id によって検索されるはずのスレッド ID を表すキーがマップにあることがわかりましたが、どうすれば :thread-id を知ることができますか?予め?
ご指導ありがとうございます。
eclipse - 反時計回りの HTTP REPL
Eclipse+Counterclockwise で、REPL に接続したい場合、ダイアログに HTTP 経由で nREPL を使用できることが示されます。
これを設定する方法は?これはどういうわけかdrawbridgeに接続されていますか? 私はうまくいきましたが、これらを一緒に機能させることはできlein repl :connect http://my.url/repl
ませんでした。
従来の REPL と比較してこれが役立つ理由を明確にするために、従来の REPL は localhost でのみ機能します。SSHポートトンネリングを介してブリッジできますが、これ-HTTP上のREPL-は、リモートの「ライブ」サーバーの実行可能な代替手段です.
完全を期すために、サーバー側:
- drawbridge - HTTP トランスポート - https://github.com/cemerick/drawbridge
- 使い方 - https://devcenter.heroku.com/articles/debugging-clojure
- サンプルアプリ - https://github.com/technomancy/chortles
clojure - nreplを使用して複数のバッファを操作するには?
スライムから nrepl にいくつかのコードをひねろうとしています。スライムを扱うときのコードは明らかです。評価する clojure コードを送信し、結果の文字列を取得して、必要に応じて処理します。nrepl とやり取りできるようにコードを変更しました。つまり、結果の文字列を処理する独自の値ハンドラーを作成し、それを nrepl-make-response-handler に渡します。今まで問題なく動作しています。しかし、一度に複数のバッファを操作するコードを見つけました。nrepl-make-response-handler は 1 つのバッファー引数しか受け付けないので、それを無視して、値ハンドラーで複数のバッファーを処理するコードを呼び出すことができるかどうか疑問に思っていました。やってみたが失敗、何も変わらない。そこにelispの専門家はいますか?私は本当に助けが必要です。
私自身のハンドラー:
クライアントコード:
結果を処理するコード:
clojure - nREPL を使用した Clojure と Lein の名前空間の問題
以下がうまくいかない理由を理解しようとして、私は多くの「楽しみ」を持っています。src
プロジェクトのディレクトリでnREPL セッションを開始した後lein
、次のことを行いました。
Lein チュートリアルを読んで、私の基本的な理解は、ソースを次のように配置する必要があるということです。
以下の animal の内容は次のようになります。
Dog
評価Animal
の結果エラーが発生しなかったのに、評価しようとすると実行時例外が発生するのはなぜですか? これを正しく行うにはどうすればよいでしょうか。
java - Clojure でユーザー定義クラスを正しくインポートする方法
私は Leiningen と Clojure を使用していますが、名前空間を正しくインポートするだけでなぜ Clojure が非常に難しいのか理解できません。これは次のエラーです
これは私のcore.clj
ファイルにあるものです:
次に、REPL で次のように入力します (lein
プロジェクトの src/ ディレクトリに):
わかりました...何?なんで?
animal.clj
参考までに、これもanimals
ディレクトリにある私のファイルです。