問題タブ [guile]
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.
c - Guile プロシージャ "procedure->pointer" のエラー: 位置 1 の型引数が間違っています
したがって、Guile プロシージャ "procedure->pointer" は、戻り値の型、Scheme 関数、およびパラメーター型のリストを取り、C 関数ポインターを返します。
procedure->pointer: (戻り値の型、Scheme 関数、パラメーター型のリスト) -> C 関数ポインター
私の質問は、(typedef または struct 定義のいずれかを介して) C でカスタム型 "foo" を定義する場合、"foo" をプロシージャの戻り値の型またはパラメーターの型として使用できるように、それを Guile に登録するにはどうすればよいかということです。 →ポインター?procedure->pointer に "foo" というシンボルを渡すことになるでしょうか、それとも "foo" というスキーム変数を渡すことになるのでしょうか?
編集:次のようなものを呼び出したい:
linux - シェルを使用して telnet を開き、コマンドを渡す
Linuxとシェルスクリプトは初めてです。localhost に接続して対話したい。
この bash スクリプトを実行すると、ポートでリッスンが開始されます。
今、私はこのコマンド「telnet localhost xxxxx」を発行したいので、次のようなことを試しました:
それはまだポートでリッスンしています。しかし、2番目のコマンドが実行されていないと思います。このように接続されていることを示す別のウィンドウを期待しています。
これらをスクリプトとして実行する理由は、サーバーで自動的に、この「scm」「parse」などの特定のコマンドを発行して何らかのプロセスを実行する必要があるためです.....
たくさんのテキストが来ています。手動では、すべての文に対してこの解析コマンドを発行できません。だから自動化したい。そのため、サーバーに接続して対話するためのスクリプトを作成する必要があります。
ガイドライン。最後に、このガイルシェルにコマンドをやり取り/送信する方法は?
emacs - GuileをEmacsのデフォルトGeiser REPLとして設定しますか?
Guile をデフォルトの Scheme 実装として設定するように Emacs を構成するにはどうすればよいですか?
module - 外部ファイルからのプロシージャを使用する場合の Guile からの警告
文字列からsha1ハッシュを生成する手順があります:
関数 hex と sha1 は、SHA256 の「純粋な」スキーム実装 (R5RS) から取得されますか? コードを sha.scm に入れ、次を使用してロードしました。
次のような警告があります。
これらの警告を解決するにはどうすればよいですか?
guile - ファイルから行を読み取る
ガイルスキームを使用してファイルから行を読み取る方法を見つけようとしています。
「ポートの読み取り」または「文字ポートの読み取り」を要求すると、正常に読み取ります。
しかし、行を読むように頼むと失敗します。
私が間違っていることを誰かが知っていますか?現在、foo.txt があるディレクトリにいます。
guile - シンボルがバインドされているかどうかを確認する
Emacs Lisp では、ある値にバインドされている場合は(boundp 'symbol)
戻り、そうでない場合は戻ります。Guile Schemeに同等の手順はありますか?t
symbol
nil
c++ - ffi シンボルはどこで定義されていますか?
macOS Sierra で guile-2.0.11 をビルドするために、「lib guile_2.0_la-foreign.o」というファイルをリンクしようとしています。make ファイルからの ld コマンドは、次のようなエラーを 10 以上返します。
ここで、「_ffi_type_xxx」は「xxx」の位置が異なります。hombrew で libffi をインストールし、CPPFLAGS と LDFLAGS に lib と include ディレクトリの場所を伝えましたが、それでも同じエラーが発生します。これらのシンボルはどこにありますか?
regex - スキーム正規表現で後読みを使用する
<
別の後に一致する正規表現があります<
これは私が使用(?<=<)<
しており、正常に動作します。
ただし、string-match
関数を使用して文字列内のパターンを検索すると、エラーがスローされます。
私が使用しているコードは次のとおりです。
それが示すエラー:
エラー: プロシージャ make-regexp:
エラー: プロシージャ make-regexp: 先行する正規表現が無効です
Scheme は後読み正規表現をサポートしていますか? もしそうなら、私はここで何が間違っていますか? そうでない場合、これを機能させる方法はありますか
undefined-reference - msys2 で GNU Guile 1.8.8 をコンパイルする: '_imp__scm_shell' および '_imp__scm_boot_guile' への未定義の参照
これが重複している場合は申し訳ありませんが、このサイトで私のような質問を見つけることができませんでした.
Windows で GNU Guile 1.8.8 を msys2 でコンパイルしようとしていますが、'_imp__scm_shell' と '_imp__scm_boot_guile' への未定義の参照エラーが発生しています。これまでに行った手順は次のとおりです。
- msys2-20170918 をインストールして更新する
- base-devel、mingw-w64-i686-toolchain、mingw-w64-x86_64-toolchain、mingw-w64-i686-libtool、mingw-w64-x86_64-libtool を pacman でインストールします。
- GNU Guile 1.8.8 をダウンロード
- msys2\mingw32.exe を開き、cd でソース コードのディレクトリに移動します。
- ./configure --disable-error-on-warning を実行します
- make を実行
数分後、次のエラーで終了します。
役立つ場合に備えて、ログ ファイルを次に示します。
私が間違っていることに関する情報は大歓迎です。
tcp - Guile 経由で Websocket に接続する
私はあらゆる種類のソケットに関する知識/経験がほとんどないため、私の質問は私の無知が原因である可能性があります.
Guile にはプロトコルの概念はありませんが、Websocket は単なる HTTP 要求であるため、少なくとも Guile の Web モジュールを使用して要求を送信できるはずです。
https://wsninja.io/#demoの wss://node2.wsninja.io を使用して練習しています。
書き上げました
接続を試みます。はプロトコルを要求しますが (そして Guile はorgetaddrinfo
を認識しません)、私が実際に必要とするのは整数としての IP アドレスだけであり、それが実際に行っていることのすべてです。つまり、整数表現を抽出することです。結果は、ウェブ上の他のいくつかのサービスに対して検証した結果と一致するため、正しいようです。"wss"
"ws"
私が間違っPF_INET
てAF_INET
いなければ、IPv4 は websocket の呼び出しに適しています。SOCK_STREAM
Websocketが開かれると、データを前後にストリーミングするので、私はそれを採用しました。
上記の例は、 https ://www.gnu.org/software/guile/manual/html_node/Internet-Socket-Examples.html#Internet-Socket-Examples の Guile によって提供されたクライアントの例に基づいています。
どういうわけか間違っているのは次の部分だと思いますが、どうすればよいかわかりません。
接続後、次のステップはハンドシェイクを開始することだと思いました。Guile の例を考えると、これは現在 (理論的には) 開いているポートに表示することで実現できるように思われたので、次のようにしました。
また、1 つの文字列として送信されたハンドシェイクでもこれを試しました。このdo
ループは、Guile の例からほとんどそのまま引用されています。
ハンドシェイクを Websockets のヘッダーとして送信する必要があるという言及を見てきましたが、HTTP とそれほど変わらないと思いました。Guile の例ではそれを経由して送信していますが、それdisplay
が私のエラーの原因かもしれません。
言うまでもなく、これはうまくいきません。何もdisplay
処理されず、すぐにループが終了します。しかし、ソケットへの s を削除するとハングするだけなので、接続しているように見えます (ソケットがハンドシェイクを待機しているため送信されdisplay
ないため、無限ループであると想定しています)。eof-object
しかし、私が何かを送信しても、肯定もエラーも送信されません。だから私は混乱していて、私の深みから少し外れているので、尋ねようと思いました.