問題タブ [swank]
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.
clojure - 埋め込まれた swank-clojure repl は、埋め込まれているプログラムにアクセスできますか?
アプリの実行中に接続して物事をいじくりまわす目的で、swank-clojure repl をアプリケーションに埋め込もうとしています。しかし、repl を開始した後、囲んでいる環境にアクセスする方法がわかりません。
swank-clojure REPL を埋め込むのは簡単です:
プログラムを実行してから、emacs で次のように実行します。
それは正常に機能し、接続されています。さて、私が望んでいたのは、これが機能することでした:
そのため、現在の環境を組み込み REPL に渡す方法としては機能しません。
埋め込まれた REPL が実行中のプログラムと対話する方法はありますか?
そうでない場合、REPL を埋め込む理由は何ですか?
違いがある場合は、これを JAR として実行しようとしています。
このスレッドは関連しているようですが、そこからどこにも行けませんでした:
emacs - elisp で「lein swank」を実行する (clojure サーバーを呼び出す)
ここで尋ねられ、答えられたように。「lein swank」を使用して、Aquamacs で clojure を実行できました。
スライム/クロージュアを実行する前に、「lein swank」の実行を自動化する必要があります。
- Q : これを自動的に行う方法はありますか? これは、slime/clojure (Mx slime-connect) が呼び出されたときに、コマンド「lein swank」を自動的に実行する方法を意味します。
- Q : 'lein swank' を実行するための elisp コードを作成する必要がある場合、どのようにすればよいですか?
追加した
Jürgen Hötzel の回答に基づいて、elisp を次のように変更しました。
しかし、このエラーが発生しました。
私が見つけたのは、「lein swank」を実行するには pwd を ~/bin/leiningen に変更する必要があるということでした。PATH 文字列内に lein バイナリを配置するだけでは実行されません。
clojure - emacs/slime を使用した他の Lisp/Scheme 実装に対する「lein swank」に相当するもの
私は Lisp のコーディングに emacs/slime を使用してきましたが、Clojure では「lein swank」を見つけました。clojure を実行するサーバーに接続できるので、かなり便利だと言わざるを得ません。
他のLispの実装はどうですか? Clojure の「lein swank」に相当するものを提供する Lisp 実装はどれですか? つまり、「Mx slime」だけでなく「Mx slime-connect」を使用できるように、サーバー接続を提供する他の Lisp 実装はありますか?
emacs - 「swank-clojure」は正確に何をしますか?「swank-SOMETHING_ELSE」はありますか?
私の表面的な理解は、「swank-clojure」が「Mx slime-connect」を可能にするということです。つまり、「lein swank」のような clojure サーバーへの接続を提供します。私の理解は正しいですか?そうでない場合、スワンクの目的は何ですか?
それでは、他の Lisp のような実装のための「swank-SOMETHING_ELSE」はありますか? たとえば、swank-clisp?
「Mx slime」で SLIME/Clojure を使用するには、「swank-clojure」が必要ですか?
追加した
このリンクはかなり便利だと思いました。
sbcl - 複数の sbcl スレッドから MCLIDE/swank を介して標準出力にトレースを書き込む簡単な方法はありますか?
SBCL を使用して小さなサーバーを作成していて、サーバー スレッドをトレースしたいのですが、mclide/swank を使用すると、サーバー スレッドからの出力が表示されません。
? ('sb-posix が必要) NIL ? (sb-thread:make-thread (lambda () (format t "スレッドからこんにちは")))
?
sbcl から直接同じことを試すと、次のことが期待できます。
- ('sb-posix が必要) ; からシステム定義を読み込みます。/opt/local/var/macports/software/sbcl/1.0.39_0+html+threads/opt/local/lib/sbcl/sb-grovel/sb-grovel.asd ; の中へ # ; # SB-GROVEL として登録 ("SB-POSIX" "SB-GROVEL" "ASDF")
- (sb-thread:make-thread (lambda () (format t "スレッドからこんにちは"))) スレッドからこんにちは# *
swank には、非フォアグラウンド スレッドからの標準出力のキャプチャに問題がありますか? スライムを使えば、こんな事が出来るのだろうか?
emacs - clojure swankサーバーがパブリックポートを開きますか?
(この質問は反対票を投じられましたが、私は奇妙だと思います。どのように気分を害しましたか?)
swankサーバーを実行すると、通常、ローカルホストのみの接続にバインドされるのではなく、ポート4005が世界に開かれると考えるのは正しいですか?
したがって、カフェでハッキングする人は誰でも、通行人が自分のコンピュータで任意のコードを実行できるようにするだけでなく、それを実行するための優れたインターフェイスを提供しています。
'mvn clojure:swank'、'lein swank'、または(swank.swank / start-server "/ tmp / yo")のいずれかを使用してswankサーバーを実行すると表示されます。
それから私は次のようなものを手に入れます(マイクに感謝します!):
実際、同じネットワーク上の別のマシンで実行されているemacsから接続できます。
サーバーを手動で起動すると、次の出力が生成されます
一方:
生成:
それは私が期待していたようです。
これを行う正当な理由はありますか?
ローカルプロセスからの接続のみを受け入れるように、従来の方法で開始するように説得する方法についてのアイデアはありますか?
emacs - Swank と SLIME を使用して Emacs 内でバッファや命令を評価するにはどうすればよいですか?
Emacs内にclojure-mode、slime、slime-replを正常にインストールしました。「lein swank」で swank サーバーを起動し、「slime-connect」でスライムをハングアップします。SLIME REPL を使用して、REPL 内の Clojure 式を評価できます。
単一の s-exp またはファイル全体 (別名、Emacs で Clojure ファイルを実行し、専用フレームまたは repl で出力を確認したい) を評価して、SLIME REPL で回答を表示するにはどうすればよいですか?
たとえば、プロジェクト ディレクトリ内の .clj ファイルに単純なバインドを定義します。
ここで、SLIME に repl でこの式を評価させたいので、repl に次のように記述します。
1を取得したいのですが、どうすればよいですか?
clojure - Clojure と Slime でバックトレースを修正する方法
私は、emacs とスライムをセットアップしようとしている clojure 初心者です。これを行う真の方法は 1 つではないようです。そのため、いくつかのブログ投稿と、swank-clojure および leiningen の README に従っています。
ほとんどの場合、それは機能します。私の問題は、バックトレースから再起動 0 [QUIT] を選択しようとすると、
「プロセス フィルタのエラー: 引数の数が正しくありません: nil、0」
(「Mx slime-connect」で、スライムとスワンクのバージョンが一致していないという警告も表示されますが、Google ではこれが予想されることを示唆しています)。
Debian レニーです。「git clone git://git.boinkor.net/slime.git」でスライムを入手しました。Clojure と clojure-contrib は 1.2.0 で、swank-clojure は 1.2.1 です。
これを見た人いますか?または、すべての部品の互換バージョンの最新リストはありますか? どうもありがとう。
編集:
おそらくこの問題のようです。そのスレッドの OP と同じブログ投稿に従いました。
編集:
はい。ELPAを使用してslimeおよびslime-replパッケージを取得すると修正されました。
emacs - OSX で「cake repl」を動作させるにはどうすればよいですか? (「Exception in thread "main" java.lang.NoClassDefFoundError: clojure/main」が表示されます)
Clojure/emacs/swank/cake をすべて連携させようとしています。assemblaによると、repl を起動するには「cake repl」が必要ですが、NoClassDefFoundError が発生し続けます。それを修正する方法はありますか?
コマンドラインで得られるものは次のとおりです。
より詳しい情報:
python - emacs バッファを任意の Python プロセスに送信する
私はこのpython-send-buffer
コマンドが好きですが、アプリケーションに組み込まれた Python を頻繁に使用するか、カスタム パッケージ管理システムを介して Python を起動します (特定の依存関係で Python を起動するため)。便利な Python インスタンス (python-send-buffer
依存するもの)
私が達成したいことは次のとおりです。
- 任意の Python インタープリター (または Python コードを評価できるアプリケーション) で、
magic_emacs_python_server.py
モジュールをインポートします (必要に応じて追加しますsys.path
) 。 - emacs で実行します。
magic-emacs-python-send-buffer
これにより、リモート Python インスタンスのバッファが評価されます。
それは非常に単純なはずです.Pythonモジュールはスレッド内のソケットをリッスンします。メインスレッドで評価し、repr()
結果を返します(または、stdout/stderr、またはその両方をキャプチャします)。emacs モジュールは、テキストをソケットに送信し、応答の文字列を待って、それをバッファに表示します。
このような単純なものはすでに存在しているに違いないように思えます... IPython にはipy_vimserver
がありますが、これは間違った方法です。またswank
、非常に Lisp 固有のように見えますが、私が望むものと非常によく似た Javascript バックエンドがあります... しかし、検索してもほとんど何も見つかりません。SLIME は非 Lisp 言語
要するに:
- コードを emacs バッファから既存の Python プロセスに送信するプロジェクトは存在しますか?
- そうでない場合、そのようなことをどのように書くことをお勧めしますか (elisp にはあまり詳しくありません) - SWANK? IPython のサーバー コード? ゼロからの単純な TCP サーバー?