Se dio a conocer el borrador del estándar WebAssembly 2.0 

El W3C dio a conocer hace poco mediante una publicación, un borrador de una nueva especificación que estandariza el código de preparación de WebAssembly 2.0 y la API asociada para permitir la creación de aplicaciones de alto rendimiento que son portátiles entre navegadores y plataformas de hardware.

Para quienes desconocen de WebAssembly, deben saber que este proporciona un middleware genérico, de bajo nivel e independiente del navegador, para ejecutar aplicaciones compiladas a partir de varios lenguajes de programación. Gracias al uso de JIT para WebAssembly, puede lograr un nivel de rendimiento cercano al código nativo.

Sobre WebAssembly

WebAssembly se puede utilizar para realizar tareas de alto rendimiento en el navegador, como codificación de video, procesamiento de audio, manipulación de gráficos y 3D, desarrollo de juegos, operaciones criptográficas y cálculos matemáticos, mediante la ejecución de código escrito en lenguajes compilados como C/ C++.

Entre las principales tareas de WebAssembly está la provisión de portabilidad, previsibilidad de comportamiento e identidad de ejecución de código en diferentes plataformas. Recientemente, WebAssembly también se ha promocionado como una plataforma universal para la ejecución segura de código en cualquier infraestructura, sistema operativo y dispositivo, sin limitarse a los navegadores.

Sobre el borrador de WebAssembly 2.0

Por la parte de las modificaciones que se han realizado desde WebAssembly estan las propuestas terminadas para WebAssembly 2.0 se encuentran SIMD de ancho fijo, operaciones de memoria masiva, tipos de referencia, compatibilidad con BigInt de JavaScript para WebAssembly i64, compatibilidad con múltiples valores de retorno e importación/exportación de variables globales mutables.

El W3C ha publicado tres borradores de especificaciones de WebAssembly 2.0:

  1. WebAssembly Core: describe una máquina virtual de bajo nivel para ejecutar código intermedio de WebAssembly. Los recursos relacionados con WebAssembly vienen en formato «.wasm», similar a los archivos Java «.class», que contienen datos estáticos y segmentos de código para trabajar con esos datos.
  2. Interfaz JavaScript de WebAssembly: proporciona una API para la integración con JavaScript. Le permite obtener valores y pasar parámetros a las funciones de WebAssembly. La ejecución de WebAssembly sigue el modelo de seguridad de JavaScript y toda la interacción con el sistema principal se realiza de manera similar a la ejecución del código JavaScript.
  3. WebAssembly Web API: define una API basada en el mecanismo Promise para solicitar y ejecutar recursos «.wasm». El formato de recursos de WebAssembly está optimizado para iniciar la ejecución sin esperar a que el archivo se descargue por completo, lo que mejora la capacidad de respuesta de las aplicaciones web.

Diferencias entre WebAssembly y WebAssembly 2.0

Ademas, cabe resaltar que existen algunos cambios importantes en WebAssembly 2.0 en comparación con la primera versión del estándar:

  • Compatibilidad con el tipo de vector v128 y las instrucciones de vector relacionadas que le permiten realizar operaciones en múltiples valores numéricos en paralelo (SIMD, instrucción única, datos múltiples).
  • Capacidad para importar y exportar variables globales mutables, lo que permite el enlace global para valores como punteros de pila en C++.
  • Nuevas instrucciones para convertir float a int, que en lugar de generar una excepción en el desbordamiento de resultados, devuelve el valor mínimo o máximo posible (requerido para SIMD).
  • Instrucciones para expandir el signo de números enteros (aumentar la profundidad de bits de un número manteniendo el signo y el valor).
  • Soporte para devolver múltiples valores por bloques y funciones (además de pasar múltiples parámetros a funciones).
  • Implementar las funciones de JavaScript BigInt64Array y BigUint64Array para convertir entre el tipo de JavaScript BigInt y la representación WebAssembly de enteros de 64 bits.
  • Soporte para tipos de referencia (funcref y externref) y sus instrucciones asociadas (select, ref.null, ref.func y ref.is_null).
  • Instrucciones memory.copy, memory.fill, memory.init y data.drop para copiar datos entre regiones de memoria y borrar regiones de memoria.
  • Instrucciones para acceso directo y modificación de tablas (table.set, table.get, table.size, table.grow).
  • Capacidad para crear, importar y exportar múltiples tablas en un módulo. Funciones para copiar/llenar tablas en modo por lotes (table.copy, table.init y elem.drop).

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

from Linux Adictos https://ift.tt/G36e9Di
via IFTTT

Ubuntu 22.04 Jammy Jellyfish. Tan interesante como el pescado hervido

Marmita con pescado

Como el pescado hervido y la gelatina, la nueva versión liberada por Canonical tiene muchas virtudes y casi ningún inconveniente. Pero, no emociona.

Mañana se publica la tradicional versión bianual de soporte extendido de Ubuntu. Es la 22.04 y lleva el nombre en código Jammy Jellyfish. Y, aunque a pesar de su nombre en inglés (jellyfish) la medusa no es un pez, no pude resistirme al juego de palabras. De hecho, fue lo más parecido a pensar que tuve que hacer con esta versión.

No me entiendan mal. Ubuntu 22.04 Jammy Jellyfish está muy lejos de ser una mala versión. Por el contrario, es todo lo estable que se puede esperar de algo que presume de su soporte extendido. De hecho, algunas modificaciones para peor finalmente no se concretaron.

Por si no quieren leerse todo el post, su contenido se resume en el título siguiente:

Ubuntu 22.04 Jammy Jellyfish. Más GNOME y más Snap

Informe sobre Ubuntu

Ubuntu 22.04 usa Wayland como servidor gráfico por defecto.

La primera «novedad que nos presenta el arranque es la pantalla con el nuevo Logo de la distribución. El logo en un rectángulo naranja. Me ha dicho una diseñadora gráfica amiga que está bien diseñado. Es cierto, pero, no lo reconocerías de cualquiera de las plantillas que puedes encontrar en sitios como Canva. No es extraordinario. Y, lo mismo puede decirse de la distribución que representa con cualquier otra que traiga la misma versión del escritorio GNOME. Por comparar, Fedora 36, que también se lanza este mes, si aporta un plus al uso del escritorio del pie.

Por suerte, a pesar de las amenazas, nos salvamos por el momento del instalador basado en Flutter. Si los desarrolladores quieren deshacerse del viejo y querido Ubiquity deberían decantarse por Calamares. Si quieres saber por qué detesto tanto al próximo instalador puedes probarlo descargándote la versión Canary.

El proceso de instalación es el que ya conocemos. Si optas por el particionado manual te recordará la necesidad de crear una partición EFI, en cambio, si dejas que Ubiquity se ocupe de la instalación junto a otros sistemas operativos no tendrás que hacer nada. 

Se había hablado de que con el cambio a la versión 2.06 del cargador de arranque Grub, al venir desactivado el módulo de detección de otros sistemas operativos, no se mostraría más el menú para seleccionar por cuál arrancar (A menos que se activara dicho módulo) Sin embargo, después de una instalación automática el menú se ve como siempre.

Todo para ver

En lo personal no noto ninguna diferencia entre X11 y Wayland como servidor gráfico. Wayland es el servidor gráfico por defecto de Ubuntu mientras que otras derivadas como Ubuntu Studio siguen usando X11. En cambio, encuentre que Firefox, ahora instalado como paquete Snap me parece notoriamente más lento.

Una de las discusiones más antiguas del mundo Linux es la de consistencia versus libertad. De un lado están los que sostienen que la gran variedad de opciones confunde al usuario. Del otro argumentan que precisamente la capacidad de hacer modificaciones es la ventaja competitiva del software libre y de código abierto.

Los desarrolladores de GNOME lo tienen muy claro y, por eso apuntan a la consistencia, aunque eso signifique reducir posibilidades de personalización. Gran parte de la estabilidad de Ubuntu 22.04 Jammy Jellyfish viene de que el escritorio no les deja demasiado margen a los desarrolladores para experimentos. Y, aunque el escritorio de Ubuntu sigue pareciéndose a Unity es cada vez más parecido al original. Incluso se puede acortar el lanzador para que no ocupe todo lo alto de la pantalla.

La nueva sección del panel de control denominada Multitarea permite varias funciones que me parecieron muy útiles como redimensionar una ventana llevando el puntero a su borde izquierdo o derecho, gestionar las áreas de trabajo y distribuirlas entre uno o varios monitores.

El Centro de Software, a pesar de su rediseño sigue siendo la misma aplicación insufrible que es en todas las distribuciones basadas en GNOME.

En mi opinión

Ubuntu 22.04 Jammy Jellyfish se presenta como una distribución madura y estable, muy fácil de instalar y apta para el uso en contextos que requieran estabilidad. También vuelve a ser una distribución muy recomendable para usuarios novatos. Pero, no hay nada por lo que debas actualizar ya o cambiar desde otra.

De hecho, esa es mi principal objeción. Si Ubuntu continúa por el mismo camino y las otras distribuciones la imitan, nadie va a leer los blogs sobre Linux. Ya estoy grande para buscarme un trabajo honesto.

 

from Linux Adictos https://ift.tt/Yajz2oM
via IFTTT