Linguaxe de programación GNU Guile 3.0.10 dispoñible

Publicouse a versión de GNU Guile 3.0.10, unha implementación gratuíta da linguaxe de programación funcional Scheme, que admite a posibilidade de incorporar código en aplicacións noutras linguaxes de programación. Guile pódese usar como linguaxe para desenvolver extensións de aplicacións, definir a configuración ou desenvolver compoñentes para conectar as distintas primitivas proporcionadas pola aplicación. Guile é a linguaxe oficial de desenvolvemento de extensións para o sistema operativo GNU.

A astucia baséase en máquina virtual, que executa un conxunto de instrucións portátil xerado por un compilador de optimización dedicado. A máquina virtual Guile intégrase facilmente co código das aplicacións C e C++. Ademais de Scheme, para o que se implementa compatibilidade coas especificacións R5RS, R6RS e R7RS, o proxecto Guile desenvolveu compiladores para outras linguaxes, como ECMAScript, Emacs Lisp e Lua (en desenvolvemento). O paquete inclúe unha biblioteca de módulos que implementan funcións de servizo comúns, como o traballo co protocolo HTTP, a análise XML e o uso de métodos de programación orientada a obxectos.

Entre os cambios na nova versión:

  • Implementouse unha interface experimental para usar backends de terceiros. Os desenvolvedores teñen a oportunidade de usar o frontend existente, que converte o código fonte en representación interna, e o optimizador Guile xunto con outros backends que realizan a xeración de código.
  • Introduciuse un backend externo para xerar código intermedio de WebAssembly que se pode executar no navegador. No futuro, é posible que WebAssembly se inclúa entre os principais obxectivos de compilación compatibles en Guile.
  • Permítese o uso de "define" no contexto das expresións "when", "unless", "cond", "case", "and-let*" e "with-fluids".
  • Engadido soporte para o mecanismo de portos personalizados, descrito no dialecto da linguaxe Scheme R6RS, que permite conectar controladores para a transformación de datos (por exemplo, compresión/descompresión ou cambio de codificación de caracteres) procesados ​​en funcións como
    ler, escribir e mostrar. Guile tamén ofrece un módulo "(ice-9 soft-ports)" que proporciona unha interface "soft port", que se sitúa como un análogo máis sinxelo de "ports personalizados".
  • Engadiuse soporte para a sintaxe de wisp simplificada, que lle permite escribir código máis lexible, por exemplo:

    definir: factorial n
    se: cero? n
    . 1
    * n : factorial (- n 1)
    visualización: factorial 5
    nova liña

    en vez de

    (definir (factorial n)
    (se (cero? n)
    1
    (*n(factorial(-n1)))))

    (visualización (factorial 5))
    (nova liña)

  • O compilador implementou un novo aviso que se emite cando se importan ao código módulos cuxas funcións non se utilizan.
  • Engadiuse unha nova anotación "quizais non utilizado" que suprime os avisos sobre procedementos non utilizados.
  • A saída do rastrexo da pila de chamadas agora está recortada en 500 caracteres en lugar de 80 (pódese cambiar mediante o ancho de cadro predeterminado).
  • Engadiuse o parámetro "#:copy-on-write" ao procedemento "copiar-ficheiro", o que permite que o mecanismo de copia-on-write se use nos sistemas de ficheiros que o admitan.
  • Engadida optimización para garantir a expansión en liña das chamadas de procedemento con argumentos de palabras clave.

Fonte: opennet.ru

Compre hospedaxe fiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra aloxamento web fiable con protección DDoS, servidores VPS VDS | ProHoster