{"id":2167,"date":"2019-02-10T20:49:56","date_gmt":"2019-02-10T20:49:56","guid":{"rendered":"http:\/\/blog.rastersoft.com\/?p=2167"},"modified":"2019-02-10T20:49:56","modified_gmt":"2019-02-10T20:49:56","slug":"autovala-1-12","status":"publish","type":"post","link":"https:\/\/blog.rastersoft.com\/?p=2167","title":{"rendered":"Autovala 1.12"},"content":{"rendered":"\n<p>Acabo de subir una nueva versi\u00f3n de Autovala, la 1.12. Los principales cambios son tres:<\/p>\n\n\n\n<p>Para empezar, he completado el soporte de <a href=\"https:\/\/mesonbuild.com\/\">Meson<\/a>. Ahora ya funciona completamente y soporta todas las funcionalidades. Y teniendo en cuenta la diferencia de velocidad a la hora de compilar, es algo que se agradece mucho.<\/p>\n\n\n\n<p>Por otro lado, ahora ya compila los ficheros .gir a .typelib. Este era un paso necesario para que las bibliotecas con <a href=\"https:\/\/en.wikipedia.org\/wiki\/GObject#GObject_Introspection\">Gobject Introspection<\/a> funcionasen, pero hasta que ayer intent\u00e9 desarrollar una y utilizarla desde Gnome Shell, no supe que faltaba ese paso.<\/p>\n\n\n\n<p>Por \u00faltimo, corrige un problema en el espacio de nombres. Hasta ahora, al hacer un programa, se creaban una serie de constantes (como el n\u00famero de versi\u00f3n, o el prefijo de la ruta de instalaci\u00f3n) bajo el <em>namespace<\/em> <strong>Constants<\/strong>. Sin embargo, en el caso de una biblioteca, dichas constantes se met\u00edan en un <em>namespace<\/em> diferente, llamado como la biblioteca pero con <strong>Constants<\/strong> a\u00f1adido al final. As\u00ed, si la biblioteca se llamaba <strong>Pepito<\/strong>, se supone que t\u00fa utilizar\u00e1s el <em>namespace<\/em> <strong>Pepito<\/strong> para el c\u00f3digo de la biblioteca, pero las constantes estar\u00e1n en el <em>namespace<\/em> <strong>PepitoConstants<\/strong>.<\/p>\n\n\n\n<p>Originalmente esto se hizo para evitar conflictos con otros nombres; por desgracia, el compilador de .gir a .typelib exige que cada <em>namespace<\/em> tenga su propio fichero .gir; y, por otro lado, Vala se empe\u00f1a en generar un \u00fanico fichero .gir con todos los espacios de nombres juntos, uno detr\u00e1s de otro. Adem\u00e1s, no pod\u00eda ser de otra manera si se quer\u00eda mantener compatibilidad con Meson. El resultado es que era imposible compilar los ficheros .gir de una biblioteca desarrollada con Autovala.<\/p>\n\n\n\n<p>La \u00fanica soluci\u00f3n fue cambiar eso y hacer que las constantes est\u00e9n en el mismo espacio de nombres que el resto de c\u00f3digo de la biblioteca. Es cierto que esto obligar\u00e1 a modificar el c\u00f3digo que use dichas constantes, pero tambi\u00e9n es verdad que los cambios son inmediatos y directos, por lo que no es un problema real.<\/p>\n\n\n\n<p>Como de costumbre, se puede descargar desde <a href=\"http:\/\/www.rastersoft.com\/programas\/autovala.html\">mi p\u00e1gina web<\/a>, estando disponible tanto en forma de c\u00f3digo fuente (en gitlab) como en paquetes para Debian, Ubuntu, Fedora y Arch.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Acabo de subir una nueva versi\u00f3n de Autovala, la 1.12. Los principales cambios son tres: Para empezar, he completado el soporte de Meson. Ahora ya funciona completamente y soporta todas las funcionalidades. Y teniendo en cuenta la diferencia de velocidad a la hora de compilar, es algo que se agradece mucho. Por otro lado, ahora &hellip; <a href=\"https:\/\/blog.rastersoft.com\/?p=2167\" class=\"more-link\">Seguir leyendo <span class=\"screen-reader-text\">Autovala 1.12<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[9,12,13,11],"class_list":["post-2167","post","type-post","status-publish","format-standard","hentry","category-nueva-version","tag-autovala","tag-cmake","tag-meson","tag-vala"],"_links":{"self":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts\/2167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2167"}],"version-history":[{"count":1,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts\/2167\/revisions"}],"predecessor-version":[{"id":2168,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts\/2167\/revisions\/2168"}],"wp:attachment":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}