Wasm3 to be Released

Wasm3 is a interpreter of WebAssembly intermediate code with high performance that can be used to run many WASI applications
14 January 2020   127

The first release of wasm3 is available, a very fast interpreter of WebAssembly intermediate code. It is mainly designed to run WebAssembly applications on microcontrollers and platforms for which there is no JIT implementation for WebAssembly, not enough memory for JIT to work, or the creation of executable memory pages necessary for JIT implementation. The project code is written in C and distributed under the MIT license.

Wasm3 passes tests for compatibility with the WebAssembly 1.0 specification and can be used to run many WASI applications, providing performance only 4-5 times lower than JIT engines (liftoff, cranelift) and 11.5 times lower than native code execution. When compared with other WebAssembly interpreters (wac, life, wasm-micro-runtime), wasm3 was 15.8 times faster.

Wasm3 requires 64Kb of memory for code and 10Kb of RAM, which allows you to use the project to run applications compiled in WebAssembly on microcontrollers such as Arduino MKR *, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166), Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) and ATmega1284, as well as on boards and computers based on x86, x64, ARM, MIPS, RISC-V and Xtens architectures . Of the operating systems, Linux (including routers based on OpenWRT), Windows, macOS, Android, and iOS are supported. It was also possible to compile wasm3 into WebAssembly intermediate code to execute the interpreter in a browser or for self-hosting.

High performance is achieved through the use of the Massey Meta Machine (M3) technique in the interpreter, in which, to reduce the overhead of decoding the bytecode, the bytecode is proactively translated into more efficient operations generating pseudo-machine code, and the execution model of the stacked virtual machine is converted to a more efficient register an approach. Operations in M3 are C functions, the arguments of which are the registers of the virtual machine, which can be reflected on the registers of the CPU. Frequently encountered workflows for optimization are converted to summary operations.

Learn more at GitHub.

VirtualBox to Get Updates For 3 Versions

Versions 6.1.2, 6.0.16 and 5.2.36 were released, and, for example, 18 vulnerabilities were fixed in version 6.1.2
16 January 2020   92

Oracle has released a virtualization release for VirtualBox 6.1.2, which notes 16 fixes. At the same time, the corrective releases of VirtualBox 6.0.16 and 5.2.36 were also released.

Major changes in release 6.1.2:

  • 18 vulnerabilities were eliminated, of which 6 are of a high degree of danger (CVSS Score 8.2 and 7.5). Details are not reported, but judging by the CVSS level, some problems allow the code to be executed on the host system side from the guest environment;
  • On the host side, support for the Linux 5.5 kernel has been added (not yet supported on guest systems);
  • In additions for guest systems, when using the VMSVGA driver, processing of multi-monitor configurations and resizing of the workspace has been improved;
  • Improved virtio-scsi performance;
  • Added support (in read-only mode) for compressed clusters in QCOW2 images;
  • The problem that leads to reduced performance of guest systems with Windows XP on hosts with AMD processors has been resolved;
  • Correct reporting of CPUID IBRS / IBPB support has been established, which allowed to solve the problem with the crash of the NetBSD 9.0 RC1 installer;
  • The GUI resolved problems with updating information about the state of the virtual machine;
  • In the screen settings, the output of the option "2D video acceleration" is removed, if it is not supported by the selected graphics adapter;
  • The problem with the processing of audio input when turning on VRDE;
  • Fixed crash in the code for emulating HDA-sound in configurations with several speakers;
  • The problem with using encrypted disks with snapshots has been fixed;
  • The vbox-img.exe utility is returned to the installer for Windows;
  • When installing or removing a set of extensions in Windows, support for retrying a directory rename operation in the event of a failure, usually arising from antivirus activity, is implemented;
  • Windows includes hardware-based 2D video decoding if the VBoxSVGA driver with 3D active mode is used.

Get more at the changelog in the wiki of the project.