GO 1.25, la última versión del lenguaje de programación de código abierto desarrollado por Google, se ha lanzado. La actualización trae nuevas capacidades que incluyen un recaudador de basura experimental que mejora el rendimiento, una solución para un error del compilador que podría retrasar las verificaciones de puntero y un paquete que proporciona soporte para probar el código concurrente. Anunciado el 12 de agosto por el equipo GO, se puede acceder a 1.25 en Go.dev. El lanzamiento incluye mejoras en herramientas, el tiempo de ejecución, la biblioteca estándar, el compilador y el enlazador. El nuevo recolector de basura tiene un diseño que mejora el rendimiento de marcar y escanear objetos pequeños a través de una mejor localidad y escalabilidad de CPU, según el equipo GO. El equipo espera una reducción del 10% al 40% en la sobrecarga de recolección de basura en programas del mundo real que usan en gran medida al coleccionista. Los desarrolladores pueden habilitar el coleccionista estableciendo GoExperiment = Greenteaqc en el momento de la compilación. Mientras tanto, para el compilador, la versión corrige un error de GO 1.21 que podría retrasar incorrectamente las verificaciones de puntero nil. Programas como el siguiente, que solían ejecutarse con éxito cuando no deberían, dijo el equipo GO, ahora entrarán en pánico correctamente con una excepción de Nil-Pointer. paquete principal import «OS» func main () {f, err: = OS.open («noxistentFile») Nombre: = f.name () if err! = nil {return} println (name)} En la biblioteca estándar, GO 1.25 tiene un nuevo paquete de pruebas/sinctest que admite el código de las pruebas para el código concurrente. La función de prueba ejecuta una función de prueba en una «burbuja» aislada, dijo el equipo. Dentro de la burbuja, el tiempo es virtualizado: las funciones del paquete de tiempo funcionan en un reloj falso y el reloj se mueve hacia adelante instantáneamente si todas las garutinas en la burbuja están bloqueadas. Además, la función de espera espera que todas las goroutinas en la burbuja actual se bloqueen. Este paquete primero estuvo disponible en GO 1.24 bajo GoExperiment = Synctest, con una API ligeramente diferente. El experimento se ha graduado a la disponibilidad general. GO 1.25 sigue a Go 1.24, que se introdujo en febrero con mejoras relacionadas con alias de tipo genérico y un ensamblaje web. El idioma GO ha llamado la atención últimamente con el plan de Microsoft para portar el compilador de mecanografiado y las herramientas al idioma, con la intención de aumentar el rendimiento. También aparece en GO 1.25: una implementación experimental de JSON, cuando está habilitada, proporciona un paquete de codificación/JSON/V2, que es una revisión importante del paquete de codificación/JSON, y el paquete de codificación/JSON/JSontext, que proporciona un procesamiento de nivel inferior de la sintaxis JSON. La opción GO Build -San ahora es predeterminada para hacer detección de fugas en la salida del programa. Esto informará un error si la memoria asignada por C no se libera y no se hace referencia por ninguna otra memoria asignada por GO o C. El compilador ahora puede asignar el almacén de respaldo para las rodajas en la pila en más situaciones, mejorando el rendimiento. El compilador y el enlazador ahora generan información de depuración utilizando DWARF (depuración con formatos de registro atribuido) Versión 5. La distribución de GO incluirá menos binarios de herramientas previamente construidos. Los binarios de cadena de herramientas básicas, como el enlazador y el compilador, aún se incluirán, pero las herramientas no invocadas por operaciones de compilación o prueba serán construidas y ejecutadas por la herramienta GO según sea necesario. El enlazador ahora acepta una opción de línea de comando -funcalign = n que especifica la alineación de las entradas de función. El valor predeterminado depende de la plataforma y no cambia en GO 1.25. Para la criptografía, Messageigner es una interfaz de firma que puede ser implementada por firmantes que desean tener el mensaje para inscribirse.
Deja una respuesta