問題タブ [crystal-lang]
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.
crystal-lang - Crystal lang、GC を待たずにインスタンス (オブジェクト) を明示的に破棄 (解放) することは可能ですか?
タイトルがすべてを物語っています。たぶん、次のように呼び出すことができるメソッドがありdef destruct; delete self;end
ますか?
garbage-collection - glib を Crystal lang にバインドする (GC の問題)
glib から Crystal にいくつかの関数をバインドしようとしています。私はこれを行いましたが、動作します:
ただし、メモリ リークが発生します。g_* 関数で作成されたオブジェクトはガベージ コレクションされません。
CrystalのBoehm GCでglibをうまくプレイさせることは可能ですか? PCREに触発されて、私はこれを試しました:
g_malloc
関数と関数をオーバーライド/再定義することを望んでいますg_free
。しかし、うまくいきません: セグメンテーション違反で失敗します。
glib を GC でプレイする方法はありますか? どういうわけか関連する質問を見つけましたが、役に立ちませんでした:ガベージコレクションとglib?
よろしくお願いします。
linux - 出力をキャプチャしながらCrystalでシェルスクリプトを実行する方法は?
stdout と stderr の出力を処理しながら、シェル スクリプトを実行したいと考えています。現在、stdin、stdout、stderr のProcess.run
、 with 、および 3 つのパイプを使用してコマンドを実行しています。shell=false
stdout と stderr から読み取り、出力をログに記録 (またはその他の方法で処理) するファイバーを生成します。これは、個々のコマンドではうまく機能しますが、スクリプトではひどく失敗します。
shell=true
を呼び出すときに簡単に設定できますProcess.run
が、Crystal ソースを見ると、コマンドラインの先頭に「sh」を追加するだけのようです。「bash」を先頭に追加しようとしましたが、役に立ちませんでした。
リダイレクト ( >file
) やパイプ (例curl something | bash
) のようなものは動作しないようですProcess.run
たとえば、シェルスクリプトをダウンロードして実行するには、次のことを試しました。
cmd = %{bash -c "curl http://dist.crystal-lang.org/apt/setup.sh " | バッシュ}
Process.run(cmd, ...)
イニシャルbash
は、パイプ オペレーターを有効にすることを期待して追加されました。役に立たないようです。また、各コマンドを個別に実行してみました:
script.split("\n").reject(/^#/, "").each { Process.run(...) }
しかしもちろん、コマンドがリダイレクトやパイプを使用している場合は失敗します。たとえば、コマンドecho "deb http://dist.crystal-lang.org/apt crystal main" >/etc/apt/sources.list.d/crystal.list
は単純に次のように出力します。
"deb http://dist.crystal-lang.org/apt crystal main" >/etc/apt/sources.list.d/crystal.list`
``
代わりにバックティックの実行方法を使用するとうまくいくかもしれません。しかし、そうすると、出力をリアルタイムでキャプチャすることができなくなります。
crystal-lang - Pry for Crystal に相当するものはありますか?
私はクリスタル言語で非常に新しいです。Ruby の Pry のようなデバッガが Crystal に存在するかどうか知りたいですか?
これは、この行でプログラムの実行を停止するときに「binding.pry」のようなコードを入れて、変数を制御できることを意味します。
crystal-lang - Crystal の簡略ブロック構文
Crystalでブロックの省略形を使用することは可能ですか?
この試みはエラーを返します:
... Symbol ではなく、関数型が必要です
ruby - Crystal が Ruby よりも速いのはなぜですか?
コードは非常に似ていますが、Crystal が Ruby よりも正確に高速である理由を知りたいです。簡単に言えば、それはコンパイルされており、Ruby は解釈されているということかもしれませんが、言語仕様についてもっと理解したいと思っています。
crystal-lang - Crystal で Ruby の gem を使用することはできますか?
開発者によると、Crystal は Ruby 言語の構文に従っています。では、Ruby gem を必要とするだけで (または将来)、魔法のようにビルドして適切に動作させることはできますか?
file - コンパイル済みスクリプトの __FILE__ を取得
Crystal スクリプトのコンパイル済みバージョンを取得して、独自の __FILE__ を取得するにはどうすればよいですか。ここに例があります。~/test.cr というファイルがあり、次の内容が含まれています。
Crystal経由でスクリプトをコンパイルします
次に ~/test.compiled を実行します。私が結果を出す
__FILE__ は実際には
生成させる方法はありますか
それ以外の
http - Crystal-lang ファイル/画像アップロード http サーバー
ファイルのアップロードを処理する Crystal ベースの Web サーバーを持つことは可能ですか? 私はドキュメントと多くの Crystal Web フレームワークを見てきました。シンプルなファイルアップロード機能への言及はどこにも見つかりませんでした。
これは可能ですか、それとも画像のアップロードを処理するために他の場所を探す必要がありますか?