- Swift ha ganado popularidad como un lenguaje compatible con diversas plataformas, y puede usarse en distintos dispositivos embebidos y sistemas operativos
- Apple publicó como código abierto Swift Build, un motor de compilación potente y escalable
- Swift Build se utiliza como el motor de compilación de Xcode, y también se usa para las "apps del App Store y las compilaciones de los propios sistemas operativos de Apple".
- También admite compilaciones dirigidas a Linux y Windows
-
Funciones clave de Swift Build
- Un sistema de compilación se encarga de transformar la descripción de un proyecto y su código fuente en resultados como herramientas de línea de comandos, bibliotecas y aplicaciones
- Swift Build es un componente de infraestructura que planifica y ejecuta las compilaciones solicitadas por clientes de nivel superior como Swift Package Manager o Xcode
- Gracias a su sólida integración con el compilador de Swift, coordina las compilaciones de proyectos Swift de forma confiable y eficiente
- Admite diversos tipos de producto y ofrece opciones avanzadas de configuración de compilación
- Incluye optimizaciones del grafo de compilación para maximizar el paralelismo al compilar código Swift y C
-
Hoja de ruta de Swift Build
- En comparación con el motor de compilación de Xcode, el motor de compilación de Swift Package Manager es relativamente simple
- En las plataformas de Apple, dos métodos distintos para compilar paquetes han generado confusión entre los usuarios
- Buscan resolver estos problemas aportando el motor de compilación de Xcode a los proyectos de Swift y desarrollándolo como código abierto junto con el compilador de Swift
- SwiftPM tendrá la oportunidad de ofrecer un motor de ejecución de compilación unificado en todas las plataformas
- Este cambio será transparente para los usuarios y mantendrá compatibilidad total con todos los paquetes existentes
- Sienta las bases para ofrecer nuevas funciones y mejoras en todas las plataformas y herramientas
- Se envió un PR para integrar Swift Build como motor de compilación alternativo de SwiftPM
- Quieren completar la integración del sistema de compilación en colaboración con la comunidad para que todas las plataformas y modelos de proyecto se beneficien de futuras mejoras en las herramientas
-
Invitación a participar
- Esperan colaborar con la comunidad para seguir haciendo evolucionar la forma en que se compila código Swift.
- En la organización Swift de GitHub se puede encontrar el repositorio
swift-build, que incluye un README y documentación sobre cómo compilar y contribuir. - Dan la bienvenida a contribuciones mediante pull requests e issues, y buscan recibir comentarios e ideas de mejora en los foros de Swift.
- Es un nuevo y emocionante capítulo para el sistema de compilación de Swift, y esperan que ayude a liberar todo el potencial de Swift.
4 comentarios
Parece que lo importante es la página 12 de https://llvm.org/devmtg/2016-11/….
Modelo tradicional de compilación/sistema de build en UNIX
• El compilador se ejecuta como un proceso separado
• Mecanismos primitivos para comunicar dependencias
• Pipeline fijo de entrada/salida definido por la línea de comandos
• Esto es una API...
• ...y no la hemos cambiado en décadas
• Nos encanta romper APIs
Del lado de Java, parece que hay una API que informa las dependencias entre el código, así que les indica a las herramientas de build cómo lograr un incremental build,
ej.: Gradle
Parece que también habría que avanzar en aplicar ese enfoque a los builds nativos.
Entonces... en resumen, ¿eso significa que Xcode sigue siendo una basura igual que siempre?
T_T
zzz
Comentarios en Hacker News
La percepción de que Swift es "bueno para todo, pero mejor para las plataformas de Apple" podría ser perjudicial para el lenguaje. Eso impide atraer a más gente al ecosistema de Swift
Swift es un lenguaje genial
La situación de Swift recuerda a los primeros tiempos de C#
Ojalá Swift estuviera construido sobre LLVM estándar y no sobre el fork de LLVM de Apple
Swift debería apuntar a separarse de Xcode
La nueva versión de SwiftPM da la oportunidad de ofrecer un motor de ejecución de builds unificado en todas las plataformas
Me pregunto si esto puede abrir el camino para desarrollar en Swift sin Xcode
No está claro qué tan bien se integra Swift Build con las herramientas y el language server de Swift
Me alegra que Swift se esté independizando de Apple
URLSession.shared.datano compilaba en Linux, y por eso terminé cambiándome a otro lenguajeMe pregunto si Swift va en serio con los sistemas embebidos