このプロジェクトについて
cxは、実行時パフォーマンスと開発者の生産性に焦点を当てた、C系のハイブリッドな低レベル/高レベルプログラミング言語であり、優先順位はこの順序である。シンプルで意見を押し付けない言語とされており、命令型、ジェネリック、データ指向、関数型、オブジェクト指向のプログラミングスタイルをサポートする。LLVMまたはCバックエンドを通じてネイティブコードにコンパイルされ、ガベージコレクションや隠れたランタイムはない。
このプロジェクトは0.1リリースに近づいている。READMEには、計画されている一部の機能はまだ実装されておらず、実装済みの機能は変更される可能性があり、バグが存在すると記載されている。ドキュメントはプロジェクトのウェブサイトおよびdocs配下のMarkdown形式で利用可能で、コードサンプルはexamplesディレクトリにある。質問や議論はGitHub issuesまたはプロジェクトのDiscordサーバーへ誘導されている。
ソースからのビルドにはC++20コンパイラ、CMake 3.16以降、LLVM/Clang 23が必要である。READMEにはLinux(aptベースのインストールとビルド済みLLVM tarball)、macOS(Homebrew)、Windows(ビルド済みLLVMバイナリ)向けのプラットフォーム別手順が記載されている。ビルドによりcxおよびcx-lspバイナリが生成される。言語サーバーは、LSP対応エディタにおいて診断、ホバー、定義へ移動、補完、参照検索、セマンティックハイライトをサポートする。
コントリビューションはGitHub issuesおよびTrelloボードを通じて歓迎されている。テストではpip経由でインストールしたlitとpsutilを使用し、その後CMakeのcheckターゲットがCTestを通じて全スイートを実行し、lit/コンパイラテスト、LLVMとC両方のバックエンドでのサンプルプログラム、ドキュメントのスニペット、言語サーバーのエンドツーエンドテストをカバーする。サブセットはctestフィルタで実行できる。C++コードスタイルはformatおよびlintのCMakeターゲットを通じてClangFormatにより強制される。WebAssemblyフロントエンドとブラウザ内Cツールチェーンがブラウザプレイグラウンドとウェブサイトを支え、ローカル開発用のビルドスクリプトがある。このプロジェクトはMITライセンスの下で提供されている。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.