LINUX.ORG.RU

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

 ,


3

10

Соответствующий запрос о слиянии был принят в основную ветку 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.

>>> Источник



Проверено: Shaman007 ()
Последнее исправление: Shaman007 (всего исправлений: 1)

Раст же llvm юзает, не? Там wasm давно есть

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

Судя по последним тенденциям (wayland, mir), новый веб будет предоставлять дизайнеру буфер, который тот будет волен заполнить любыми пикселями любым удобным ему способом

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

Какие для этого предпосылки? Делать так уже можно, ведь. Canvas API + WebAssembly (Rust, C/C++) и в путь. Но отчего-то никто не спешит.

Кроме того, как в этом случае решить проблему поисковых ботов / незрячих пользователей?

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

Не нужны. Всё-то вам лишь бы программы в программах запускать.

Убогие GUI-приложения внутри полноценных GUI-приложений, дико жрущих CPU и память как не в себя от того, что им приходится быть и швецом, и жнецом, и на дуде игрецом.

Концепция откровенно идиотская: почему приложение должно быть удобнее запускать не кликом по иконке, а внутри другого приложения - совершением мистических пассов руками (привет, несортированные закладки!). А главное - результат запуска: отсутствие даже намёка на единый стиль «приложений», каждый раз пользователь вынужден адаптироваться к тонкому «мировосприятию» разработчиков, которые «вот так круто шмагли», скорость работы/отзывчивость ниже плинтуса, реальные интерактивные возможности - ещё хуже (хотя бы правый клик мыши обрабатывает в лучшем случае 1% уёб-приложений).

Ну а насчёт вендор-лока: стоит вспомнить, сколько в реальности работающих браузерных движков и сколько производителей этих движков? Ведь HTML, CSS и JS как стандарты - это просто набор буоквок, не более чем текст, который в общем-то не лучше и не хуже «Войны и мира» (может быть, чуть подлиннее только). А сколько работающих корректно реализаций «интерпретаторов» разметки, стилей и языка, описываемых этими стандартами? Что, целых 3?! А сколько кроссплатформенных GUI-тулкитов? Причём тулкиты - это не текст, тулкиты предоставляют реальную функциональность для всех, а не только для разработчиков браузерных движков - здесь и сейчас. В конечном итоге сами браузеры с 1-м из 3-х движков внутри тоже пишутся на тулкитах. Интересно бы посмотреть на браузер, написанный HTML+CSS+JS'ом...

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

Но отчего-то никто не спешит.

Это оттого, что кругом одни утята, ретрограды и технолуддиты.

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

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

Сделайте-ка мне две панельки, сверху (тулбар) и снизу (статус), а между ними - скроллируемая область для содержимого. Высота панелек должна автоматически подстраиваться под их содержимое (размер шрифта), и ничего ни на что не должно залезать. Без жабьего скрипа.

ДЕКЛАРАТИВНАЯ портянка на Tk делает это легко.

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

CGI были на всём. cgi-bin/test-cgi из поставки apache так вообще, если пользоваться терминологией нынешней школоты, «портянка на баше». А CGI на perl — компиляция скрипта на каждый запрос (привет mod_perl).

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

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

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

А во-вторых, даже если где-то глубоко запрятанная возможность отключить вебасм и будет, то толку от неё со временем не станет, как нет сейчас толку от возможности отключить жабаскрипт (потому что, если его отключить, то процентов 80-90 сайтов перестают нормально работать).

Поэтому я не устану повторять, что нам нужны в первую очередь не другие браузеры, а другой веб.

Тогда пришло таки время обживать links.

Кстати, упоминая links и lynx, все, почему-то, забывают про w3m.

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

Боты идут лесом в направлении курсов распознавания образов. Проектирование пользовательских интерфейсов для слабовидящих не имеет отношения к методу визуального отображения контента никак от слова совсем.

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

Проектирование пользовательских интерфейсов для слабовидящих не имеет отношения к методу визуального отображения контента никак от слова совсем

Мы не про слабовидящих говорим, а про незрячих. Сейчас для них есть «читалки». Есть гайдлайны про доступность HTML документов. Правильно структурированный HTML документ делает навигацию и получение нужной информации довольно тривиальным делом. Что предлагаешь ты? Дублировать всю информацию в читаемом виде, интегрировать функции «читалки» в каждое приложение, отправлять людей туда же, куда ты уже отправил ботов?

RedJohn
()
Ответ на: комментарий от anonymous
<html>
<head>
	<style>
		html, body {
			margin: 0;
			padding: 0;
			overflow: hidden;
			display: flex;
			flex-direction: column;
			justify-content: space-between;
		}
		header, footer {
			font-size: 50px;
			padding: 5px 20px;
			background: #aaa;
		}
		main {
			flex: 1;
			overflow: auto;
			padding: 5px 20px;
		}
		article { height: 200%; } 
	</style>
</head>
<body>
	<header>toolbar</header>
	<main>
		<article></article>
	</main>
	<header>status bar</header>
</body>
</html>
anonymous
()
Ответ на: комментарий от bodqhrohro_promo

Много чего без нее работает. Значит ли это, что ты пользуешься только такими программами, которые не запускаются внутри другой программы, коей ОС является тоже? И не пользуешься программами, написанными с использование виртуальных машин. И виртуальными машинами для эмуляции архитектуры?

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

ui в вебе будут делать на webgl работающем поверх webassembly

Уже даже есть библиотека от Samsung для этого, DreemGL.

становится на хостинг за три копейки

Жыэсорасты наступают, уже тоже какие-то хоцтинги появляются под ноду.

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

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

То. На голом HTML можно разве что извращаться с таблицами, но таблицы ни хрена не адаптивные.

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

На то, что яндекс для гуманитариев, а не для айтишников.

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

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

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

для веба условная компиляция неприемлема

Ну если юзерагенты не подделывать, то почему же... Широкоиспользуемый Modernizr примерно этим и занимается, но уже на фронте — динамически подключается полифиллы для того, что браузер не умеет.

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

Если только популярные проприетарные сервисы возведут это в тренд

Напомни-ка, какой проприетарный сервис моду на жыквери возвёл в тренд.

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

дубовые тулкиты с императивными портянками родом из 80-х

Это ты про Swing/Qt, например?

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

отсутствие даже намёка на единый стиль «приложений»

Это диктатура приложений — платформа становится вторичной, приложение первичным — имеет одинаковый вид независимо от платформы.

скорость работы/отзывчивость ниже плинтуса

Закон Мура сгладит. Точнее, уже давно сгладил, просто у ЛОРчан зачастую некрожелезо из рационалистических или нищебродских побуждений.

правый клик мыши

Которого на сенсорных девайсах, занимающих большую часть рынка, нету.

Что, целых 3?!

Ещё лет десять назад ситуация с совместимостью была на порядки хуже. И тащемта, четыре — Edge, Gecko, Webkit, Blink.

А сколько кроссплатформенных GUI-тулкитов?

Фичастых немного. Если считать всякие страшные убожества, то тогда и недобраузеры следует считать.

Интересно бы посмотреть на браузер, написанный HTML+CSS+JS'ом...

Пожалуйста — Chromium, Vivaldi. В Firefox это вообще лет 15, только вместо HTML там XUL.

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

как в этом случае решить проблему поисковых ботов

SSR.

незрячих пользователей?

Как и сейчас — API и специальная разметка для скринридеров. С флешем, тащемта, были те же проблемы — поисковики не видят, с незрячими проблема, если разработчик не позаботился, и даже клавиатурная навигация через жопу, если вообще работает.

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

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

Зачем тогда QML, если есть HTML и CSS3 ? Именно изза гибкости их и используют

Каждой сфере свое, html не нужен на десктопе, десктопный софт не нужен в браузере

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

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

Ну так в GTK+/Qt так и сделано. Но вебмакаки не в теме.

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

а другой веб

FGHI уже есть, присоединяйся к разработке, авось и взлетит.

bodqhrohro_promo
() автор топика

Webassembly неасколько я понял это попытка виртуализации в среде браузера, чтоб крутить софт как в virtualbox

Вот только выигрыш в скорости(по слухам) пока не стоит того, чтоб его использовать

Да и современные браузеры очень быстро выполняют js, я еще не встречал задач фронтенда где бы была проблема скорости

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

Линуксоиды вечно себя пупом земли считают. Если Qt ещё худо-бедно распространён, то на GTK+ полтора кроссплатформенных приложения, которые вне никсовых выглядят страшно и имеют кучу косяков. Вообще не конкурент вебу, лучше бы с какой-нибудь жабкой сравнивать, или с .NET/WPF/Cocoa.

bodqhrohro_promo
() автор топика
Ответ на: Qt + WebGL от widgetii

В то время как в GTK+ это давно есть, man broadwayd.

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

Напомни-ка, какой проприетарный сервис моду на жыквери возвёл в тренд.

Обёртка над JS vs. отказ от всего, что даёт браузер (HTML / CSS / JS), за исключением WebGL. Сравни жопу с пальцем ещё.

RedJohn
()
Ответ на: Qt + WebGL от widgetii

Оно укуренное будет. Каждое событие отправляется на бэкенд. Для локального приложения с браузером вместо GUI подойдёт. Остальное - сомнительно.

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

Как и сейчас — API и специальная разметка для скринридеров.

Ну и на кой такое счастье с самостоятельным рисованием WebGL картинки, если разметку всё равно генерировать придётся?

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

Хорошо, вот вам Гуй, написанный на C++, скомпилированный в Wasm + WebGL https://greggman.github.io/doodles/glfw-imgui/out/glfw-imgui.html . HTML, CSS, JS для работы приложения не используются (кроме начального шага инициализации).

Возможно кажется, что ШГ, но изначально создавался для игр и стилями настраивается под себя, см. примеры приложений https://github.com/ocornut/imgui/issues/1269

Остается одна проблема, что виждеты приложения не мимикрируют под стиль, используемый в ОС (опять же, если появится желающие написать стили под все используемые ОС на свете), но зато никаких установок не требуются.

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

У всяких наркоманов типа Eddy_Em и u0atgKIRznY5 — да.

Почему ты так думаешь?

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

У меня работает на Chromium 62 и FireFox 57. Возможно, что не на всех версиях будет работать, так как стандарт бинарников wasm утвердили только недавно.

widgetii
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.