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)
Ответ на: комментарий от widgetii

Завёл. Не хочу я такого будущего. Vim extension не работает, что естественно. Клавиатурой ничего сделать нельзя совсем, только тачпадом / мышкой елозить. Текст скопировать нельзя. Для людей с visual impairments недоступно. А у эпилептиков будет припадок. В общем, я поддерживаю идею отказа от html / css, в качестве lingua franca для разметки, как поддерживаю WebAssembly в случае с JS. Однако, нужно что-то более достойное родить, чем просто сказать «вот вам WebGL, творите».

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

По сути что мы имеем сейчас, это Minimum Viable Product (зато сразу у всех пользователей во всех браузерах без необходимости ждать какое-то светлое будущее), более того, виртуальная машина wasm сейчас работает с браузером через некую прослойку, которая зовется JavaScript https://habrastorage.org/webt/du/e7/z_/due7z_shugro9z4fr0a-viomoq0.png

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

После первого блина будет вестись работать над фичами http://webassembly.org/docs/future-features/ , где мне кажется самой главной является поддержка потоков.

Опять же, никто не подумал о ключевой возможности - получить информацию и оперировать L&F хост платформы, возможно, что со временем появится тулкит типа Qt (или Qt адаптирует себя под wasm)

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

Эта цель для запуска приложений в браузерах или что то другое?

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

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

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

Отнюдь. Это менее костыльная замена для компиляции кода на языках вроде С или С++ в JS, которую уже давно используют для запихивания в браузер легаси-кода и вещей которые там просто трудно реализовать со стороны старницы (поддержку альтернативных форматов изображений, например)

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

А был ли CGI на C?

Если тебе захочется сделать свой микровесервис в стиле AWS Lambda с б/ш, то CGI и сегодня вполне адекватный вариант, и чем больше времени CPU надо для выполнения запроса, тем более адекватный. Можно использовать любой быстрый язык вместо С. Можно вообще любой язык использовать, интерфейс взаимодействия проги с сервером всегда один и тот же.

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

Каждое событие отправляется на бэкенд

Ну как в Opera Mini.

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

виртуальная машина wasm сейчас работает с браузером через некую прослойку, которая зовется JavaScript

Параша этот ваш Хабр. Нет никакой прослойки. WebAssembly проектировался таким образом, чтобы stack machine под него можно было запилить на базе уже существующих JS движков. Тем более, что после asm.js нужные оптимизации имелись. Но никакой JS при этом не дёргается. Возможности для дальнейшего повышения производительности, скорее всего, есть. Но «JS прослойка» - это фактически неверно.

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

Для fastcgi надо делать приложение сервером, а с простым CGI приложение может быть тупой числодробилкой, возвращающей результат в конце (в виде json, например, и не знать ничего о веб-говне)

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

1. Против АРМов ничего не имею против, более того, они сейчас популярны почти так же как и i86/64
2. Софистикой (в данном случае пидёт подмена контекста) пользоваться не советую - это дело словоблудов.
3. Т.к. в моём посте не было к-либо упоминаний о к-либо архитектуре, то речь велась в контексте новости, а именно про WebAssembly

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

Это понятно.
Непонятно силами самого компилера или llvm, через который раст и работает?

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

Вот теперь понятнее.
Я llvm практически не знаю, т.к. он пока мне не нужен, потому и не ведал что это всё силами не раст-разрабов(на них мелочь), а всё силами сообщества.

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

Нехилая такая обёрточка на сотню килобайт, во времена актуальности GPRS и диалапа.

jQuery 1.x:

gzip: 31kb; prod: 90.9kb

Initial release:

August 26, 2006; 11 years ago

Не уверен, что это был такой феноменально большой размер тогда. Нужно уточнить, у кого был DialUp и заботился ли кто-то о таких пользователях. Но даже, если предположить, что проблемы других прошли мимо меня и внедрение jQuery было действительно очень амбициозным шагом... (1) Что давал jQuery? (2) И что даст переход на WebGL Canvas приложения?

(1) Универсальное API для всех браузеров -> упрощение работы разработчика. Для пользователя - избавление от «best works with...»?

(2) Упрощение браузера, но это мало кому нужно (сами браузеростроители против, потому как это выведет их из бизнеса). Усложнение разработки. Ухудшение опыта пользователя в общем случае (см. пример выше). Нужно будет хорошо поработать, чтобы стать конкурентоспособными на фоне обычных html/css web приложений.

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

Нехилая такая обёрточка

Это оберточка совместимости в первую очередь. Т.е. мастхэв для своего времени. Сейчас конечно это ненужно, и макаки стрйными рядами перешли на ванильку ЖИРНЫЕ тормозные бессмысленные фреймворки. Так что жыкверя смотрится нынче совсем невинно. Прикольно, что макаки так на нее запали, что часто умудряются впихнуть вместе с фреймворком. Лол. Ну что взять с диких абизян.

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

Никакой подмены контекста нету.
Что Arm64, что WebAssembly это целевая архитектура для компилятора.
Даже более того, в wasm32 вполне себе может компилировать gcc.
Не слышно что-то возмущёных воплей.
Так что твой диагноз ясен - очередной хейтер.

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

PS. Извините, если какие-то нерабочие говны пропустил, у меня очень мало времени.

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

в особенности, если в wasm gc добавят

там вся суть в том нет GC (от браузера) , который бы паузил приложение раз в какое-то время.

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

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

Дерьмо - это то, что у makoven между ушами!

Ну давай совмести мне самолёт, но чтоб крутил пилотаж как наши сушки и подводную лодку, но чтоб ныряла на 3000 м как наш Лошарик. А то по-отдельности - недостаточно гибкие .... :-\

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

Да-да, конечно. Альтернативу предложил бы хоть для приличия.

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

ДЕКЛАРАТИВНАЯ портянка на Tk

На декларативную она похожа только в тикле. В любом случае, кому ты впаришь интерфейс на Tk, любопытно посмотреть. Суровым геофизикам на антарктической станции? Еще варианты?

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

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

Извращайся на одетом. Заметь, даже голый html дает недурные инструменты, а результат будет юзабелен на любом тапке, даже в ядерной консоли с koi-8. Тулкиты-шмулкиты близко не лежали в плане универсальности.

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

Возможность взаимодействия с DOM и прочим в Rust ЕСТЬ. Соответствующие вызовы делаются через макрос asm! так, как будто JavaScript является ассемблером. Библиотеки уже пишутся: https://github.com/koute/stdweb

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

Это у тебя пук в воду.
Позиционируетесь как «системные» - а железо через пень колдоду поддерживаете. Тот же i86 в минималке(до i386) никак. У вас же не «системный язык», а так, интерпретатор в llvm.

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

Позиционируетесь как «системные» - а железо через пень колдоду поддерживаете. Тот же i86 в минималке(до i386) никак.

Я тебе больше скажу - даже i386 не поддерживатся. Потому что ты, лично ты, не написал поддержку.

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

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

Qt по удобству до HTML с*ать и с*ать

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

Что удобного в наборе буковок после угловых скобочек? Это маразм за гранью добра и зла - считать, что «<div class='hz ch to'>» - это удобно. Ну напишите его 20 раз на бумажке - может, жизнь сразу образуется.

Ещё раз повторю: не может быть тупо документ, описывающий какие крючочки куда ставить - удобным. Удобно конкретное применение этого стандарта, интерпретация HTML браузерными движками.

И вот тут да, мне лично куда удобнее спроектировать нормальный графический виджет в интерактивном конструкторе форм, а не заниматься онанизмом с написанием разметки, которая уже с начала 2000х не имеет никакой реальной семантической нагрузки. Что делит div? Куда и что рвёт br? Давно ли списки, обозначаемые странными буковами ul - использовались как списки, а не меню, разделы, кнопочки или ещё хрен знает что. Семантика HTML со времён молодого Путина не соответствует его реальному применению, html превратился в какие-то заклинания, лишь отягащаемые CSS'ом.

Если семантическая разметка write-only, если прочитав чужую разметку вы не можете сходу понять, что она делает точно так же, как если бы читали шестнадцатеричные машинные коды в elf32-файле - значит, такая разметка просто унылое говно. HTML - это оно и есть, на все 1500%!

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

Голый или одетый HTML ничего не даёт, всё, абсолютно всё, даёт браузерный движок. И сайты сложнее Hello, world выглядят и ведут себя в elinks и firefox абсолютно по-разному. Мало того, мне было бы очень интересно посмотреть на вашу «жизнь в elinks для всего».

То, что какая-то часть браузерных движков в ответ на один и тот же входной поток крючочков ведут себя одинаково, а у всех хомячков стоят эти браузерные движки - может ролять только в тот момент, когда стоит задача постричь с мохнатых купюры за какие-нибудь нафиг им не нужные «услуги» или за посредничество или за втюхивание быдлорекламы.

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

Кстати, несостоятельность разметки HTML абсолютно полностью доказывается как раз отсутствием современных средств визуального проектирования сайтов. Пока сайты писались на голом HTML+CSS - это ещё было популярно, а сейчас, когда без 2-х костыльных подпорок, JS'а, уже не обойтись, - назовите мне хоть одного фронтендера, который что-либо визуально проектирует? Я таких не знаю, да и обо всяких DreamWeaver'ах сто лет не слышал. А вот GUI-шники как использовали редакторы форм, так и используют, всё у них просто, логично и наглядно. Но да, их приложения нужно устанавливать, а среднестатистическое быдло с этим уже не справляется, деградация человечества на лицо.

Написание HTML-разметки - это как вождение автомобиля вслепую, когда ты сначала должен повернуть, а потом проверить, не вмазался ли во что-нибудь. Если не вмазался - можно продолжать движение. GUI-разработчки проектируют интерфейсы с открытыми глазами - и благодаря этому не только экономят время, но и не занимаются откровенной хиромантией типа того бреда, который приведён здесь чуть выше в качестве примера чудесной разметки, позволяющей аж страницу разбить на три части.

Кстати, об альтернативах: да были они, и нормальные вполне альтернативы: это был загружаемый Java-код, который все невзлюбили только за то, что он работал дико медленно в 2002-м году. Но сейчас-то не 2002-й, мощности другие и сами сайты на порядки тяжелее. Так в чём проблема с теми же Java-апплетами? Марь Ванне нужно Java поставить? Ну так а Flash player она же как-то поставила, разве нет?? Кстати, да, а где же пользователи, страдающие от совершенно ущербной «технологии» flash: ей уже и пользоваться-то неудобно, уже надо чуть ли не гуру быть, чтобы эти танчеги и онлайн-пасьянсы везде работали - а пользователи вот не жалуются, не отказываются от своего любимого Flash'а. А ведь Flash - совсем не про HTML, CSS и JS и даже не про какую-то мощную корпоративную поддержку, на него ведь все забили давно. Как же так? Flash-приложения с порнороликами - это хорошо, а Java - приложения с полезной нагрузкой - это плохо? Realy?

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

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

Как там в 2005 со статичными веб-страницами и ручной разметкой?

Твой виджет нихера не позволит добиться той же гибкости, это раз.

Давно существуют точно такие же WISIWIG редакторы для html/css, это два.

Никто уже давно не пишет разметку сам, всё генерируется скриптами, это три.

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

Пишут для тех платформ которые нужны. Ты бы ещё для pdp-11 затребовал.

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

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

Так закрой уже свой, раз он не нужен.

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

Флеш у него ущербная технология. А хтмл плох потомучто его никто в дримвьювере никто не рисует. Ужас..

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

Давно существуют точно такие же WISIWIG редакторы для html/css, это два.

Какие, например? Перечисли под онтопик.

Никто уже давно не пишет разметку сам, всё генерируется скриптами, это три.

Что ты скриптами там и какими нагенеришь? сетку NxM? Всё, что требует чего-то сложнее примитивной таблицы так ручками и правят. И делают это в совершенно ублюдочном синтаксисе.

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

написать стили под все используемые ОС на свете

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

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

Зашёл, убедился что фальш стоит, всё равно не работает. Заодно в true переставил.

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

Кстати, да, расскажите мне ещё об автоматизированном тестировании веб-фронтендов не на предмет внутренней их программной логики, а на предмет того, что все элементы после всех масштабирования страницы находятся там, где задумано и с точки зрения визуальщины - ведут себя как задумано. Это у фронтэндеров до сих глазками делается?

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

а на предмет того, что все элементы после всех масштабирования страницы находятся там, где задумано

А ты не замарачивайся о столь высоких материях. Делай как серьезные дядьки в дефли. position: asolute; top: 10px; left: 10px; width: 100px; height: 50px. Ну и запрет на масштабирование через meta

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

Семантика HTML я хз зачем нужна, я например вообще не понял, зачем в HTML 5 добавили новые элементы. Наоборот надо по максимуму семантику убирать из HTML и перемещать в CSS. Ну то есть оно и сейчас уже почти так, за редкими исключениями (colspan, rowspan через CSS не делается например). Удобно в целом, такой типа компромисс - для текстов полезно, а для вёрстки легко сбрасывается. И нет никогда вопросов «а, блин, а что можно в этот виджет засунуть - какой кастомный вывод он понимает...» - везде HTML/CSS и всё. Удобно.

Визуальный редактор я последний раз юзал c++builder'овский - ну, было удобно, да. Но ни адаптивности там особой не было, ни возможностей по стилизации HTML'ских. На уровне возможностей VCL (C++Builder'а) вёрстка вообще на голом CSS делается «только в путь». А про визуальное редактирование - да хз, я сейчас даже IDE не юзаю, в текстовом редакторе код пишу - и как-то удобнее... чо там этот конструктор форм.

Не, в том, что HTML - сборище костылей - ты прав. Но просто получается так, что лучше этого сборища костылей пока ничего не придумали =) да и где не костыли-то. Везде костыли, везде чем-то жертвуют в угоду чему-то.

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

такая разметка просто унылое говно. HTML - это оно и есть

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

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