Tendo encontrado Rust e tendo lido os dois primeiros capítulos da documentação, acho a abordagem e a maneira como eles definiram a linguagem particularmente interessante. Então eu decidi molhar meus dedos e comecei com Hello world ...
Eu fiz isso no Windows 7 x64, aliás.
fn main() {
println!("Hello, world!");
}
Emitindo cargo build
e analisando o resultado targets\debug
, encontrei o resultado .exe
sendo 3 MB. Após algumas pesquisas (é difícil encontrar a documentação das bandeiras da linha de comando de carga ...), encontrei a --release
opção e criei a versão build. Para minha surpresa, o tamanho do .exe ficou menor em uma quantidade insignificante: 2,99 MB em vez de 3 MB.
Então, confessando que sou novato no Rust e em seu ecossistema, minha expectativa seria que uma linguagem de programação de sistemas produzisse algo compacto.
Alguém pode elaborar sobre o que o Rust está compilando, como é possível que produza imagens tão grandes a partir de um programa de 3 linhas? Está compilando em uma máquina virtual? Existe um comando strip que eu perdi (informações de depuração dentro da compilação do release?)? Mais alguma coisa que permita entender o que está acontecendo?