Lanzamento da linguaxe de programación Go 1.15

Presentado versión da linguaxe de programación Vaia 1.15, que está a ser desenvolvido por Google coa participación da comunidade como unha solución híbrida que combina o alto rendemento das linguaxes compiladas coas vantaxes das linguaxes de script como a facilidade de escritura de código, a velocidade de desenvolvemento e a protección contra erros. Código do proxecto distribuído por baixo a licenza BSD.

A sintaxe de Go baséase en elementos familiares da linguaxe C con algúns préstamos da linguaxe Python. A linguaxe é bastante concisa, pero o código é fácil de ler e comprender. O código Go compílase en executables binarios autónomos que se executan de forma nativa sen utilizar unha máquina virtual (intégrase os subsistemas de creación de perfiles, depuración e outros de detección de problemas en tempo de execución como compoñentes de execución), que lle permite acadar un rendemento comparable aos programas C.

O proxecto desenvólvese inicialmente pensando na programación multiproceso e na operación eficiente en sistemas multinúcleo, incluíndo a provisión de medios a nivel de operador para organizar a computación paralela e a interacción entre métodos executados en paralelo. A linguaxe tamén ofrece protección integrada contra bloques de memoria sobreasignados e ofrece a posibilidade de utilizar un colector de lixo.

O principal innovaciónsintroducido na versión de Go 1.15:

  • Mellorouse significativamente o traballo do enlazador, tanto no aumento da velocidade de operación e redución do consumo de memoria, como na dirección de simplificar o mantemento do código. Cando se probou en sistemas operativos que usan o formato de ficheiro executable ELF (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris), construíuse un conxunto típico de grandes aplicacións Go un 20 % máis rápido e o consumo de memoria reduciuse nunha media dun 30 %. O aumento da produtividade foi posible cambiando a un novo formato de ficheiro obxecto e reelaborando as fases internas para aumentar o nivel de paralelización do traballo. O enlazador nativo agora úsase por defecto nos sistemas linux/amd64 e linux/arm64 en "-buildmode=pie", que xa non require o uso dun enlazador C.
  • En tempo de execución, a distribución de pequenos obxectos en sistemas cun gran número de núcleos de CPU mellorouse significativamente e reduciuse a latencia. En caso de fallos, móstranse valores con tipos numéricos e de cadea en lugar de mostrar o enderezo. Ao enviar sinais SIGSEGV, SIGBUS e SIGFPE a unha aplicación Go, en ausencia dun manejador de os/signal.Notify, a aplicación sairá cunha saída de rastrexo de pila (anteriormente o comportamento era imprevisible).
  • O compilador optimizouse para reducir o tamaño dos ficheiros executables xerados nunha media dun 5 % ao deter a inclusión dalgúns metadatos para o colector de lixo e unha limpeza máis agresiva dos metadatos non utilizados.
  • A marca "-spectre" engadiuse ao compilador e ao ensamblador para habilitar a protección contra ataques da clase Spectre (para a maioría dos programas isto non é necesario; habilitar a opción só se pode xustificar para algúns casos moi concretos).
  • Nos certificados X.509, o campo CommonName quedou en desuso, que xa non se trata como un nome de host se falta o campo Nomes alternativos do asunto.
  • O comando "ir" na variable de ambiente GOPROXY agora pode enumerar varios proxies, separados por coma ou "|". Se o primeiro proxy da lista devolve un erro (404 ou 410), intentarase contactar a través do segundo proxy, etc.
  • A utilidade veterinaria engadiu unha advertencia sobre o intento de converter desde string(x) se "x" é un tipo enteiro distinto da runa ou byte.
  • A bandeira "-gnu" engadiuse á utilidade objdump para admitir a sintaxe do ensamblador GNU.
  • Engadiuse un novo paquete tempo/tzdata, que permite integrar unha base de datos con datos de zona horaria no programa.
  • A partir de textos e documentación fonte eliminado as frases whitelist/blacklist e master/slave, que agora son substituídas por "allowlist", "blocklist", "process", "pty", "proc" e "control".
  • Realizáronse unha gran parte das melloras menores na biblioteca estándar.
  • Engadido soporte para OpenBSD 6.7 nos modos GOARCH=arm e GOARCH=arm64 (anteriormente só se admitían GOARCH=386 e GOARCH=amd64).
  • Continuou o desenvolvemento da plataforma RISC-V de 64 bits (GOOS=linux, GOARCH=riscv64).
  • Para os sistemas x32 de 86 bits, a próxima versión aumentará os requisitos mínimos do sistema: só os procesadores con SSE2 seguirán sendo compatibles. Para construír no modo GOARCH=386 necesitará polo menos un Intel Pentium 4 (lanzado en 2000) ou un AMD Opteron/Athlon 64 (lanzado en 2003).

Fonte: opennet.ru

Engadir un comentario