問題タブ [ccl]
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.
linux - sudo 権限があるにもかかわらず Clozure CL をコンパイルするとパーミッション エラーが発生する
私は喘鳴ラスピアン ラズベリー pi の転覆を介して Clozure Common Lisp 1.10 をチェックアウトしました。armcl を実行しようとすると、「GLIBC_2.15 が見つかりません」というエラーが発生しました。apt-get を使用して、最新バージョンの m4、1.4.16-3 をインストールしました。Clozure の指示に従って Lisp カーネルをビルドしました ( http://ccl.clozure.com/install.html )。
私はこのマシンで sudo 権限を持っているため、この許可エラーは予期しないものです。何がうまくいかないのですか?
common-lisp - Clozure CL での長時間実行アプリケーションのアプリケーション配信
Application Delivery のすべての基本的な例は、トップレベルの関数を独自のものに置き換える方法を示しています。その機能が完了すると、アプリケーションは終了します。長時間実行されるアプリケーションのトップレベル関数を作成する最良の方法は何だろうと思っていました。私のコードは
より良い方法はありますか?ループは好きではありませんが、端末を解放するものも問題ありません。
build - OS X 10.10 Yosemite で Clozure CL を使用してネイティブ実行可能ファイルにコンパイルできない
簡単な hello world (hello.lisp) コードを作成しました。
、CCL のネイティブ実行可能コンパイルをテストするプログラム。CCL GUI からバッファーをコンパイルしてロードします (バージョン Clozure Common Lisp Version 1.10-store-r16266 (DarwinX8664) を使用)。
私がそれをテストするとき:
主な機能を見つけます。でコンパイルを続行すると: (save-application "/tmp/h" :toplevel-function #'main :prepend-kernel t)
、操作が続行され、CCL が終了します。
ファイルが作成され、約 56 MB になります。実行しようとすると、次の出力が得られます。
エラー: 汎用関数に適用できるメソッドがありません: # 引数を指定して呼び出された場合: (# :NOTE-CURRENT-PACKAGE #) 実行中: #、プロセス toplevel(6) 内。エラー: ジェネリック関数に適用できるメソッドがありません: # 引数を指定して呼び出された場合: (# :BREAK-OPTIONS-STRING T) 実行中: #、プロセス toplevel(6) 内。エラー: ジェネリック関数に適用できるメソッドがありません: # 引数を指定して呼び出された場合: (# :BREAK-OPTIONS-STRING T) 実行中: #、プロセス toplevel(6) 内。エラー: ジェネリック関数に適用できるメソッドがありません: # 引数を指定して呼び出された場合:
そして、エラーが進行します。私は何を間違っていますか?バグですか?
ありがとうございました
emacs - Common Lisp: Emacs Slime 内から (パッケージ内で ...) 動作させる方法
64 ビット Windows 7
Clozure Common Lisp バージョン 1.9 WindowsX8632
Emacs 24.3.1
Slime 変更ログ日付 2014-06-17
次のように始まる .lisp ファイルの例があります。
プログラムの残りの部分では、ダイアログ ボックスが表示されます。これをコマンドラインから実行すると、wx86cl -load helloqt.lisp
問題なく動作するようです。これを Emacs Slime ( C-x C-k
) から実行すると、パッケージ "QT" がないと表示されます。ただし、最初の行を最初に個別に評価すると ( C-x C-e
)、全体をコンパイルして動作し、Windows の Slime 内から QT スレッドを実行しようとする通常の問題をモジュロします。
最初の行を最初に手動で評価することなく、emacs からファイルをコンパイル/実行できるようにするにはどうすればよいですか?
(in-package ...)
また、 Slime セッションで現在のパッケージを変更しないのはなぜですか? パッケージの内容を操作したい場合は、手動で変更する必要があります。
python - Lispプログラムの出力をPythonに取得するには?
私は非常に大きな Lisp プロジェクトを持っており、その出力をプログラムで Python プログラムにパイプします。つまり、Python を使用して入力に対して Lisp プログラムを呼び出し、出力を Python に戻します。
プロジェクトは Clozure Common Lisp (ccl64) でのみコンパイルされ、実行可能ファイルに変換する方法を見つけようとしましたが (私は Mac OS X を使用しています)、多くの行き止まりに遭遇しました (私は Lisp ではありません)。プログラマー)。
Clozure Common Lisp のこのドキュメントは上記の解決策を提供するはずですが、私はそれを理解できませんでした。私が作成した例ではファイルが作成されましたが、ターミナルはそれらを実行可能ファイルとして実行しませんでした。
この質問の回答Compiling Common Lisp to an executable except using ccl64's save application function に従おうとしました。
Python のサブプロセスを使用して ccl64 を呼び出し、Lisp プログラムを実行し、出力を取得しようとしています。ただし、サブプロセスは何らかの理由で ccl64 コマンドの実行を拒否します。これまでに書いたものは次のとおりです。
変数out
には、ccl64 から使用法/ヘルプを取得した出力が含まれている必要があります。代わりに、エラーが発生します。
Python で ccl64 を呼び出して Lisp プロジェクトから出力を取得するにはどうすればよいですか?
lisp - Lisp 読み込みエラー: ディスパッチ マクロで未定義の文字
私は自分の誕生日が Lisp の問題を解決する良い機会になると判断しました。
ある人から実験を実行する Lisp プログラムを受け取りました。彼の OS X 環境では問題なく動作します。ただし、Windows 7 または Ubuntu で実行することはできません。このプログラムは、Act-R 6.2 を使用してモデルを実行します。.lisp ファイルを読み込もうとすると、次のエラーが表示されます。
このエラーは、Windows 7 と Ubuntu でまったく同じです。必要な場合のコンソール出力は次のとおりです。
http://i.stack.imgur.com/dFXVm.png
load-turing-application.lisp は他の複数のファイルをロードしているようです。そのうちの 1 つが turing-application-v1.lisp で、この行(setf *smile* (#/initWithContentsOfFile: (#/alloc ns:ns-image)(ccl::%make-nsstring "smiley.jpg")))
が原因のようです。#/-表記と関係があると思われます。
どんなアイデアでも大歓迎です。
common-lisp - シンボリック リンクが壊れているディレクトリ内のディレクトリ エントリのリストを取得する
OS X Yosemite で CCL を使用しています。
私が使用するとき
ディレクトリ内
すべてのディレクトリ エントリを一覧表示する/Users/Tom
が、壊れたシンボリック リンクが含まれているslime
場合 (たとえば、リンク先のディレクトリが存在しない場合)、
投げられます。
シンボリック リンクが壊れているようなディレクトリ内のディレクトリ エントリのリストを取得する方法はありますか?
sockets - Common Lisp ソケット
具体的には ccl を使用して、同じプログラムに 2 つのソケットをセットアップして、FIFO データ構造として機能させようとしています。
そのために、私はAPIの理解を深めるためにテストコードを立ち上げてきましたが、今では理解できない問題があります。次の抜粋されたコードは、リッスンとリッスンに接続するための 2 つのソケットをセットアップし、リッスン ソケットで接続を受け入れます (受け入れ呼び出しは、戻る前に接続が着信するのを待ちます。この場合はこれが必要です)。 、その後、一方のソケットに書き込み、もう一方のソケットから読み取ります。コードがハングしますが、その理由はわかりません (ソケットが接続されていないためだと思います)。
コード:
common-lisp - Clozure CL を介した Windows API とのインターフェース
外部関数インターフェイスを介して Clozure CL から Windows API 関数を呼び出したいのですが、見つけたドキュメントがかなり不足しているため、いくつかの問題が発生しています。
十分に豊富な例として、SHGetKnownFolderPathを呼び出そうとしています。その署名は
エントリーポイントの取得
以下を使用して、関数のエントリ ポイントを取得できます。
正しいメソッド シグネチャの取得/設定
これを呼び出すための一般的な手順は次のとおりですが、それぞれの方法についてはわかりません。
- CCL がこの関数に対して生成した署名を取得して、呼び出し方を知ることができます。
- を使用して、別の関数シグネチャを提供し
external-call
ます。 - FFI 構造体またはクラスを定義して、
GUID
(最初の引数) viadef-foreign-type
または関連する構造を保持します。 - 呼び出しの後、 を使用
CoTaskMemFree
して、 が指すメモリを解放します*ppszPath
。
最終的なコードの形式の推測
最終的なコードがとる一般的な形式についての私の推測は
C/FFI と Lisp の間で変換するためのさまざまな未知の関数と関数呼び出しがまだ存在します。
補遺
私は Windows API に精通しており、他の言語から Win32 API 呼び出しを行ったことがあります。また、WindowsでのCLispのUnicodeサポートが不十分であるという問題に遭遇したため、CLispでこれを機能させることもできました(CLispはUTF-16文字列を読み取るため、パスの最初の文字のみで終了しました)として)。
私が立ち往生している点は、これを機能させるために CCL にどのような機能があるかということです。正しい方向への助けをいただければ幸いです。