- O projeto Zig propõe remover as bibliotecas LLVM, Clang e LLD.
- O Zig planeja ter seus próprios passes de otimização e atrair projetos de pesquisa e contribuições de fabricantes de chips.
- Remoção da capacidade de compilar C++, Objective-C e Objective-C++ no Zig.
- O código de máquina gerado pelo Zig pode se tornar menos competitivo no futuro próximo, mas no longo prazo pode alcançar ou superar LLVM e GCC.
- Os benefícios de remover o LLVM incluem propriedade de bugs, build e bootstrapping mais fáceis, velocidades de compilação mais rápidas e a capacidade de implementar passes de otimização personalizados.
- Foram levantadas preocupações sobre o impacto em projetos que dependem da compilação de C++ e sobre a redução da adoção do Zig.
- Remover dependências do DirectXShaderCompiler e do compilador de shaders Metal da Apple pode ser difícil.
- No longo prazo, a meta é avançar para uma solução totalmente em Zig.
- Alguns usuários estão preocupados com o impacto na experiência de desenvolvimento de jogos e no uso de bibliotecas e ferramentas C++ existentes.
- A simplicidade do Zig e sua capacidade multiplataforma estão sendo elogiadas.
- Foi proposta a manutenção do backend LLVM como padrão ou a remoção do lowering para LLVM IR enquanto se mantém o suporte à família C.
- Os usuários destacam a importância da capacidade do Zig de compilar código C/C++ sem atritos e gerar binários com bom desempenho.
- Discutiu-se a possível perda de bibliotecas existentes e a necessidade de alternativas para compilação JIT.
- A proposta é percebida como um impacto puramente negativo e um possível chamariz para alguns usuários.
- Destaca-se a importância de manter os recursos do Zig para compilação cruzada e integração com bibliotecas existentes.
- Foi proposta a remoção das dependências de LLVM e LLD, mantendo o clang como dependência opcional.
- Foram levantadas preocupações sobre o impacto no desempenho e a viabilidade de substituir o LLVM.
- É enfatizada a importância do suporte à compilação de C++ para desenvolvimento de jogos e outros projetos.
- Foi mencionada a possibilidade de o Zig substituir gradualmente as funcionalidades do LLVM ao longo do tempo.
- Discutiu-se a necessidade de garantias de desempenho razoáveis e a possível perda de oportunidades de otimização.
- Foi mencionado o impacto em bibliotecas e ferramentas específicas, como ImGui e Tracy.
- A proposta de remover o LLVM da toolchain do Zig pode causar divisão na comunidade Zig.
- Alguns usuários podem passar a usar versões anteriores do Zig para evitar a migração.
- Há desafios e limitações para manter o LLVM.
- Um sistema de plugins para o compilador Zig pode ser uma solução de longo prazo.
- Continuaria sendo possível compilar programas Zig para outras plataformas e linguagens.
- O Zig cc, um recurso distintivo do Zig, pode continuar evoluindo como um projeto próprio.
- Ainda não foi tomada uma decisão final sobre a proposta.
- A discussão sobre a remoção do LLVM está se espalhando pelas redes sociais.
- O Zig cc é muito valorizado pela comunidade e oferece vantagens em comparação com outras toolchains.
- É possível manter o Zig cc sem o Clang.
- Um projeto separado que empacote o Clang poderia atender casos de uso existentes de construção de código C++ com Zig.
- Separar as ferramentas ou contratar mantenedores para preservar o Zig cc são soluções potenciais.
- Podem ser desenvolvidas ferramentas de migração para codebases que dependem dos recursos a serem removidos.
- Recentemente, um engenheiro de software migrou um projeto para uma versão mais nova do GHC, que usa um gerador de código nativo e oferece tempos de compilação mais rápidos.
- O projeto Silk.NET usa zig cc e zig c++ para fornecer um ambiente de build reprodutível para bibliotecas nativas, permitindo compilação cruzada fácil e configuração local.
- Engenheiros de software usam zig cc e zig c++ em projetos pessoais para facilitar a compilação cruzada de bibliotecas e permitir uma única configuração
build.zig.
- O compilador Intel C/C++ concluiu a adoção do LLVM, oferecendo tempos de compilação mais rápidos, melhor otimização e suporte a offloading para GPU e FPGA.
- A proposta de mover a parte LLVM do Zig para um projeto separado mantido pela comunidade recebeu reações mistas.
- Alguns usuários expressam preocupação com a remoção do suporte a C++ no Zig, enquanto outros argumentam que manter esse suporte é caro e não está coberto pelo orçamento.
- A equipe do Zig sugere que quem considera o suporte a C++ importante deveria pensar em contribuir financeiramente ou com tempo para sustentar o recurso.
- Alguns usuários dizem que remover o LLVM pode trazer benefícios no longo prazo, mas demonstram preocupação com a remoção completa do suporte a C++ e Obj-C(++).
- Há uma proposta para reduzir o compilador Zig a um binário menor e mais leve, adicionando os recursos do LLVM como extensões.
2 comentários
Será que vai conseguir oferecer otimização e suporte a plataformas no nível do LLVM...
Comentários do Hacker News