distcc - distcc
Autor (es) original (is) | Martin Pool |
---|---|
Desenvolvedor (s) | Fergus Henderson |
Versão estável | 3.3 / 3 de março de 2018
|
Repositório | |
Escrito em | C , C ++ , Python |
Sistema operacional | Plataforma cruzada |
Modelo | Compilador |
Licença | GNU General Public License |
Local na rede Internet | distcc |
No desenvolvimento de software , distcc é uma ferramenta para acelerar a compilação de código-fonte usando computação distribuída em uma rede de computadores . Com a configuração correta, o distcc pode reduzir drasticamente o tempo de compilação de um projeto.
Ele foi projetado para funcionar com a linguagem de programação C (e seus derivados, como C ++ e Objective-C ) e para usar o GCC como backend, embora forneça vários graus de compatibilidade com o Intel C ++ Compiler e o Sun Studio Compiler Suite da Sun Microsystems . Distribuído sob os termos da GNU General Public License , distcc é um software livre .
Projeto
O distcc foi projetado para acelerar a compilação, aproveitando o poder de processamento não utilizado em outros computadores. Uma máquina com distcc instalado pode enviar código a ser compilado através da rede para um computador que possui o daemon distccd e um compilador compatível instalado.
distcc funciona como um agente para o compilador. Um daemon distcc deve ser executado em cada uma das máquinas participantes. A máquina de origem invoca um pré - processador para manipular arquivos de cabeçalho, diretivas de pré-processamento (como #ifdef
) e os arquivos de origem e envia a origem pré - processada para outras máquinas na rede via TCP não criptografado ou usando SSH . As máquinas remotas compilam esses arquivos de origem sem quaisquer dependências locais (como bibliotecas, arquivos de cabeçalho ou definições de macro) para arquivos de objeto e os envia de volta ao originador para compilação posterior.
O distcc versão 3 suporta um modo (denominado modo de bomba ) no qual os arquivos de cabeçalho incluídos são enviados para as máquinas remotas, para que o pré-processamento também seja distribuído.
Software relacionado
distcc era uma opção para compilações distribuídas em versões do pacote de desenvolvimento Xcode da Apple anteriores a 4.3, mas foi removido.
Goma
Goma é uma ferramenta semelhante feita pelo Google para substituir distcc e ccache na compilação de cromo.
Ccache
ccache é outra ferramenta que visa reduzir o tempo de compilação, armazenando em cache a saída dos mesmos arquivos de origem de entrada. O ccache também pode usar distcc como backend, fornecendo compilação distribuída se ainda não estiver em cache usando a variável de ambiente CCACHE_PREFIX.
Sorvete
O sorvete foi criado pela SUSE com base no distcc. Como o distcc, o icecream pega tarefas de compilação de uma construção e as distribui entre máquinas remotas, permitindo uma construção paralela. Mas, ao contrário do distcc, o icecream usa um servidor central que agenda dinamicamente os trabalhos de compilação para o servidor gratuito mais rápido.