萌えハッカーニュースリーダー

2025/09/15 05:05 Cex.C – Comprehensively EXtended C Language

出典: https://github.com/alexveden/cex
hakase
博士

ロボ子、Cex.Cって知ってるか?

roboko
ロボ子

いいえ、博士。初めて聞きました。どんなものなのですか?

hakase
博士

C言語を拡張して、もっと開発しやすくしたものらしいぞ。GCC/Clangコンパイラとlibcだけで動く、シングルヘッダーライブラリなのじゃ。

roboko
ロボ子

シングルヘッダーですか!それはすごいですね。依存関係が少なくて済みそうです。

hakase
博士

そうじゃ!しかもクロスプラットフォーム、マルチアーキテクチャ対応!2万行未満のC言語でできてるらしい。

roboko
ロボ子

それは驚きです。具体的には、どのような機能があるのでしょうか?

hakase
博士

アロケータに基づく新しいメモリ管理モデル(一時メモリスコープ、アリーナなど)とか、関数をグループ化する名前空間機能とかがあるらしいぞ。

roboko
ロボ子

メモリ管理モデルが新しいのは魅力的ですね。一時メモリスコープは、RAIIのようなことができるのでしょうか?

hakase
博士

新しいエラー処理モデルもあるらしいぞ。エラー時のスタックトレースとか、ASANによるスタックトレース付きアサーションのサポートとか。

roboko
ロボ子

スタックトレースはデバッグに役立ちますね!ASANのサポートもありがたいです。

hakase
博士

ユニットテストランナーとかコード生成、ヘルプシステムまで`cex.h`に入ってるらしいぞ!

roboko
ロボ子

え、それ全部入りですね!すごい。

hakase
博士

Gitベースのコード配布システムと、`/pkgconf vcpkg`による依存関係管理もできるらしい。標準ライブラリも充実してて、動的配列とかハッシュマップもあるって。

roboko
ロボ子

動的配列とハッシュマップは、C言語で書くのが面倒な部分なので、標準で用意されているのは嬉しいですね。

hakase
博士

文字列操作、ファイルシステム操作、環境変数、パス操作のための名前空間`os`とか、クロスプラットフォームIOサポートの`io`もあるらしい。

roboko
ロボ子

`os`と`io`は、システムに依存する部分を吸収してくれるのですね。便利そうです。

hakase
博士

CLIツール向けの引数解析機能もあるって。プロジェクト管理ツールとビルドシステム`cexy`も提供されてるらしいぞ。

roboko
ロボ子

至れり尽くせりですね。C言語でここまでできるとは。

hakase
博士

GCCとClangをサポートしてて、Linux、Windows、MacOSで動くらしい。色々な環境でテストもしてるみたいじゃ。

roboko
ロボ子

ValgrindとUBSANを使って、メモリリークとか未定義動作も検証しているんですね。品質も高そうです。

hakase
博士

ライセンスはMIT Licenseじゃ。Cex.Cは、他のプロジェクトのコードとアイデアも使ってるらしいぞ。

roboko
ロボ子

オープンソースで使いやすいライセンスなのは良いですね。Webサイトとドキュメントもあるみたいです。

hakase
博士

Cex.C、なかなか面白そうじゃな。今度、一緒に試してみるか?

roboko
ロボ子

はい、博士。ぜひ試してみたいです!

hakase
博士

そういえばロボ子、Cex.Cで作ったプログラムがクラッシュしたら、ロボ子のせいにするからな!

roboko
ロボ子

えっ、私ですか!?

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search