問題タブ [sbcl]
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.
lisp - .sbclrc の演算子 #+ および #-
#+
と の#-
演算子の意味を知っている人はい.sbclrc
ますか? マニュアルでは見つけられませんでした。私はquicklispをインストール#-
した後、私は見る:.sbclrc
SBCL のユーザー マニュアルにも#+
記載されていますが、機能の説明が見つかりませんでした。個々のモジュールのロードに関連するもののように見えます。
それらは SBCL 実装のためだけですか、それとも Common Lisp の一部ですか?
lisp - 奇妙なパス名?
sbcl-1.0.54 を使用しています。
どんな提案でも大歓迎です!
stream - Common Lisp で外部プログラムのバイナリ出力を読み取る
SBCL で外部プログラムを実行し、その出力を取得しようとしています。出力はバイナリ データ (png 画像) ですが、SBCL はそれを文字列として解釈することを主張しています。
私はいくつかの方法を試しました
しかし、次のようなエラーが発生します
SBCL はバイナリ データをテキストとして解釈し、デコードしようとしているように思えます。この動作を変更するにはどうすればよいですか? オクテットのベクトルを取得することにのみ関心があります。
flexi-streams:octect
編集:上記のテキストからは明確ではないため、少なくとも flexi-stream の場合、ストリームの要素タイプは a ( a ) であることを追加したいと思います(unsigned-byte 8)
。少なくともこの場合run-program
、多くの問題なしに生のバイトを読み取ることが期待されます。代わりに、次のようなメッセージが表示されますDon't know how to copy to stream of element-type (UNSIGNED-BYTE 8)
lisp - Common Lispで実行中の関数を置き換える方法は?
SBCL の #'save-lisp-and-die を使用して、非常にうまく機能するサーバー アプリケーション App1 を作成するとします。ここで、App1 を停止せずに、関数 #'func1 を新しいバージョンに置き換えたいと考えています。Common Lisp でそれを行うにはどうすればよいでしょうか?
どんな提案でも大歓迎です!
common-lisp - Common Lisp(SBCL)が単純なプログラムにこれほど多くのメモリを使用するのはなぜですか?
私はCommonLispの初心者なので、Common Lisp(SBCL )を使用してSPOJの問題を解決しようとしました。最初の問題は、42番が見つかるまで数字を読み取るという単純な作業です。これが私の解決策です:
解決策は受け入れられます。しかし、結果の詳細を調べたところ、57MのMEMが使用されていることがわかりました。血まみれの無理ですが、理由がわかりません。最適化するにはどうすればよいですか?
lisp - UnixライクなオペレーティングシステムでSBCLコードを便利な方法で実行するにはどうすればよいですか?
(David Jamesが質問と回答の両方を作成しました。Stackoverflow標準に準拠するように編集します。)
SBCLを使用すると、Lispコードをマシンコードにコンパイルできます。
Java、.net、C ++、さらにはCと同様に、ランタイムが必要になります。したがって、CommonLispコードをコンパイルする方法は2つあります。
1つは、SBCLのドキュメントで説明されている巨大なバイナリを作成することです。ターゲットマシンにSBCLは必要ありません。
もう1つの方法は、より柔軟な方法です。これは、fasl(FASt Load)形式でマシンコードを作成することです。ターゲットマシンにはSBCLランタイムが必要です。
Unixライクなオペレーティングシステムで2番目の方法はどのように機能しますか?
emacs - スワンクサーバーの起動エラー
どうやらswankが正しく初期化できないため、EmacsSLIMEはswankに接続できません。一部のバックエンド機能が実装されていないことを示しています。ただし、私の沼地のバックエンドはサポートされているSBCLです。私はwindowsxposを使用しています。次のリンクに同様の問題が投稿されていますが、解決策はありません。同様の問題へのリンク
Swankの構成ファイルがありませんか?または、私が使用しているemacsとSBCLのバージョンに互換性の問題があるのでしょうか?その場合、Windowsの正しい互換性マトリックスはどこで入手できますか?
shell - CLプログラムがシェルスクリプトとして呼び出されたときにquicklispを使用するにはどうすればよいですか?
私は現在、Common Lispに小さなプログラムを持っており、それをシェルスクリプトとして実行したいと思っています。私はSBCLを使用しており、これで完全に問題ないので、このプラットフォームにとどまるのを好みます。:)
私は--script
オプションについて知っています、そしてそれはフォームを除いて完璧に動作します(ql:quickload)
。
私のプログラムは、ロードスルーするCL-FADを使用しています( quicklispql:quickload
からのパッケージロード関数であることに言及する必要があると思います)。スクリプトが実行されて評価されるとき
フォーム、それは次のエラーで壊れます:
プログラムは、次のヘッダーを持つ単一のソースファイルにパックされています。
これは単純な自動化実行可能ファイルであるため、ASDFシステムを作成しないことにしました(おそらく誤って)。引数なしで実行する必要がある単一の関数をエクスポートします。
このプログラムのために、私は現在ランチャースクリプトを書き込もうとしています、そしてこれは私が見つめているものです:
この3行(シェバンは数えません)は、私が自動化したいものです。ドキュメントを読んだように、このシバンを使用したスクリプトは単純なものと呼ぶことができますが./script.lisp
、実際にはこれを実行します...前述のエラーが発生します。
:cl-fad
正しくロードするには、ランチャーに何を追加する必要がありますか?ドキュメントには、--script
オプションSBCLではinitファイルが読み込まれないと記載されているため、実際に行をコピーして貼り付ける必要がありますか?
(これql:add-to-init-file
は.sbclrcに追加されます)、ランチャースクリプトに?たぶん、プログラムのセットアップにいくつかの深いアーキテクチャ上の欠陥がありますか?
はい、REPLで自動化しようとしている行をsbcl自体に入力すると、プログラムは期待どおりに実行されます。
memory-leaks - SBCLのREPLでのメモリリーク
REPLでのSBCLガベージコレクターの次の動作に少し戸惑っています。2つの関数を定義します。
次に実行します
元の配列を参照するものはもうないと思います。それでも、(部屋)が報告するように、メモリは解放されません。(test-gc)を直接実行した場合、SLIMEまたはのどこかに参照がスタックしている可能性があることは理解できます。
しかし、ここに当てはまりましたか?ありがとう、アンドレイ。
更新少し前にバグを報告しました。最近確認されました。参照: https ://bugs.launchpad.net/sbcl/+bug/936304
common-lisp - スライムを使用して SBCL の現在のディレクトリを設定するには?
以前は、次のスクリプトを使用して SBCL を開始しました。
emacs でスライムを使用する場合、SBCL の現在のディレクトリを設定する方法がわかりません。
どんな提案でも大歓迎です!