中文(繁体)
為什麼? |目標|狀態 |開始使用 |加入我們
請參閱 CppNorth 的公告影片。請注意,Carbon 尚未準備好使用。
對應這個Carbon程式碼:
您可以從 C++ 呼叫 Carbon,無需任何開銷,反之亦然。這意味著您可以在應用程式中將單一 C++ 程式庫遷移到 Carbon,或在現有 C++ 投資的基礎上編寫新的 Carbon。例如:
閱讀有關 Carbon 中的 C++ 互通的更多資訊。
除了 Carbon 和 C++ 之間的互通性之外,我們還計劃支援遷移工具,將慣用的 C++ 程式碼機械轉換為 Carbon 程式碼,以協助您將現有的 C++ 程式碼庫切換到 Carbon。
Carbon 提供了一個具有檢查定義的現代泛型系統,同時仍然支援無縫 C++ 互通的選擇模板。與 C++ 模板相比,檢查泛型具有以下幾個優點:
在不犧牲這些優勢的情況下, Carbon 泛型支援專業化,確保它能夠完全解決 C++ 模板的效能關鍵用例。有關 Carbon 泛型的更多詳細信息,請參閱其設計。
除了與 C++ 的簡單且強大的互通性之外,Carbon 模板還可以以細粒度和平滑的演化路徑進行約束和增量遷移到檢查的泛型。
安全性,尤其是記憶體安全,仍然是 C++ 的關鍵挑戰,也是後續語言需要解決的問題。我們的首要任務和重點是立即解決安全領域中重要的、容易實現的目標:
一旦我們可以將程式碼遷移到 Carbon 中,我們將擁有一種簡化的語言,並在設計空間中留出空間來添加任何必要的註解或功能,以及泛型等基礎設施來支援更安全的設計模式。從長遠來看,我們將在此基礎上引入一個安全的 Carbon 子集。這將是一項龐大而複雜的工作,並且不會出現在 0.1 設計中。同時,我們正在密切關注並學習向 C++ 添加記憶體安全語義的努力,例如受 Rust 啟發的生命週期註釋。
若要立即在瀏覽器中試用 Carbon,您可以使用 Carbon 的示範解釋器:carbon.compiler-explorer.com。
我們正在為 Carbon 開發一個傳統的工具鏈,可以編譯和連結程式。然而,Carbon 仍然是一個早期的實驗性項目,因此我們只有非常實驗性的 Carbon 工具鏈夜間版本可供下載,並且僅限於有限的平台。如果您使用的是最新的 Ubuntu Linux 或類似版本(Debian、WSL 等),您可以訪問我們的發布頁面並下載最新的夜間工具鏈 tar 檔案來嘗試這些功能: carbon_toolchain-0.0.0-0.nightly.YYYY.MM.DD.tar.gz 。然後你可以嘗試:
carbon_toolchain-0.0.0-0.nightly.YYYY.MM.DD.tar.gz
# A variable with the nightly version from yesterday: VERSION= " $( date -d yesterday +0.0.0-0.nightly.%Y.%m.%d ) " # Get the release wget https://github.com/carbon-language/carbon-lang/releases/download/v ${VERSION} /carbon_toolchain- ${VERSION} .tar.gz # Unpack the toolchain: tar -xvf carbon_toolchain- ${VERSION} .tar.gz # Create a simple Carbon source file: echo " fn Run() { Core.Print(42); } " > forty_two.carbon # Compile to an object file: ./carbon_toolchain- ${VERSION} /bin/carbon compile --output=forty_two.o forty_two.carbon # Install minimal system libraries used for linking. Note that installing `gcc` # or `g++` for compiling C/C++ code with GCC will also be sufficient, these are # just the specific system libraries Carbon linking still uses. sudo apt install libgcc-11-dev # Link to an executable: ./carbon_toolchain- ${VERSION} /bin/carbon link --output=forty_two forty_two.o # Run it: ./forty_two
提醒一下,工具鏈還很早期,很多東西還不能運作。請推遲提交大量錯誤:我們知道其中的許多部分尚無法工作,或者可能無法在所有系統上工作。我們希望發布更強大、更可靠的版本,當我們達到 0.1 里程碑時,您可以嘗試一下。
如果您想自行建立 Carbon 的工具鏈或正在考慮為 Carbon 提供修復或改進,您需要安裝我們的建置依賴項(Clang、LLD、libc++)並查看 Carbon 儲存庫。例如,在 Debian 或 Ubuntu 上:
# Update apt. sudo apt update # Install tools. sudo apt install clang libc++-dev libc++abi-dev lld # Download Carbon's code. $ git clone https://github.com/carbon-language/carbon-lang $ cd carbon-lang
然後你可以嘗試我們的工具鏈,它有一個非常早期的 Carbon 編譯器:
# Build and run the toolchain's help to get documentation on the command line. $ ./scripts/run_bazelisk.py run //toolchain -- help
有關完整的說明,包括在各種不同平台上安裝依賴項,請參閱我們的貢獻工具文件。
了解有關碳項目的更多資訊:
來自社區的以碳為主題的演講:
我們很樂意有人加入我們並為該專案做出貢獻。 Carbon 致力於營造一個人人都能做出貢獻的熱情和包容的環境。
您也可以直接:
您可以查看一些「首先要解決的問題」 ,或加入 Discord 上的#contributing-help頻道。有關更多詳細信息,請參閱我們完整的CONTRIBUTING文件。
#contributing-help
CONTRIBUTING