Crystal プログラミング言語 1.2 のリリース

Crystal 1.2 プログラミング言語のリリースが公開されました。この言語の開発者は、Ruby 言語での開発の利便性と、C 言語の高いアプリケーション パフォーマンス特性を組み合わせようとしています。 Crystal の構文は Ruby に似ていますが、完全な互換性はありませんが、一部の Ruby プログラムは変更せずに実行できます。 コンパイラ コードは Crystal で記述され、Apache 2.0 ライセンスに基づいて配布されます。

この言語は静的型チェックを使用しており、コード内で変数やメソッド引数の型を明示的に指定する必要なく実装されています。 Crystal プログラムは実行可能ファイルにコンパイルされ、コンパイル時にマクロが評価され、コードが生成されます。 Crystal プログラムでは、C で記述されたバインディングを接続できます。 コード実行の並列化は、「spawn」キーワードを使用して実行されます。これにより、メインスレッドをブロックせずに、ファイバーと呼ばれる軽量スレッドの形式でバックグラウンド タスクを非同期モードで実行できます。

標準ライブラリは、CSV、YAML、JSON を処理するツール、HTTP サーバーを作成するためのコンポーネント、WebSocket サポートなどの共通関数の大規模なセットを提供します。 開発プロセス中は、Crystal 言語でコードを対話的に実行するための Web インターフェイス (デフォルトでは localhost:8080) を生成する「crystal play」コマンドを使用すると便利です。

主な変更点:

  • ジェネリック クラスのサブクラスを親クラスの要素に割り当てる機能が追加されました。クラス Foo(T);終了クラス Bar(T) < Foo(T);終了 x = フー x = バー
  • マクロでアンダースコアを使用して、for ループ内の値を無視できるようになりました。 {% for _, v, i in {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% end %}
  • マクロに「file_exists?」メソッドを追加しました。ファイルの存在を確認します。
  • 標準ライブラリは 128 ビット整数をサポートするようになりました。
  • BitArray や Deque などのコレクションの高度な操作を実装した Indexable::Mutable(T) モジュールを追加しました。 ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = true # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • XML から特定の名前空間を抽出するための XML::Node#namespace_production メソッドを追加しました。
  • IO#write_utf8 メソッドと URI.encode メソッドは廃止されたため、IO#write_string と URI.encode_path に置き換える必要があります。
  • 32 ビット x86 アーキテクチャのサポートは第 64 レベルに移動されました (既製のパッケージは生成されなくなりました)。 ARMXNUMX アーキテクチャのサポートの第 XNUMX レベルへの移行が準備されています。
  • Windows プラットフォームの完全なサポートを確保するための作業が続けられています。 Windows ソケットのサポートが追加されました。
  • macOS 用のユニバーサル パッケージが追加され、x86 プロセッサを搭載したデバイスと Apple M1 チップを搭載した機器の両方で動作します。

出所: オープンネット.ru

コメントを追加します