問題タブ [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.
debugging - Clojure、emacs、ritz-swank: `Mx slime-connect` でエラー メッセージが表示される
私は午後を費やして、ritz-swank パッケージを emacs と Clojure で動作させるようにしました。(エラー メッセージなどをグーグル検索しても、有用な手がかりは得られませんでした。) 誰かが私を立ち上げて実行するための指針を教えてくれることを願っています。
エラーはSymbol's value as variable is void: slime-ritz
です。
http://www.delorie.com/gnu/docs/elisp-manual-21/elisp_142.htmlによると:
「シンボルにグローバル変数として値を与えたことがない場合、そのシンボルのグローバル値は無効であると言います。つまり、シンボルの値セルには Lisp オブジェクトがありません。シンボルを評価しようとすると、値ではなく void-variable エラーが発生します.... void 変数には値がありません。」
Emacs 'describe-variable' (Ch v) を使用して の値を見つけようとしましたが、slime-ritz
何も返されませんでした。「ritz」で適切な検索を行っても何も見つかりませんでしたが、「slime」を検索すると一連の機能が返されました(したがって、slime
パッケージが存在すると思います)。
私のインストール手順
https://github.com/pallet/ritz/tree/develop/swank (pallet/ritz プロジェクト ページ)のインストール セクションの指示に従い、最初から 2 回やり直して、正しく行っていることを確認しました。これが私の最後の試みのシーケンスです:
Emacsも
~/.emacs.d
ディレクトリも含まないシステムから始めました。入手可能な最新の Mac OS X バージョンである Emacs 24.2 をインストール ( http://emacsformacosx.com/から)
curl
コマンドを使用してインストールされた Emacs Prelude ( http://batsov.com/prelude/を参照)(プロジェクトページが言ったように)ダウンロードされた特定のバージョン
slime
とslime-ritz
を使用して両方を手動でインストールしました
M-x package-install-file
念のため、emacsを終了して再起動しました....
ページの指示に従って lein-ritz をインストールし、正常に取得しました:
Greggs-Mac-Pro:combolock gr$ lein ritz user=> ローカル ポート 51521 でリッスンする Swank サーバー
M-x slime-connect
(Emacs から Swank サーバーへの接続を確立することになっている) はSymbol's value as variable is void: slime-ritz
、Emacs ミニバッファーでエラーを返しました。
診断データ
実行M-x package-activated-list
すると、読み込まれたパッケージの次のリストが生成されました。
(ace-jump-mode ack-and-a-half elisp-slime-nav exec-path-from-shell expand-region flycheck gist gh guru-mode helm-projectile helm logito magithub magit melpa paredit pcache projectile dash rainbow-delimiters rainbow-mode s slime slime-ritz solarized-theme undo-tree volatile-highlights yasnippet zenburn-theme)
実行M-x package-list-packages
すると、次のパッケージがインストール済みとしてリストされました。
存在しないことに気付いたclojure-mode
ので追加しましたが、上記の手順 8 で同じエラー メッセージが表示されました。
よくある質問
1) インストールする必要がありpallet
ますか?
ritz
2)ファミリ ( https://github.com/pallet/ritz )から他のパッケージをインストールする必要がありますか?
ritz-swank を使用するのがとても楽しみです。非常に強力に見えます。(大変な作業をしてくれた Hugo Duncan に感謝します!)
emacs - 「emacs」(最新バージョン) で「Slime」をセットアップするとき、swank をより速くロードするように指示するにはどうすればよいですか?
スライムのマニュアルには次のように書かれています。
その後、次のようなものを「.emacs」に追加します。
私は自分の .emacs ファイルに何かを追加する方法を知っていますが、以下の部分に対して正確に何をすればよいか、どこで、正確に、どのように以下の手順を実行するのですか....i\eどこに入力しますか. "次の手順を実行します。
具体的にお願いします...私は初心者です
vim - SlimvとRitzのクラスパスを設定する方法
クラスパスの問題を解決したいのですが、その方法を教えてください。
私は次のことができます。
、eを押すと、vim(slimv)で(+ 1 1)を評価できます。
次に、slimvは次のように表示します。
ただし、以下のことはできません。
1.vim(slimv)で、e、を押して次のコードを評価すると、
2.Slimvは次のエラーを表示します。
; java.io.FileNotFoundExceptionで評価が中止されました:クラスパスでclojure / contrib/str_utils__init.classまたはclojure/contrib / str_utils.cljが見つかりませんでした:
私の環境は以下の通りです。
- macvim 7.3.754
- ライン2.0.0
- Slimv 0.9.9
- リッツ0.7.0
project.clj
〜/ .lein / profiles.clj
ref
emacs - SLIME を使用したリモート Emacs でのタブ補完
リモート SWANK の SLIME repl で、次のように入力します。
(開く "~/
次にTABを押します
これにより、ローカル ファイル システムにオートコンプリート付きのバッファーが表示されます。リモートシステム上のファイルを表示する方法を知っている人はいますか?
現在、私の .emacs は次のようになっています。
私はグーグルで検索して、ランダムなものを少し試してみました。どんな助けも大歓迎です!
emacs - SLIME と SWANK が MIPS アーキテクチャで失敗する
Common Lisp を学習するために、 Imagination Creator CI20 Mips ボードでSLIMEおよび Swankと共に Emacs を使用しようとしています。私は SBCL と Clisp をコンパイラ/インタプリタとして使用しています (主に SBCL は通常、inferior-lisp-mode として設定されています)。ただし、SBCL と Clisp の両方を Inferior-lisp-mode に設定してこれをテストしたところ、両方で失敗しました。SLIME を実行しようとしましたが、Swank ファイルをロードまたはコンパイルしようとすると、必ず失敗します。試行の 1 つからのエラー メッセージは、アーキテクチャ (Mips - リトルエンディアン) に問題があることを示しています。ボードに付属の Debian 7 Wheezy (Mipsel) のデフォルト インストールを実行しています。
Debian リポジトリから apt-get を介してインストールされたSLIMEでこれを試し、もう一度 SLIME の Melpa インストールで、最後に SLIME の Github git リポジトリ (最新) でもう一度試しました。エラーメッセージが微妙に異なる場合がありますが、それらはすべて失敗します。Emacs 23 と 24 の両方で失敗します。
コンパイラとして SBCL を使用して、SLIME の Github リポジトリで試みたエラー メッセージ/宣伝文句を添付します。Mipsel Wheezy が Debian リポジトリに持っていないように見えるため、SBCL は SBCL リポジトリからインストールされました。やや古いバージョンのようですが、SBCL Web サイトにある Mips アーキテクチャの最新のバイナリです。SBCL は、コマンド ラインから REPL として正常に実行されます。
common-lisp - パッケージを切り替えるとレキシカルバインディングが失われる
私が欲しかったのは、スワンクなしで起動したときに私のlispに影響を与えないスワンクの初期化ファイルをロードすることだけでした...
私は最初に ccl-init からロードされたファイルで #+swank (defun...) を試しました (これを ccl 1.10 + Windows で試しました)。
私の目的は、スワンクを開始するたびに :cl-user で単純な関数を定義することです。init.lisp ファイルをロードするためのおしゃれな add-hook が完成しました。cl-user で関数を定義したいので、init.lisp でこれを試しました。
さて、let の defun が許可されていたかどうかは覚えていませんが、lisp は文句を言いませんが、cur-pck シンボルが存在しないことを教えてくれます。パッケージを切り替えると、cur-pck のように見えますバインディングは範囲外になります。cur-pck は字句バインディングであり、字句領域内から到達可能で、パッケージから独立していると思っていましたが、間違っていますか?
なぜパッケージを切り替えるのですか? 初期化ポイントでこのファイルを swank からロードすると、いくつかの swank パッケージで何かが定義されると考えています。そのため、最初に cl-user に切り替えて、関数シンボルを定義し、元に戻して swank にそれをさせたいと思っていました。
この時点で、私は間違った角度から問題に取り組んでおり、より簡単な解決策を選択する必要があることを誰かに教えてもらう必要があると思います。
さらに、上記が完全に間違ったアプローチである場合の好奇心から、関数またはクロージャー内の別のパッケージでシンボルを定義する方法はありますか?
vim - スワンクを再初期化する方法は?
以前に評価されたすべての定義をswankに忘れさせるにはどうすればよいですか?
評価を介して定義されたすべてのマクロ、関数、および変数の定義を解除したい (,b
評価バッファーなど)。そして、PCを再起動してswankサーバーを新たに起動したときと同じ状態に戻します。
私は試した:
Slimv Clear -REPL (
,-
) コマンド:これは、画面 (バッファ) をクリアするように見えるだけです。
CL-USER>
(swank:restart-server)
(REPL バッファーから):defun
サーバーは再起動しますが、古い定義やその他の定義はまだ記憶されています。CL-USER>
(slime-restart-inferior-lisp)
と `(slimv-restart-inferior-lisp)どちらも未定義です。
lisp - swank サーバー *swank-debugger-condition*
Lisp は初めてで、Slime を使用して Emacs で作業していますが、常にこのエラーが発生します。
これをグーグルで検索するのに長い時間を費やしましたが、その変数への参照が見つかりません。それは何ですか?そして、それは何にバインドされるべきですか?
common-lisp - *standard-input* と *standard-output* を別の PTY、FIFO、またはソケットにリダイレクトするにはどうすればよいですか?
ECLのLinux stdioをリダイレクトして、埋め込まれているアプリケーションとストリームを共有しないようにすることができるかどうか疑問に思っていました.
私の問題は、ホスト アプリケーションが独自の目的で stdin、stdout、および stderr を引き継ぐことです。そこで、Lisp ノイズ用と、SLIME/SWANK がクラッシュしてトップレベルに戻ったときの回復用に別のコンソールを用意したいと思います。現在、SWANK hiccup はCL-USER>
プロンプトをアプリケーションのデバッグ ログに記録しC opperation (read) signalled an error
、stdout による失敗はリダイレクトされ、stdin はクローズされているか、親プロセスによって使用されている可能性が高いです。
などを新しいストリームにできることは知っていますがsetf *standand-output*
、screen、xterm、socket などの端末をそれに接続する方法が見つかりませんでした。基礎となる Linux/C ファイル記述子が必要で、それから PTY を作成できます。
telnetを使用して接続できるソケットサーバーに標準ストリームを接続する方法があれば、さらに良いでしょう。
アップデート
コメントの提案に従って、次のコードを試しました。
それはまったく仕事をしません。問題は、IO の一部が SWANK にリダイレクトされている間、実際のストリームを取得する方法がまだあるように見えることです。SWANKがどのようにそれを行うかを理解するには、ある程度の調査が必要になると思います. ああ、便利さの代償!
更新 2
私の間違い。*standard-error*
しかありません*error-output*
。私が Lisp の初心者だと言えますか?
これで、すべてがリダイレクトされました。しかし、SLIMEはSWANKに話しかけなくなり、やや目的を果たせず……。
アップデート 3
勝利!SLIME を接続する前に、ターミナルで次のシェル スクリプトのようなものを実行して、最上位シェルを作成する必要があります。
理由は、推測できません。しかし幸いなことに、とにかく機能します。
ところで、より良い回答を投稿したい人を落胆させないでください
誰かがストリームを監視しているかどうかにかかわらず、ストリームを維持するソケット サーバーまたは画面分離型 PTY を作成できると確信しています。それははるかに洗練されたソリューションになります。
lisp - telnet を使用して低レベルで Swank サーバーと対話する方法は?
コマンド ラインから Swank サーバーを操作しようとしています (特定の生産目的はなく、後でハッキーなアイデアを念頭に置いて物事を理解しようとしているだけです)、telnet
取得するためにセッションから何を入力できるかわかりません使用可能な回答; たとえば、どのように評価できますか(+ 1 1)
?
前の質問は次のように述べています。
十分に文書化されていないように見えるスワンクプロトコルに慣れていれば、スワンクサーバーと通信することは実際に可能です(たとえば、ここを参照してください:https ://github.com/astine/swank-client/blob/master/swank-description .マークダウン)。ただし、これはネットワーク上に TCP ソケットを公開するため、安全ではない可能性があります。私も一度試してみましたが、IPCの速度に満足できませんでした。
リンクは実際にいくつかのヒントを提供しますが、残念ながら例はありません。何の成果も得られませんでした。
これが私が試したことです。でサーバーを個別に起動した後
私は次のようなことを試しました:
次のエラーメッセージが表示されました。
その場合、入力する必要がある文字列は何でしょうか?