From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../building_firefox_with_rust_code/index.html | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 files/pt-br/mozilla/firefox/building_firefox_with_rust_code/index.html (limited to 'files/pt-br/mozilla/firefox/building_firefox_with_rust_code/index.html') diff --git a/files/pt-br/mozilla/firefox/building_firefox_with_rust_code/index.html b/files/pt-br/mozilla/firefox/building_firefox_with_rust_code/index.html new file mode 100644 index 0000000000..7f50b8a9c2 --- /dev/null +++ b/files/pt-br/mozilla/firefox/building_firefox_with_rust_code/index.html @@ -0,0 +1,34 @@ +--- +title: Building Firefox with Rust code +slug: Mozilla/Firefox/Building_Firefox_with_Rust_code +translation_of: Archive/Mozilla/Firefox/Building_Firefox_with_Rust_code +--- +
{{FirefoxSidebar}}

Em maio de 2015, foi lançada a primeira versão 1.0 estável da linguagem de programação Rust, e vários experimentos para escrever partes do Gecko em Rust iniciaram. Esta página é um simples guia para pessoas trabalhando nesta área.

+ +

Adicionando código Rust

+ +

O suporte básico para buildar códigos em Rust foi lançado no bug 1161339. Se você possui rustc no seu path, você pode adicionar arquivos .rs ao SOURCES em moz.build. Então adicione

+ +
ac_add_options --enable-rust
+ +

ao seu mozconfig e provavelmente funcionará.

+ +

A biblioteca padrão do Rust utiliza armazenamento thread-local, que não é suportado no MacOS X 2.6, então se você está buildando em um Mac, você também precisará disso:

+ +
ac_add_options --enable-macos-target=10.7
+ +

Alternativamente, você pode compilar com um conjunto de ferramentas costumizadas com --disable-elf-tls. Veja bug 1164109 para detalhes.

+ +

Graças as limitações do cargo e do sistema de build do Firefox, atualmente nós buildamos uma biblioteca estática stand-alone para cada arquivo rust listado em SOURCES. Você precisa portanto listar apenas os arquivos rust de alto nível. Tudo precisa ser um único crate, como uma compilação manual unificada. O compilador rust irá pesquisar por módulos interiores pelo nome do arquivo-fonte, mas referências crate externas não serão resolvidas.

+ +

Veja o bug 1135640 ('oxidation') para monitoramento global.

+ +

Testando código Rust

+ +

There's a simple linkage teste unitários in the tree. Você pode utilizá-lo para verificar se Rust está habilitado e funcionando com your build setup.

+ +
./mach gtest rust.*
+ +

Look for the rust.CallFromCpp test to pass, along with any others.

-- cgit v1.2.3-54-g00ecf