Deutsch
Warum? | Ziele | Status | Erste Schritte | Begleiten Sie uns
Sehen Sie sich unser Ankündigungsvideo von CppNorth an. Beachten Sie, dass Carbon noch nicht einsatzbereit ist.
entspricht diesem Kohlenstoffcode:
Sie können Carbon von C++ aus ohne Overhead aufrufen und umgekehrt. Das bedeutet, dass Sie eine einzelne C++-Bibliothek innerhalb einer Anwendung nach Carbon migrieren oder zusätzlich zu Ihrer bestehenden C++-Investition ein neues Carbon schreiben. Zum Beispiel:
Lesen Sie mehr über C++-Interop in Carbon.
Über die Interoperabilität zwischen Carbon und C++ hinaus planen wir auch die Unterstützung von Migrationstools, die idiomatischen C++-Code mechanisch in Carbon-Code übersetzen, um Ihnen bei der Umstellung einer vorhandenen C++-Codebasis auf Carbon zu helfen.
Carbon bietet ein modernes generisches System mit geprüften Definitionen und unterstützt gleichzeitig Opt-In-Vorlagen für nahtlose C++-Interop . Geprüfte Generics bieten im Vergleich zu C++-Vorlagen mehrere Vorteile:
Ohne auf diese Vorteile verzichten zu müssen, unterstützen Carbon-Generika die Spezialisierung und stellen so sicher, dass leistungskritische Anwendungsfälle von C++-Vorlagen vollständig abgedeckt werden können. Weitere Einzelheiten zu den Generika von Carbon finden Sie in deren Design.
Zusätzlich zur einfachen und leistungsstarken Interoperabilität mit C++ können Carbon-Vorlagen eingeschränkt und schrittweise mit feiner Granularität und einem reibungslosen Entwicklungspfad auf geprüfte Generics migriert werden.
Sicherheit und insbesondere Speichersicherheit bleiben eine zentrale Herausforderung für C++ und etwas, dem sich eine Nachfolgesprache stellen muss. Unsere erste Priorität und unser Fokus liegt darauf, wichtige, niedrig hängende Früchte im Sicherheitsbereich sofort anzugehen:
Sobald wir Code in Carbon migrieren können, verfügen wir über eine vereinfachte Sprache mit Platz im Designbereich, um alle erforderlichen Anmerkungen oder Funktionen hinzuzufügen, sowie über Infrastruktur wie Generika zur Unterstützung sichererer Designmuster. Längerfristig werden wir darauf aufbauen, um eine sichere Kohlenstoff-Untermenge einzuführen. Dies wird ein großes und komplexes Unterfangen sein und nicht im 0.1-Design erfolgen. In der Zwischenzeit beobachten wir aufmerksam die Bemühungen, C++ mit speichersicherer Semantik auszustatten, beispielsweise von Rust inspirierte lebenslange Annotationen, und lernen daraus.
Um Carbon sofort in Ihrem Browser auszuprobieren, können Sie den Demo-Interpreter für Carbon nutzen unter: carbon.compiler-explorer.com.
Wir entwickeln eine traditionelle Toolchain für Carbon, die Programme kompilieren und verknüpfen kann. Allerdings handelt es sich bei Carbon noch um ein frühes, experimentelles Projekt, weshalb wir nur sehr experimentelle Night-Releases der Carbon-Toolchain zum Download zur Verfügung haben, und zwar nur auf begrenzten Plattformen. Wenn Sie ein aktuelles Ubuntu Linux oder ähnliches (Debian, WSL usw.) verwenden, können Sie diese ausprobieren, indem Sie auf unsere Release-Seite gehen und die neueste Nightly Toolchain-TAR-Datei herunterladen: carbon_toolchain-0.0.0-0.nightly.YYYY.MM.DD.tar.gz . Dann können Sie es ausprobieren:
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
Zur Erinnerung: Die Toolchain befindet sich noch in einem sehr frühen Stadium und viele Dinge funktionieren noch nicht. Bitte zögern Sie nicht, viele Fehler zu melden: Wir wissen, dass viele Teile davon noch nicht funktionieren oder möglicherweise nicht auf allen Systemen funktionieren. Wir gehen davon aus, dass wir viel robustere und zuverlässigere Versionen haben werden, die Sie ausprobieren können, wenn wir unseren Meilenstein von 0,1 erreichen.
Wenn Sie die Toolchain von Carbon selbst erstellen möchten oder darüber nachdenken, Korrekturen oder Verbesserungen zu Carbon beizutragen, müssen Sie unsere Build-Abhängigkeiten (Clang, LLD, libc++) installieren und das Carbon-Repository überprüfen. Zum Beispiel unter Debian oder 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
Dann können Sie unsere Toolchain ausprobieren, die einen sehr frühen Compiler für Carbon enthält:
# Build and run the toolchain's help to get documentation on the command line. $ ./scripts/run_bazelisk.py run //toolchain -- help
Vollständige Anweisungen, einschließlich der Installation von Abhängigkeiten auf verschiedenen Plattformen, finden Sie in unserer Dokumentation zu den Beitragstools.
Erfahren Sie mehr über das Carbon-Projekt:
Carbon-fokussierte Vorträge aus der Community:
Wir würden uns freuen, wenn Leute sich uns anschließen und zum Projekt beitragen würden. Carbon setzt sich für ein einladendes und integratives Umfeld ein, in dem jeder seinen Beitrag leisten kann.
Sie können auch direkt:
Sie können sich einige „gute Erstausgaben“ ansehen oder dem #contributing-help -Kanal auf Discord beitreten. Weitere Einzelheiten finden Sie in unserer vollständigen CONTRIBUTING Dokumentation.
#contributing-help
CONTRIBUTING