問題タブ [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.

0 投票する
3 に答える
115 参照

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 にそれをさせたいと思っていました。

この時点で、私は間違った角度から問題に取り組んでおり、より簡単な解決策を選択する必要があることを誰かに教えてもらう必要があると思います。

さらに、上記が完全に間違ったアプローチである場合の好奇心から、関数またはクロージャー内の別のパッケージでシンボルを定義する方法はありますか?

0 投票する
3 に答える
559 参照

vim - スワンクを再初期化する方法は?

以前に評価されたすべての定義をswankに忘れさせるにはどうすればよいですか?

評価を介して定義されたすべてのマクロ、関数、および変数の定義を解除したい (,b評価バッファーなど)。そして、PCを再起動してswankサーバーを新たに起動したときと同じ状態に戻します。

私は試した:

  • Slimv -REPL ( ,-) コマンド:

    これは、画面 (バッファ) をクリアするように見えるだけです。

  • CL-USER> (swank:restart-server)(REPL バッファーから):

    defunサーバーは再起動しますが、古い定義やその他の定義はまだ記憶されています。

  • CL-USER>(slime-restart-inferior-lisp)と `(slimv-restart-inferior-lisp)

    どちらも未定義です。

0 投票する
1 に答える
71 参照

lisp - swank サーバー *swank-debugger-condition*

Lisp は初めてで、Slime を使用して Emacs で作業していますが、常にこのエラーが発生します。

これをグーグルで検索するのに長い時間を費やしましたが、その変数への参照が見つかりません。それは何ですか?そして、それは何にバインドされるべきですか?

0 投票する
0 に答える
673 参照

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 を作成できると確信しています。それははるかに洗練されたソリューションになります。

0 投票する
1 に答える
183 参照

lisp - telnet を使用して低レベルで Swank サーバーと対話する方法は?

コマンド ラインから Swank サーバーを操作しようとしています (特定の生産目的はなく、後でハッキーなアイデアを念頭に置いて物事を理解しようとしているだけです)、telnet取得するためにセッションから何を入力できるかわかりません使用可能な回答; たとえば、どのように評価できますか(+ 1 1)

前の質問は次のように述べています。

十分に文書化されていないように見えるスワンクプロトコルに慣れていれば、スワンクサーバーと通信することは実際に可能です(たとえば、ここを参照してください:https ://github.com/astine/swank-client/blob/master/swank-description .マークダウン)。ただし、これはネットワーク上に TCP ソケットを公開するため、安全ではない可能性があります。私も一度試してみましたが、IPCの速度に満足できませんでした。

リンクは実際にいくつかのヒントを提供しますが、残念ながら例はありません。何の成果も得られませんでした。

これが私が試したことです。でサーバーを個別に起動した後

私は次のようなことを試しました:

次のエラーメッセージが表示されました。

その場合、入力する必要がある文字列は何でしょうか?