cxgo
v0.4.1
CxGo は、C ソース コードを Go に変換するツールです (トランスパイラー、ソース間コンパイラーとも呼ばれます)。
C の前処理と解析に cc v3 を使用し (clang/gcc 依存関係はありません!)、カスタムの型チェッカーと AST 変換層を使用して、可能な限り最高の出力を実現します。
唯一の要件は、C コードはヘッダーを含めてcxgoでコンパイルする必要があることです。
そうは言っても、 cxgoこのプロセスを簡単にするためにいくつかのトリックを使用します。
プロジェクトの目標に関する TL;DR:
プロジェクトに関する一般的な質問については、FAQ を確認してください。
このプロジェクトは実験的なものです!本番環境やその他の機密性の高い環境では、これに依存しないでください。
複数のプロジェクトでのテストは成功しましたが、まだ未知のバグによりコードの動作が変わる可能性があります。
コンパイラのテスト結果:
トランスパイルされたプロジェクト:
go install github.com/gotranspile/cxgo/cmd/cxgo@latestまたは、Github から最新リリースをダウンロードします。
それを試す最も速い方法は次のとおりです。
cxgo file main.c詳細については、例のセクションを確認してください。
基本的な使用パターンだけでなく、より高度な使用パターン (実際のプロジェクトでの) もガイドします。
問題がある場合は、FAQ も確認してください。
以下の C 機能は現在cxgoで受け入れられていますが、部分的に実装されるか、まったく実装されない可能性があります。
static (#4)auto (#5)union (#7)packed構造体 (#8)asmcase (#9)goto Go によって禁止されています (ただし、回避策はあります。#10 を参照)setjmp (コンパイルされますが、実行時にパニックになります)#ifdefパスを考慮する私たちのコミュニティに参加してください!ご連絡をお待ちしております。
「貢献」を参照してください。
マサチューセッツ工科大学