한국어
왜? | 목표 | 상태 | 시작하기 | 우리와 함께하세요
CppNorth의 발표 비디오를 참조하세요. 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 디자인에는 포함되지 않을 것입니다. 한편, 우리는 Rust에서 영감을 받은 수명 주석과 같은 메모리 안전 의미 체계를 C++에 추가하려는 노력을 면밀히 관찰하고 배우고 있습니다.
브라우저에서 즉시 Carbon을 사용해 보려면 carbon.compiler-explorer.com에서 Carbon용 데모 해석기를 사용할 수 있습니다.
우리는 프로그램을 컴파일하고 링크할 수 있는 전통적인 Carbon용 툴체인을 개발하고 있습니다. 그러나 Carbon은 아직 초기 실험 프로젝트이기 때문에 매우 실험적인 Carbon 툴체인 릴리스만 다운로드할 수 있으며 제한된 플랫폼에서만 사용할 수 있습니다. 최신 Ubuntu Linux 또는 유사한 제품(Debian, WSL 등)을 사용하는 경우 릴리스 페이지로 이동하여 최신 nightly 툴체인 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 . 그런 다음 시도해 볼 수 있습니다.
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 프로젝트에 대해 자세히 알아보세요:
커뮤니티의 탄소 중심 대화:
우리는 사람들이 우리와 함께 프로젝트에 기여하기를 바랍니다. Carbon은 모두가 기여할 수 있는 따뜻하고 포용적인 환경을 조성하기 위해 최선을 다하고 있습니다.
다음을 직접 수행할 수도 있습니다.
"좋은 첫 번째 문제"를 확인하거나 Discord의 #contributing-help 채널에 가입할 수 있습니다. 자세한 내용은 전체 CONTRIBUTING 문서를 참조하세요.
#contributing-help
CONTRIBUTING