Português
Por que? | Metas | Estado | Primeiros passos | Junte-se a nós
Veja nosso vídeo de anúncio da CppNorth. Observe que o Carbon não está pronto para uso.
corresponde a este código Carbono:
Você pode chamar Carbon de C++ sem sobrecarga e vice-versa. Isso significa que você migra uma única biblioteca C++ para Carbon dentro de um aplicativo ou escreve um novo Carbon além de seu investimento existente em C++. Por exemplo:
Leia mais sobre interoperabilidade C++ no Carbon.
Além da interoperabilidade entre Carbon e C++, também planejamos oferecer suporte a ferramentas de migração que traduzirão mecanicamente código C++ idiomático em código Carbon para ajudá-lo a migrar uma base de código C++ existente para Carbon.
Carbon fornece um sistema genérico moderno com definições verificadas, ao mesmo tempo em que oferece suporte a modelos opcionais para interoperabilidade C++ perfeita . Os genéricos verificados oferecem diversas vantagens em comparação aos modelos C++:
Sem sacrificar essas vantagens, os genéricos do Carbon oferecem suporte à especialização , garantindo que possam atender totalmente aos casos de uso de modelos C++ de desempenho crítico. Para obter mais detalhes sobre os genéricos do Carbon, consulte seu design.
Além da interoperabilidade fácil e poderosa com C++, os modelos Carbon podem ser restritos e migrados de forma incremental para genéricos verificados com granularidade fina e com um caminho evolutivo suave.
A segurança, e especialmente a segurança da memória, continua sendo um desafio importante para C++ e algo que uma linguagem sucessora precisa resolver. Nossa prioridade e foco iniciais são abordar imediatamente os frutos importantes e mais fáceis de alcançar no espaço de segurança:
Assim que pudermos migrar o código para o Carbon, teremos uma linguagem simplificada com espaço no espaço de design para adicionar quaisquer anotações ou recursos necessários, e infraestrutura como genéricos para suportar padrões de design mais seguros. A longo prazo, aproveitaremos isto para introduzir um subconjunto seguro de carbono . Este será um empreendimento grande e complexo e não estará no design 0.1. Enquanto isso, estamos observando de perto e aprendendo com os esforços para adicionar semântica segura de memória em C++, como anotações de vida útil inspiradas em Rust.
Para experimentar o Carbon imediatamente em seu navegador, você pode usar o interpretador de demonstração do Carbon em: carbon.compiler-explorer.com.
Estamos desenvolvendo um conjunto de ferramentas tradicional para Carbon que pode compilar e vincular programas. No entanto, o Carbon ainda é um projeto experimental inicial e, portanto, só temos lançamentos noturnos muito experimentais do conjunto de ferramentas do Carbon disponíveis para download e apenas em plataformas limitadas. Se você estiver usando um Ubuntu Linux recente ou similar (Debian, WSL, etc.), você pode experimentá-los acessando nossa página de lançamentos e baixando o arquivo tar do conjunto de ferramentas noturno mais recente: carbon_toolchain-0.0.0-0.nightly.YYYY.MM.DD.tar.gz . Então você pode experimentar:
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
Como lembrete, o conjunto de ferramentas ainda é muito inicial e muitas coisas ainda não funcionam. Por favor, não registre muitos bugs: sabemos que muitas partes disso ainda não funcionam ou podem não funcionar em todos os sistemas. Esperamos ter lançamentos muito mais robustos e confiáveis que você possa experimentar quando atingirmos nosso marco de 0,1.
Se você deseja construir o conjunto de ferramentas do Carbon sozinho ou está pensando em contribuir com correções ou melhorias para o Carbon, você precisará instalar nossas dependências de construção (Clang, LLD, libc++) e verificar o repositório Carbon. Por exemplo, no Debian ou 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
Então você pode experimentar nosso conjunto de ferramentas que possui um compilador em estágio inicial para Carbon:
# Build and run the toolchain's help to get documentation on the command line. $ ./scripts/run_bazelisk.py run //toolchain -- help
Para obter instruções completas, incluindo a instalação de dependências em várias plataformas diferentes, consulte nossa documentação de ferramentas de contribuição.
Saiba mais sobre o projeto Carbono:
Palestras da comunidade focadas em carbono:
Adoraríamos que pessoas se juntassem a nós e contribuíssem para o projeto. A Carbon está comprometida com um ambiente acolhedor e inclusivo onde todos possam contribuir.
Você também pode diretamente:
Você pode conferir alguns "bons primeiros problemas" ou ingressar no canal #contributing-help no Discord. Consulte nossa documentação CONTRIBUTING completa para obter mais detalhes.
#contributing-help
CONTRIBUTING