Indonesia
Mengapa? | Sasaran | Status | Memulai | Bergabunglah dengan kami
Lihat video pengumuman kami dari CppNorth. Perhatikan bahwa Karbon belum siap digunakan.
sesuai dengan kode Karbon ini:
Anda dapat memanggil Carbon dari C++ tanpa overhead dan sebaliknya. Ini berarti Anda memigrasikan satu pustaka C++ ke Carbon dalam aplikasi, atau menulis Carbon baru di atas investasi C++ yang sudah ada. Misalnya:
Baca selengkapnya tentang interop C++ di Carbon.
Selain interoperabilitas antara Carbon dan C++, kami juga berencana untuk mendukung alat migrasi yang secara mekanis akan menerjemahkan kode idiomatik C++ ke dalam kode Carbon untuk membantu Anda mengalihkan basis kode C++ yang ada ke Carbon.
Carbon menyediakan sistem generik modern dengan definisi yang terverifikasi, sambil tetap mendukung templat keikutsertaan untuk interop C++ yang lancar . Generik yang diperiksa memberikan beberapa keunggulan dibandingkan dengan templat C++:
Tanpa mengorbankan keunggulan ini, Carbon generik mendukung spesialisasi , memastikannya dapat sepenuhnya mengatasi kasus penggunaan templat C++ yang kritis terhadap kinerja. Untuk rincian lebih lanjut tentang obat generik Carbon, lihat desainnya.
Selain interop yang mudah dan kuat dengan C++, templat Carbon dapat dibatasi dan dimigrasikan secara bertahap ke obat generik yang diperiksa dengan rincian yang baik dan jalur evolusi yang mulus.
Keamanan, dan khususnya keamanan memori, tetap menjadi tantangan utama bagi C++ dan sesuatu yang perlu diatasi oleh bahasa penerusnya. Prioritas dan fokus awal kami adalah untuk segera mengatasi hal-hal penting yang mungkin terjadi di bidang keselamatan:
Setelah kami dapat memigrasikan kode ke Carbon, kami akan memiliki bahasa yang disederhanakan dengan ruang di ruang desain untuk menambahkan anotasi atau fitur yang diperlukan, dan infrastruktur seperti generik untuk mendukung pola desain yang lebih aman. Dalam jangka panjang, kami akan memanfaatkan hal ini untuk memperkenalkan subset Karbon yang aman . Ini akan menjadi upaya yang besar dan kompleks, dan tidak akan terjadi dalam desain 0.1. Sementara itu, kami mengamati dan belajar dengan cermat dari upaya menambahkan semantik yang aman untuk memori ke C++ seperti anotasi seumur hidup yang terinspirasi dari Rust.
Untuk segera mencoba Carbon di browser Anda, Anda dapat menggunakan penerjemah demo untuk Carbon di: carbon.compiler-explorer.com.
Kami sedang mengembangkan rantai alat tradisional untuk Carbon yang dapat mengkompilasi dan menghubungkan program. Namun, Carbon masih merupakan proyek eksperimental awal, sehingga kami hanya memiliki rilis malam hari yang sangat eksperimental dari rangkaian alat Carbon yang tersedia untuk diunduh, dan hanya pada platform terbatas. Jika Anda menggunakan Ubuntu Linux terbaru atau sejenisnya (Debian, WSL, dll.), Anda dapat mencobanya dengan membuka halaman rilis kami dan mengunduh file tar nightly toolchain terbaru: carbon_toolchain-0.0.0-0.nightly.YYYY.MM.DD.tar.gz . Kemudian Anda dapat mencobanya:
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
Sebagai pengingat, toolchain ini masih sangat awal dan banyak hal yang belum berfungsi. Harap tunda pengajuan banyak bug: kami tahu banyak bagian dari ini belum berfungsi atau mungkin tidak berfungsi di semua sistem. Kami mengharapkan rilis yang jauh lebih kuat dan andal sehingga Anda dapat mencobanya ketika kami mencapai pencapaian 0,1 kami.
Jika Anda ingin membuat rantai alat Carbon sendiri atau berpikir untuk memberikan kontribusi perbaikan atau penyempurnaan pada Carbon, Anda perlu menginstal dependensi build kami (Clang, LLD, libc++) dan memeriksa repositori Carbon. Misalnya, di Debian atau 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
Kemudian Anda dapat mencoba rangkaian alat kami yang memiliki kompiler tahap awal untuk Carbon:
# Build and run the toolchain's help to get documentation on the command line. $ ./scripts/run_bazelisk.py run //toolchain -- help
Untuk instruksi lengkap, termasuk menginstal dependensi pada berbagai platform berbeda, lihat dokumentasi alat kontribusi kami.
Pelajari lebih lanjut tentang proyek Karbon:
Pembicaraan masyarakat yang berfokus pada karbon:
Kami ingin orang-orang bergabung dengan kami dan berkontribusi pada proyek ini. Carbon berkomitmen terhadap lingkungan yang ramah dan inklusif di mana setiap orang dapat berkontribusi.
Anda juga bisa langsung:
Anda dapat melihat beberapa "masalah pertama yang bagus" , atau bergabung dengan saluran #contributing-help di Discord. Lihat dokumentasi CONTRIBUTING lengkap kami untuk lebih jelasnya.
#contributing-help
CONTRIBUTING