Lançamento do tradutor de linguagem de programação Vala 0.54.0

Uma nova versão do tradutor de linguagem de programação Vala 0.54.0 foi lançada. A linguagem Vala é uma linguagem de programação orientada a objetos que fornece uma sintaxe semelhante a C# ou Java. O código Vala é traduzido em um programa C, que, por sua vez, é compilado por um compilador C padrão em um arquivo binário e executado na velocidade de um aplicativo compilado no código-objeto da plataforma de destino. É possível executar programas em modo script. A linguagem está sendo desenvolvida sob os auspícios do projeto GNOME. Gobject (Glib Object System) é usado como modelo de objeto. O código do compilador é distribuído sob a licença LGPLv2.1.

A linguagem possui suporte para introspecção, funções lambda, interfaces, delegados e fechamentos, sinais e slots, exceções, propriedades, tipos não nulos, inferência de tipos para variáveis ​​locais (var). O gerenciamento da memória é realizado com base na contagem de referências. Uma biblioteca de programação generalizada libgee foi desenvolvida para a linguagem, que fornece a capacidade de criar coleções para tipos de dados personalizados. A enumeração de elementos de coleção usando a instrução foreach é suportada. A programação dos programas gráficos é realizada através da biblioteca gráfica GTK.

O kit vem com um grande número de ligações para bibliotecas na linguagem C. O tradutor Vala fornece suporte para a linguagem Genie, que oferece capacidades semelhantes, mas com uma sintaxe inspirada na linguagem de programação Python. Programas como o cliente de e-mail Geary, o shell gráfico Budgie, o programa de organização de arquivos de fotos e vídeos Shotwell e outros são escritos na linguagem Vala. A linguagem é usada ativamente no desenvolvimento da distribuição Elementary OS.

Principais inovações:

  • Adicionado suporte para delegados com número variável de parâmetros;
  • Adicionado perfil LIBC, que é sinônimo de perfil POSIX;
  • Geração aprimorada no modo de perfil POSIX;
  • Adicionada a capacidade de declarar variáveis ​​que podem ter um valor nulo com inferência de tipo (var?);
  • Adicionada a capacidade de declarar classes proibidas para herança (seladas);
  • Adicionado operador de acesso seguro aos campos de classe que podem ser nulos (a.?b.?c);
  • Inicialização permitida do conteúdo da estrutura como nulo (const Foo[] BARS = { { "bar", 42 }, null };);
  • A operação resize() é proibida para matrizes constantes;
  • Adicionada saída de aviso ao tentar lançar uma chamada de função para void ((void)not_void_func(););
  • Removida a restrição nos tipos de elementos GLib.Array;
  • Corrigida a herança de propriedade "unowned var" na instrução foreach();
  • A ligação ao webkit2gtk-4.0 foi atualizada para a versão 2.33.3;
  • A vinculação ao gstreamer foi atualizada para a versão 1.19.0+ git master;
  • A ligação ao gtk4 foi atualizada para a versão 4.5.0~e681fdd9;
  • A ligação para gtk+-3.0 foi atualizada para a versão 3.24.29+f9fe28ce
  • A ligação ao gio-2.0,glib-2.0 foi atualizada para a versão 2.69.0;
  • Para Linux, foram adicionadas ligações ao SocketCAN;
  • Correções nas ligações para glib-2.0, gio-2.0, gstreamer-rtp-1.0, javascriptcoregtk-4.0, gobject-2.0, pango, linux, gsl, rest-0.7, libusb, libusb-1.0, pixman-1, webkit2gtk-web- extensão-4.0, x11, zlib, gnutls;
  • Removidas ligações gedit-2.20 e webkit-1.0;
  • Ligações atualizadas baseadas em GIR;
  • A capacidade de verificar o código C gerado foi adicionada ao sistema de teste;
  • Girparser, girwriter, valadoc, libvaladoc/girimporter aprimorados;
  • Os erros e deficiências acumulados de vários componentes do compilador foram corrigidos.

Fonte: opennet.ru

Adicionar um comentário