LINUX.ORG.RU

В компилятор Rust по умолчанию добавлена поддержка бэкенда WebAssembly

 ,


3

9

Соответствующий запрос о слиянии был принят в основную ветку 25 ноября. С этого дня в ночных сборках доступна штатная цель сборки wasm32-unknown-unknown.

Благодаря этому, установив свежую ночную сборку, теперь можно компилировать Rust в WebAssembly без дополнительного инструментария:

rustup update
rustup target add wasm32-unknown-unknown --toolchain nightly
rustc +nightly --target wasm32-unknown-unknown -O hello.rs

Поддержка и документация пока что немного ограничены, но над расширением этой области ведётся активная работа. Также компилятор Rust пока что не имеет хорошего линковщика, так что конечные WebAssembly-сборки будут весьма крупными. Алекс написал небольшой инструмент для уменьшения размера:

cargo install --git https://github.com/alexcrichton/wasm-gc
wasm-gc hello.wasm small-hello.wasm

Полные инструкции можно найти в руководстве по установке wasm32-unknown-unknown.

>>> Источник

Ответ на: комментарий от AVL2

Позволяет писать компилируемый код который запускается в браузере. Исходной код может быть на любом языке, который компилируется в WebAssembly.

То есть - да, но код специально надо компилировать под браузер, а не так чтоб любое уже существующее десктоп-приложение в браузере запускать.

gene1 ()
Ответ на: комментарий от Ivan_qrt

WebAssembly - для быстрых вычислений. А DOM сам по себе должен был сдохнуть ещё году в 2000-м: даже нормальный XML со схемами уже при смерти, а ошмёткам дерьма HTML и CSS всё ещё поклоняются как богам и лижут их так, словно это не дерьмо, а леденцы. Чего только не сделают люди за деньги...

DRVTiny ★★★★★ ()
Ответ на: комментарий от DRVTiny

А DOM сам по себе должен был сдохнуть ещё году в 2000-м

Да я только за. Но для этого ему нужно какую-то альтернативу предложить. А такой на горизонте не видно. Наоборот, html уже и на десктопах прочно укрепился.

WebAssembly - для быстрых вычислений

Без взаимодействия с dom, браузерных событий и т.д. область применения весьма ограничивается. А интеграции в существующий сайт вообще никакой не будет.

А ведь могли бы от богомерзкого js избавится.

Ivan_qrt ★★★ ()
Ответ на: комментарий от Ivan_qrt

А ведь могли бы от богомерзкого js избавится.

цель WebAssembly — в том чтобы ДОПОЛНИТЬ скриптовый язык (javascript) возможностями вызывать бинарные модули...

...а не чтобы заменить javascript на бинарщину.

понимаешь разницу между «дополнить» и «заменить»?

объясняю:

«дополнение» подразумеваем усложнение архитекруты.

«замена» подразумевает переход от одной архитектуры к другой архитектуре (стратегия перехода и вообще плавный ли переход или не плавный — вопрос уже отдельный).

user_id_68054 ★★★★★ ()
Последнее исправление: user_id_68054 (всего исправлений: 1)
Ответ на: комментарий от Ivan_qrt

Без взаимодействия с dom, браузерных событий и т.д. область применения весьма ограничивается.

Из wasm можно легко вызывать js код, а значит мы имеем полный доступ ко всему что нужно, рано или поздно будет wasm библиотека и API в браузерах по умолчанию... если это wasm не сдохнет раньше времени

linux-org-ru ()
Ответ на: комментарий от user_id_68054

цель WebAssembly — в том чтобы ДОПОЛНИТЬ скриптовый язык (javascript) возможностями вызывать бинарные модули...

Понимаю. Сперва дополнить, потом расширить, потом изолировать, потом закопать.

Учитывая, что js вполне можно транслировать в wasm, в особенности, если в wasm gc добавят, необходимости в какой-то отдельной поддержке js нет вообще.

Только вот пилят поддержку этого wasm в браузерах уж очень медленно. В чём проблема уже существующий api для js в wasm перенести?

Ivan_qrt ★★★ ()
Ответ на: комментарий от linux-org-ru

Из wasm можно легко вызывать js код, а значит мы имеем полный доступ ко всему что нужно

Тормозить же будет раза в два сильнее, чем сейчас.

если это wasm не сдохнет раньше времени

Да походу не сдохнет. За него, вроде, все плотненько взялись.

Ivan_qrt ★★★ ()
Ответ на: комментарий от anonymous

У любого документа и программы с UI, если хочешь, есть DOM

Можно так нахардкодить, что сей постулат будет весьма спорным. Хочешь, покажу калькулятор одним классом, в котором отрисовка на графических примитивах и прямая работа с переменными из колбэков ввода?

bodqhrohro_promo ()
Ответ на: комментарий от user_id_68054

Изначальные цели — это одно, как его будут реально использовать  — можно только гадать.

Вон в Win32 есть API для создания интерактивных обучалок — типа попапы вылезают и показывают, чего и куда тыкать, вводят за тебя. В итоге реально юзающих его обучалок — кот наплакал, зато через него можно воровать ввод у других программ, рисовать картиночки поверх CMD.EXE, прятать панель задач, перемещать кнопочки в заголовках и всякое такое. Одна из причин, почему на винде столько вирусни — и в то же время столько вкусных программулин, несмотря на закрытость системы.

Или, ближе к делу, HTML. Его цель — разметка гипертекстовых документов. Ну и что, сильно типичное современное web-приложение на текстовый документ похоже? ;-)

bodqhrohro_promo ()
Ответ на: комментарий от DRVTiny

а ошмёткам дерьма HTML и CSS всё ещё поклоняются как богам

Дерьмо - это проприетарные графические тулкиты, которые разработчики от корысти крепко привязывают к одной ОС

Дерьмо - это открытые графические тулкиты, которые разработчики от недалекого ума крепко привязывают к одному ЯП.

Дерьмо - это тулкиты, ограниченные областью применения (десктоп или тач) и недостаточно гибкие для того и другого одновременно.

Дерьмо - это люди, критикующие единственный открытый кроссплатформенный, независимый от языка инструмент для построения UI, и не предлагаюшие ничего взамен

makoven ★★★★★ ()
Последнее исправление: makoven (всего исправлений: 2)
Ответ на: комментарий от bodqhrohro_promo

Есть биндинги почти к чему угодно

Я не спорю что Qt хорош. Но где RFC, по которым любой желающий сможет реализовать Qt, причем на любом языке? Глупо как-то сравнивать либу и стандарт. Я знаю про QML. Но планировался ли он как язык разметки, независимый от конкретной реализации на C++?

к тачу готово

Будет готово, когда возможности стилизации QML приблизятся хотя бы к CSS1

makoven ★★★★★ ()
Ответ на: комментарий от makoven

Дерьмо - это люди, критикующие единственный открытый кроссплатформенный, независимый от языка инструмент для построения UI, и не предлагаюшие ничего взамен

Святой непогрешимый HTML? Который не умеет в лэйаут даже на уровне древнего Tk?

anonymous ()
Ответ на: комментарий от anonymous

html умеет в лейауты, более-менее, но макакам какой-то дядя сказал, что html - это типа документ, хоть он и почему-то называется markup language, а типа вью надо делать на css, а вот css - это уже дерьмище которое не умеет в лейауты вообще никак.

в общем ситуация сложная, ждём html 6, надеемся, что в этот раз он будет без css.

anonymous ()
Ответ на: комментарий от bodqhrohro_promo

Qt. Работает даже на мобильниках, ещё и моднявые интерфейсы на QML рисовать позволяет.

Какие браузеры его поддерживают? Qt не является альтернативой html. В первую очередь, потому что нативный. Во-вторую, потому что очень часто (раз в несколько лет) ломают обратную совместимость.

Или ты про поделки для эмуляции qml на js?

За Wireless Village тоже «плотненько взялись». Ну и где он?

И кто же за него взялся?

Ivan_qrt ★★★ ()
Ответ на: комментарий от drfaust

Больше. БОЛЬШЕ грязи в «системный» язык.

Ребята просто обнаружили, что в llvm есть такой бэкэнд, и путем нехитрой манипуляции сделали для фанатов праздник и видимость масштабной проделанной работы.

anonymous ()
Ответ на: комментарий от anonymous

а вот css - это уже дерьмище которое не умеет в лейауты вообще никак

Имелся в виду HTML+CSS, конечно же, без CSS оно вообще никакое.

в общем ситуация сложная, ждём html 6, надеемся, что в этот раз он будет без css

Раньше постройки марсианской базы ждать не стоит.

anonymous ()
Ответ на: комментарий от anonymous

html умеет в лейауты

Не умеет. Это пародия, а не лейауты. Только с флексбоксами худо-бедно появилось что-то вменяемое. Но флексбоксы к HTML прямого отношения не имеют.

макакам какой-то дядя сказал, что html - это типа документ

Макаки как раз не в курсе.

хоть он и почему-то называется markup language

Мракдаун тоже, и чё? Есть приложения на мракдауне? Кстати, мысль, надо сделать на основе мракдауна эзотерический ЯП с поддержкой гуйцов и траллить им мракдаунофагов.

надеемся, что в этот раз он будет без css

Надейся дальше. Скорее CSS in JS в стандарты завезут.

bodqhrohro_promo ()
Ответ на: комментарий от Ivan_qrt

WebAssembly - для быстрых вычислений

Без взаимодействия с dom, браузерных событий и т.д. область применения весьма ограничивается.

Да, и тебе её обозначили. С WebAssembly можно будет строить ботнеты для майнинга криптовалюты на компах доверчивых домохозяек так, чтобы они не сильно тормозили. Таково великое гуманистическое предназначение этой технологии.

Virtuos86 ★★★★★ ()
Ответ на: комментарий от anonymous

Раньше постройки марсианской базы ждать не стоит.

мне кажется, что всё идёт к тому, что ui в вебе будут делать на webgl работающем поверх webassembly. было бы круто, на самом деле. хром уже (почти?) всё рендерит на гпу, осталось придумать нормальный ui и заменить эту вонючую кучу добра под названием css.

@bodqhrohro_promo

Надейся дальше. Скорее CSS in JS в стандарты завезут.

я глубоко сочуствую всем кто занимается разработкой под современный веб. наши мысли с вами пацаны, держитесь. а пока вы страдаете, мы лучше вордпрессом попользуемся. пхп, ммм, скриптуемый html, ммм, становится на хостинг за три копейки, ммм, работает как в сказке, ммм, так хорошо.

anonymous ()
Ответ на: комментарий от bodqhrohro_promo

Не умеет. Это пародия, а не лейауты. Только с флексбоксами худо-бедно появилось что-то вменяемое. Но флексбоксы к HTML прямого отношения не имеют.

Да что черт возьми ты такое несешь

makoven ★★★★★ ()
Ответ на: комментарий от anonymous

на самом деле. хром уже (почти?) всё рендерит на гпу, осталось придумать нормальный ui

Гугл уже придумал нормальный ui. Встроенный в android framework. Но не удосужился сделать из него независимый стандарт разметки.

Добро пожаловать в новую эру разработки, где каждая компания ***чит как хочет исключительно в угоду себе. Времена ISO, ANSI прошли. Еще лет 50 будете жрать SQL и HTML из прошлого тысячелетия. Ну или можно примкнуть к какому-нибудь хозяину и обмазываться его огороженными проприетарными дарами

makoven ★★★★★ ()
Последнее исправление: makoven (всего исправлений: 4)
Ответ на: комментарий от Ivan_qrt

Офтоп: Я сейчас вбил в яндекс «webassembly в firefox» и получил справа:

Возможно, вы искали

Малая панда

Млекопитающее из семейства пандовых отряда хищных, которое, тем не менее, питается преимущественно растительностью; размером немного крупнее кошки.

На что, чёрт возьми, они намекают?

hobbit ★★★★★ ()
Ответ на: комментарий от Ivan_qrt

Qt не является альтернативой html. В первую очередь, потому что нативный. Во-вторую, потому что очень часто (раз в несколько лет) ломают обратную совместимость.

Так, для справки, последний раз обратная совместимость в Qt была кардинально сломана в 2005 году, с выходом Qt 4.0. Всё, что было после, обычно решается несколькими кусочками с условной компиляцией. Хотя да, для веба условная компиляция неприемлема.

(Я не спорю с твоим главным тезисом, в целом он верен.)

hobbit ★★★★★ ()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от anonymous

мне кажется, что всё идёт к тому, что ui в вебе будут делать на webgl работающем поверх webassembly

Not gonna happen. С точки зрения избавления от монополии браузеров - это круто, их станет проще реализовывать. Но по усилиям для конечного разработчика - не пройдёт, ящитаю. Если только популярные проприетарные сервисы возведут это в тренд, преследуя свои корыстные мотивы. Он они уже DRM протолкнули, зачем им его с помощью Webassembly эмулировать.

RedJohn ()
Ответ на: комментарий от Virtuos86

С WebAssembly можно будет строить ботнеты для майнинга криптовалюты

Ну в арбузере будет же кнопка «отключить апплетыwebasm». Или... не будет? Тогда пришло таки время обживать links.

anonymous ()
Ответ на: комментарий от anonymous

пхп, ммм, скриптуемый html, ммм, становится на хостинг за три копейки, ммм, работает как в сказке, ммм, так хорошо

Я вот тоже иногда думаю, что современный веб - это МММ, и однажды он лопнет, и снова будет XHTML и CGI на C, ммм...

anonymous ()
Ответ на: комментарий от anonymous

Святой непогрешимый HTML? Который не умеет в лэйаут даже на уровне древнего Tk?

Не пойму вы серьезно или прикалываетесь? Нигде в гуйне нет таких удобных таблиц как в html, нигде! Везде дрочь вприсядку, если нужен лейаут чуть сложнее коробки. Если религия запрещает верстать таблицами, это ваши проблемы. Даже и без таблиц html/css смотрятся удобнее, чем дубовые тулкиты с императивными портянками родом из 80-х.

anonymous ()
Ответ на: комментарий от anonymous

С WebAssembly можно будет строить ботнеты для майнинга криптовалюты

Ну в арбузере будет же кнопка «отключить апплетыwebasm».

Будет, в настройках. В которые домохозяйки не заходят, потому что слишком сложно.

Virtuos86 ★★★★★ ()

Не понял, тоесть теперь не нужно компилять шланг при этом, чтобы он отваливался на линковке с ООМ даже если у тебя со свопом 12 ГБ ОЗУ?

vertexua ★★☆☆☆ ()