Zig 0.6.0がリリースされました。これは、安定性、保守性、パフォーマンスを目的として設計された汎用プログラミング言語で、C言語をシステムプログラミングの最高の位置に置き換えることを目的としています。Zigには、次の注目すべき機能があります。
- 手動でメモリを管理する
- C言語に依存せずに競合する、Zig標準ライブラリはlibcに依存しない
- プログラミング言語の知識をデバッグするのではなく、アプリケーションをデバッグすることに重点を置いた、軽量でシンプルなもの
- 新しいエラー処理方法は、よく書かれたC言語のエラー処理に似ていますが、冗長性が大幅に削減されます
- デバッグモードで最適化された高速コンパイル時間、および不確かな動作が発生したときにスタックトレースでクラッシュ
- ReleaseFastモードとReleaseSafeモード
- 一般的なデータ構造と関数
- コルーチンによる同時実行性
- .hヘッダーファイルをインポートし、C言語の型、変数、関数を直接使用する
- C言語コードに依存する関数、変数、および型をエクスポートし、.hヘッダーファイルを自動的に生成します。
- nullポインターの代わりにオプションの型
- クロスコンパイルが主なユースケースです
このバージョンの開発サイクルは6か月続き、122人の異なるコントリビューターが2,527件のコミットを送信しました。
Zig 0.6.0はLLVMと同じ更新リズムを維持し、LLVMを最新バージョンのLLVM 10にアップグレードし、LLVM 9との互換性がなくなりました。新しいLLVMバージョンは主にバグを修正し、特にARMサポート、MIPSサポート、およびRISC-Vサポートのバグ修正を修正しました。
これは、すべてのZigパッチをアップストリームに組み込む最初のLLDバージョンでもあります。したがって、ZigのソースコードライブラリにはLLDソースコードのフォークが含まれなくなりました。これは、LLDソースコードが削除されているため、ソースコードのtarball zig-0.6.0.tar.xzがzig-0.5.0.tar.xzより0.5MiB小さいことを意味します。これにより、このリリースサイクルの他のすべての変更を組み合わせた場合よりも多くのスペースを節約できます。新しいBootstrap Tarballには、LLVM、LLD、Clangを含むZigコンパイラーのすべての依存関係がバンドルされていることに注意してください。
言語機能レベルでの主な更新は次のとおりです。
- 型強制構文
- Sentinelで終了するポインタ
- 配列から参照への型強制を削除
- 数値比較
- 匿名の構造体リテラル
- タプルが追加され、変数引数が削除されました
- SIMD
- @newStackCallが削除されました
- @コール
- callconv
- 非網羅的な列挙
- Unicode文字リテラル
詳細については、リリースのお知らせhttps://ziglang.org/download/0.6.0/release-notes.htmlを参照して ください