Noticia Llega la nueva version del sistema de compilacion QBS 2.0

QbS

Qbs es un sistema de automatización de compilación independiente del idioma impulsado por la comunidad. Es rápido y ofrece un lenguaje fácil de aprender basado en QML.



Hace poco se dio a conocer el lanzamiento de la nueva versión de Qbs 2.0, el cual es un software gratuito y de código abierto multiplataforma para administrar el proceso de creación de software. Fue diseñado para admitir proyectos grandes y complejos, escritos en varios lenguajes de programación, principalmente C/C++

La nueva versión 2.0 es significativa en el número de versión, ya que está asociado con la implementación de un nuevo backend de JavaScript, que reemplazó a QtScript, que quedó obsoleto en Qt 6.



Para quienes desconocen de Qbs, deben saber que este utiliza una versión simplificada del lenguaje QML para definir secuencias de comandos de compilación de proyectos, lo que permite definir reglas de compilación bastante flexibles en las que se pueden conectar módulos externos, se pueden usar funciones de JavaScript y se pueden crear reglas de compilación arbitrarias.

Qbs es único en el sentido de que no tiene ningún mecanismo para las compilaciones internas, lo que garantiza la capacidad de crear varias compilaciones a partir de un solo árbol de fuentes, incluida la compilación a partir de una única invocación de comando y en paralelo.

Esta es una característica clave, que garantiza que los archivos de origen no se vean afectados si se elimina un directorio de compilación y que no se escriben artefactos de salida en el directorio de origen. Para construir Qbs, se requiere Qt como dependencia, aunque Qbs en sí mismo está diseñado para organizar el ensamblaje de cualquier proyecto.


El lenguaje de secuencias de comandos utilizado en Qbs está adaptado para automatizar la generación y el análisis de secuencias de comandos de compilación por parte de los IDE. Además, Qbs no genera archivos MAKE y, sin intermediarios como la utilidad make, controla el lanzamiento de compiladores y enlazadores, optimizando el proceso de compilación en función de un gráfico detallado de todas las dependencias.

La presencia de datos iniciales sobre la estructura y las dependencias en el proyecto le permite paralelizar efectivamente la ejecución de operaciones en varios hilos. Para proyectos grandes que consisten en una gran cantidad de archivos y subdirectorios, el rendimiento de las reconstrucciones que usan Qbs puede superar varias veces a make: la reconstrucción es casi instantánea y no hace que el desarrollador pierda tiempo esperando.

Principales novedades de QBS 2.0​


Este nuevo lanzamiento de QBS 2.0 es notable como ya se menciono al inicio, debido al nuevo motor de JavaScript que llega a suplir QtScript el cual quedo obsoleto para Qt 6, ya que se consideró poco realista continuar manteniendo QtScript por sí solo debido a enlaces complejos a JavaScriptCore.

La perspectiva de mantener QtScript con su compleja dependencia no parecía particularmente atractiva. Sin embargo, ninguno de los candidatos ofreció una API para interceptar los accesos a la propiedad, algo que los desarrolladores mencionan que necesitan absolutamente por razones de rendimiento.


Desde el punto de vista del usuario, no debería haber cambios notables; en particular, el rendimiento parece ser casi el mismo. Sin embargo, QtScript fue bastante indulgente al aceptar valores indefinidos en contextos en los que no tenía que hacerlo, por lo que la nueva implementación podría descubrir algunas fallas en sus proyectos

El motor es compatible con la especificación ES2019 y supera significativamente a sus homólogos existentes en rendimiento (XS en un 35 %, DukTape en más de dos veces, JerryScript en tres veces y MuJS en siete veces). Desde el punto de vista del desarrollo de scripts de compilación, la transición a un nuevo motor no debería generar cambios notables.

El rendimiento también se mantendrá casi igual. De las diferencias, existen requisitos más estrictos en el nuevo motor para el uso de valores nulos, lo que puede revelar problemas en proyectos existentes que pasaron desapercibidos al usar QtScript.

Ademas de ello, tambien se menciona que se eliminaron archivos de proyecto qmake, lo que se tradujo en una reducción de trabajo de mantenimiento para los desarrolladores.

Finalmente se menciona que la versión 2.1 verá una reescritura del código con lo cual los desarrolladores presumen que se tendrán varias características nuevas, asi como mejoras en general en el rendimiento.

Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Continúar leyendo...