- Se propone eliminar las bibliotecas LLVM, Clang y LLD del proyecto Zig.
- Zig planea contar con sus propios pases de optimización y atraer proyectos de investigación y contribuciones de fabricantes de chips.
- Eliminación en Zig de la capacidad de compilar C++, Objective-C y Objective-C++.
- El código máquina generado por Zig podría ser menos competitivo en el futuro cercano, pero a largo plazo podría alcanzar o superar a LLVM y GCC.
- Entre los beneficios de eliminar LLVM están una propiedad más clara de los bugs, compilación y bootstrapping más sencillos, mayor velocidad de compilación y la capacidad de implementar pases de optimización personalizados.
- Se plantearon preocupaciones sobre el impacto en los proyectos que dependen de la compilación de C++ y sobre una posible disminución en la adopción de Zig.
- Podría ser difícil eliminar las dependencias de DirectXShaderCompiler y del compilador de shaders Metal de Apple.
- A largo plazo, se busca impulsar la transición hacia una solución puramente en Zig.
- Algunos usuarios están preocupados por el impacto en la experiencia de desarrollo de juegos y en el uso de bibliotecas y herramientas existentes de C++.
- Se elogia la simplicidad de Zig y su capacidad multiplataforma.
- Se propuso mantener el backend de LLVM como configuración predeterminada, o conservar el soporte para la familia C mientras se elimina la bajada a LLVM IR.
- Los usuarios destacan la importancia de que Zig pueda compilar sin fricciones código C/C++ y generar binarios con buen rendimiento.
- Se discutió la posible pérdida de bibliotecas existentes y la necesidad de alternativas para la compilación JIT.
- La propuesta es percibida por algunos como un impacto puramente negativo para los usuarios y como un posible señuelo.
- Se enfatiza la importancia de mantener las capacidades de Zig para compilación cruzada e integración con bibliotecas existentes.
- Se propuso eliminar las dependencias de LLVM y LLD, manteniendo clang como dependencia opcional.
- Se expresaron preocupaciones sobre el impacto en el rendimiento y sobre la viabilidad de reemplazar LLVM.
- Se subraya la importancia del soporte de compilación de C++ para el desarrollo de juegos y otros proyectos.
- Se mencionó la posibilidad de que Zig pueda reemplazar con el tiempo las capacidades de LLVM.
- Se discutió la necesidad de garantías de rendimiento razonables y la posible pérdida de margen de optimización.
- Se mencionó el impacto en bibliotecas y herramientas específicas como ImGui y Tracy.
- La propuesta de eliminar LLVM de la toolchain de Zig podría provocar una división en la comunidad de Zig.
- Algunos usuarios podrían usar versiones anteriores de Zig para evitar migrar.
- Mantener LLVM también implica desafíos y limitaciones.
- Un sistema de plugins para el compilador de Zig podría ser una solución a largo plazo.
- Seguiría siendo posible compilar programas Zig para otras plataformas y lenguajes.
zig cc, una función distintiva de Zig, podría seguir evolucionando como un proyecto propio.
- Aún no se ha tomado una decisión final sobre la propuesta.
- La discusión sobre eliminar LLVM se está extendiendo en redes sociales.
zig cc es muy valorado en la comunidad y ofrece ventajas frente a otras toolchains.
- Es posible mantener
zig cc sin Clang.
- Un proyecto separado que empaquete Clang podría dar soporte a los casos de uso actuales de construir código C++ con Zig.
- Separar herramientas o contratar mantenedores para conservar
zig cc son posibles soluciones.
- Podrían desarrollarse herramientas de migración para bases de código que dependan de las funciones eliminadas.
- Recientemente, un ingeniero de software migró un proyecto a una versión moderna de GHC que usa un generador de código nativo para ofrecer tiempos de compilación más rápidos.
- El proyecto Silk.NET usa
zig cc y zig c++ para ofrecer un entorno de compilación reproducible para bibliotecas nativas, facilitando la compilación cruzada y la configuración local.
- Un ingeniero de software usa
zig cc y zig c++ en proyectos personales para facilitar la compilación cruzada de bibliotecas y una configuración única con build.zig.
- El compilador Intel C/C++ completó la adopción de LLVM para ofrecer tiempos de compilación más rápidos, mejor optimización y soporte para offloading a GPU y FPGA.
- La propuesta de mover la parte de LLVM de Zig a un proyecto separado mantenido por la comunidad recibió reacciones mixtas.
- Algunos usuarios expresan preocupación por eliminar el soporte de C++ en Zig, mientras que otros sostienen que mantener ese soporte es costoso y no está contemplado en el presupuesto.
- El equipo de Zig sugiere que quienes consideran importante el soporte de C++ deberían pensar en contribuir con dinero o tiempo para sostener esa funcionalidad.
- Algunos usuarios señalan que eliminar LLVM podría traer beneficios a largo plazo, pero expresan preocupación por quitar por completo el soporte para C++ y Obj-C(++).
- Existe una propuesta para reducir el compilador de Zig a un binario más pequeño y liviano, agregando las capacidades de LLVM como una extensión.
2 comentarios
¿Será posible lograr tanta optimización o soporte de plataformas como con LLVM..
Opiniones en Hacker News