Wasm 3.0 завершён — Memory64, многопамять, сборка мусора и SpecTec теперь официальны

WebAssemblyWasmRuntimeTooling

Основное обновление

WebAssembly 3.0 завершён и опубликован (завершён 17 сентября 2025 года). Спецификация продвигает платформу в нескольких структурных аспектах, которые важны для реальной инженерии: истинное 64-битное адресное пространство (Memory64), первоклассная поддержка нескольких памяти на модуль, формально заданная модель сборщика мусора на стороне хоста (GC) для управляемых значений, новые встроенные функции строк JS для упрощения взаимодействия строк хоста и Wasm, а также новый инструментальный набор SpecTec, который генерирует текст, формальную семантику и тестовые артефакты из одного источника. В объявлении отмечается, что поддержка внедрена в большинстве основных браузеров и что автономные движки (например, Wasmtime и др.) на пути к добавлению полной поддержки. (webassembly.org)

Почему это важно

Memory64 устраняет старый потолок ~4 ГБ и делает Wasm жизнеспособным для больших задач обработки данных в памяти, которые ранее требовали нативных бинарных файлов или сложного шардирования; ожидайте более простого портирования кода с большим объёмом данных и меньше обходных путей для больших наборов данных. Многопамять и улучшенные текстовые/бинарные возможности устраняют неудобные хаки связывания модулей и позволяют надежное статическое объединение или модульное связывание скомпилированных единиц, что упрощает кросс-языковые среды выполнения и статическую упаковку. Сборка мусора на стороне хоста и более богатая модель ссылок — это наиболее значительное изменение для портируемости языков: они позволяют компиляторам и инструментальным наборам нацеливаться на Wasm, полагаясь на стандартную, эффективную модель сборки мусора, что существенно снижает барьер для первоклассной поддержки управляемых языков в стиле JVM/CLR/Go и для более богатых языковых сред выполнения внутри Wasm. Генерируемый машиной текст SpecTec + формальная семантика повышает надежность спецификации и должна уменьшить несоответствия между средами выполнения и инструментами, улучшая покрытие тестами и упрощая обнаружение регрессий. Все эти изменения обратно совместимы, но требуют обновлений инструментальных наборов и сред выполнения; практические следующие шаги для команд — зафиксировать и протестировать на обновлённых средах выполнения (браузерах и движках Wasm), провести реалистичные бенчмарки для путей Memory64/GC и следить за обновлениями для wasm-bindgen, Emscripten, целевых компиляторов и облачных платформ Wasm перед миграцией производственных нагрузок. (webassembly.org)

Источник

Читать дальше