The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

05.03.2017 09:36  Для GCC представлен бэкенд c реализацией WebAssembly

Для развиваемого проектом GNU инструментария (binutils, gcc, glibc) подготовлен рабочий прототип бэкенда с поддержкой новой архитектуры - WebAssembly. Бэкенд позволяет использовать GCC для компиляции исходных текстов на языках C/C++ в промежуточный код WebAssembly для последующего выполнения в web-браузере или JavaScript Shell. В binutils добавлена поддержка генерации модулей в формате объектных файлов WebAssembly и упаковки/обработки блоков WebAssembly в исполняемых файлах в формате ELF.

Реализована поддержка трёх целевых платформ: asmjs (JavaScript с расширениями Asm.js), wasm32 (WebAssembly с 32-разрядной целочисленной арифметикой) и wasm64 (WebAssembly с 64-разрядной арифметикой с плавающей запятой). На начальной стадии разработки бэкенда были использованы некоторые наработки проекта Emscripten (компилятор биткода LLVM в JavaScript), но в текущем виде бэкенд не привязан к Emscripten, и все заимствованные из него компоненты заменены на штатные возможности GCC и glibc. В частности, компиляция осуществляется с использованием штатного фронтэнда GCC, предоставляющего все имеющиеся оптимизации, а также специально подготовленного бэкенда, транслирующего внутренний байткод GCC в промежуточный код WebAssembly.

Утилита "GNU as" может применяться для создания объектного файла в формате ELF, в который при необходимости можно поместить отладочную информацию в формате DWARF. Компоновщик "GNU ld" может быть использован для связывания объектных файлов в исполняемый ELF-файл, который при помощи утилиты wasmify-wasm32 может быть преобразован в формат модуля WebAssembly, пригодного для загрузки в браузере.

Напомним, что по своим задачам WebAssembly во многом напоминает PNaCl (Portable Native Client) и Asm.js. Основное отличие от Asm.js состоит в том, что WebAssembly является бинарным форматом, не завязанным на JavaScript и позволяющим выполнять в браузере низкоуровневый промежуточный код. В отличие от PNaCl, промежуточный код WASM не является машинным кодом и не изолирован в отдельной виртуальной машине, а выполняется с похожим на JavaScript уровнем изоляции. Среди основных задач WebAssembly выделяется обеспечение переносимости между браузерами, предсказуемость поведения и идентичности выполнения кода на разных платформах. Использование WebAssembly также позволит существенно сократить размер приложений, благодаря компактному промежуточному коду, и увеличить скорость декодирования.

  1. Главная ссылка к новости (https://sourceware.org/ml/binu...)
  2. OpenNews: Технология WebAssembly признана готовой для включения в браузерах по умолчанию
  3. OpenNews: Chrome, Firefox и Edge перешли на новый этап тестирования технологии WebAssembly
  4. OpenNews: В Firefox, Chromium и Edge добавлена экспериментальная поддержка WebAssembly
  5. OpenNews: Анонсирован WebAssembly, обеспечивающий запуск скомпилированного кода в браузерах
  6. OpenNews: Основанные на GCC проекты JIT-компилятора и расширения, использующего GPU для вычислений
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: gcc, webassembly
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, mma, 09:47, 05/03/2017 [ответить] [смотреть все]
  • +36 +/
    WASM звучит ностальгически)
     
  • 1.2, Sabakwaka, 09:49, 05/03/2017 [ответить] [смотреть все]
  • +/
    В Хроме-то WebAssembly от Asm.js по скорости отстаёт.
     
     
  • 2.24, Crazy Alex, 14:49, 05/03/2017 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    Насколько? И как насчёт скорости загрузки?
     
     
  • 3.58, Sabakwaka, 21:15, 05/03/2017 [^] [ответить] [смотреть все]
  • +/
    Субъективно 8212 весь геймплей медленнее процентов на 30-40 Зайдите в демки ... весь текст скрыт [показать]
     
  • 1.3, Аноним, 10:22, 05/03/2017 [ответить] [смотреть все]  
  • +/
    Поясните, теперь есть возможность собрать QML приложение?
     
     
  • 2.5, Аноним, 11:05, 05/03/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Она и раньше была, Qt и QML уже работают в связке с Emscripten, другое дело, что... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.13, Аноним, 11:48, 05/03/2017 [^] [ответить] [смотреть все]  
  • +/
    Интересно средствами GCC, а не Emscripten.
     
  • 3.72, Аноним, 09:44, 06/03/2017 [^] [ответить] [смотреть все]  
  • +/
    Именно, ожидаю нативной работы, уж очень ненавистен мне html, поскорее бы...
     
     
  • 4.81, Аноним, 14:34, 06/03/2017 [^] [ответить] [смотреть все]  
  • +/
    Взгляните на Qt for Native Client https www opennet ru opennews art shtml num ... весь текст скрыт [показать]
     
  • 1.4, Аноним, 10:59, 05/03/2017 [ответить] [смотреть все]  
  • +/
    А в сокеты и треды оно умеет?
     
     
  • 2.9, Джо, 11:37, 05/03/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Сокеты - нет только то API что доступно JavaScript , поддержка тредов для javas... весь текст скрыт [показать] [показать ветку]
     
  • 2.11, Аноним, 11:43, 05/03/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Если оно умеет в сокеты, тогда придётся браузер держать в отдельной зафайерволен... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.18, Аноним, 12:31, 05/03/2017 [^] [ответить] [смотреть все]  
  • +3 +/
    При чём тут сокеты? Сокет это просто программная абстракция.

    К.О.

     
     
  • 4.27, Аноним, 15:27, 05/03/2017 [^] [ответить] [смотреть все]  
  • –4 +/
    webgl тоже программная абстракция, к вопросу оно умеет webgl ты тоже придерешь... весь текст скрыт [показать]
     
     
  • 5.33, Crazy Alex, 16:38, 05/03/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    WebGL - это интферфейс вполне себе к железу, если ты не знал
     
  • 5.89, Аноним, 09:12, 12/03/2017 [^] [ответить] [смотреть все]  
  • +/
    Оно вполне может не уметь webgl. Это же для c++ интерфейс.
     
  • 4.46, Аноним, 18:08, 05/03/2017 [^] [ответить] [смотреть все]  
  • +/
    мб он про WebSockets на которые с http0 9 1 0 1 1 2 0 все никак не мигрируют пол... весь текст скрыт [показать]
     
     
  • 5.75, Аноним, 11:12, 06/03/2017 [^] [ответить] [смотреть все]  
  • +/
    Я имел ввиду BSD Socket Т е загрузится вместе со страничкой какая-нибудь хрень... весь текст скрыт [показать]
     
     
  • 6.83, Crazy Alex, 14:42, 06/03/2017 [^] [ответить] [смотреть все]  
  • +3 +/
    то, что сейчас она может это делать поллингом или последние лет семь через веб... весь текст скрыт [показать]
     
  • 3.41, Аноним, 17:45, 05/03/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Ты не поверишь, что умеют современные ОСи W браузеры ... весь текст скрыт [показать]
     
  • 2.49, Аноним, 18:24, 05/03/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    > А в сокеты и треды оно умеет?

    Web сокеты и Web треды :-)

     
     
  • 3.90, Аноним, 14:41, 12/03/2017 [^] [ответить] [смотреть все]  
  • +/
    Компилируя Web компилятором по Web браузер, а пользоваться можно только Web поль... весь текст скрыт [показать]
     
  • 2.71, Аноним, 09:36, 06/03/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    это и javascript умеет.
     
  • 1.6, Аноним, 11:22, 05/03/2017 [ответить] [смотреть все]  
  • +1 +/
    После добавления DOM API и других в WASM можно будет, допустим, переписать React... весь текст скрыт [показать]
     
     
  • 2.8, Аноним, 11:32, 05/03/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Здравая мысль.
     
  • 2.12, Аноним, 11:46, 05/03/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +12 +/
    А зачем тогда вообще JS, если можно всё на C++ ?
     
     
  • 3.15, Джо, 11:56, 05/03/2017 [^] [ответить] [смотреть все]  
  • +26 +/
    Будут тогда беспорядки во многих городах из-за восстаний безработных JavaScript разработчиков.
     
  • 3.16, Аноним, 11:59, 05/03/2017 [^] [ответить] [смотреть все]  
  • +4 +/
    А зачем вообще другие языки, если всё можно на си++?
     
     
  • 4.26, Аноним, 15:25, 05/03/2017 [^] [ответить] [смотреть все]  
  • +4 +/
    Да бездельники напридумывали языков, вместо того чтобы работать
     
     
  • 5.91, Аноним, 14:43, 12/03/2017 [^] [ответить] [смотреть все]  
  • +/
    Ну да лучше что бы они на JavaScript понаписали уйму сайтов продажи часов... весь текст скрыт [показать]
     
  • 4.73, Аноним, 09:50, 06/03/2017 [^] [ответить] [смотреть все]  
  • +/
    Прокрастинация Когда человек делает всё, что угодно, лишь бы не писать на с , ... весь текст скрыт [показать]
     
  • 3.21, IB, 13:14, 05/03/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    На Хаскеле же
     
  • 3.34, Crazy Alex, 16:40, 05/03/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Потому что писать на плюсах вместо JS - это дорого и долго для простых вебстран... весь текст скрыт [показать]
     
     
  • 4.47, Аноним, 18:13, 05/03/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    это дорого только в плане первичных вложений, особенно стоимость Найма Поиска ... весь текст скрыт [показать]
     
     
  • 5.59, Аноним, 21:16, 05/03/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    То есть вы правда считаете, что умеете считать деньги лучше всех этих корпораций... весь текст скрыт [показать]
     
     
  • 6.64, НяшМяш, 22:04, 05/03/2017 [^] [ответить] [смотреть все]  
  • +/
    Корпорации поэтому и делают деньги, потому что на разработку тратят три копейки,... весь текст скрыт [показать]
     
     
  • 7.92, Аноним, 14:50, 12/03/2017 [^] [ответить] [смотреть все]  
  • +/
    А что Вам не нрвиться в этих языках Воспринимайте их как расширение для C Пр... весь текст скрыт [показать]
     
  • 5.67, Crazy Alex, 00:41, 06/03/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Я даже представить не могу, в каких случаях такая стрёмная архитектура может себ... весь текст скрыт [показать]
     
  • 5.69, Илья, 03:54, 06/03/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Ваша идея кошмарна.
     
  • 4.68, Наркоман, 02:22, 06/03/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    >писать на плюсах вместо JS - это дорого и долго

    пральна, надо на питоне!

     
     
  • 5.93, Аноним, 14:51, 12/03/2017 [^] [ответить] [смотреть все]  
  • +/
    как там в питоне то синхронизация и гил уже разрешился... весь текст скрыт [показать]
     
  • 3.65, Отражение луны, 23:53, 05/03/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Потому что JS лучше CPP
     
  • 2.17, Аноним, 12:06, 05/03/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Да, нашёл ответ. http://webassembly.org/getting-started/js-api/
     
  • 2.77, Аноним, 12:14, 06/03/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    можно, только в этом нет никакого смысла Бутылочное горлышко в реактах с ангуля... весь текст скрыт [показать] [показать ветку]
     
  • 2.82, Аноним, 14:38, 06/03/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Можно Вообще, это уникальная возможность получить единый апи для любых библиоте... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.94, Аноним, 14:56, 12/03/2017 [^] [ответить] [смотреть все]  
  • +/
    Как показывает опыт последних лет 20 как-то все выходит боком Все не совместимо... весь текст скрыт [показать]
     
  • 1.14, Аноним, 11:51, 05/03/2017 [ответить] [смотреть все]  
  • +/
    А фронтэнд для Rust в GCC будет?
     
     
  • 2.42, нонон, 17:49, 05/03/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    В расте уже есть таргет wasm32-unknown-emscripten
     
  • 1.20, IB, 13:13, 05/03/2017 [ответить] [смотреть все]  
  • +/
    Годнота.
    Когда уж JS отомре
     
     
  • 2.22, Аноним, 13:55, 05/03/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Даешь больше дыр в браузер!
     
     
  • 3.48, Аноиним, 18:15, 05/03/2017 [^] [ответить] [смотреть все]  
  • –3 +/
    не, как раз WebAssembly - снижает эксплоитируемость из интернета и ощутимо на... весь текст скрыт [показать]
     
     
  • 4.79, Lain_13, 13:31, 06/03/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    Можно подробнее почему WASM безопаснее JS Ну кроме того, что у него сейчас нет ... весь текст скрыт [показать]
     
  • 3.84, Аноним, 15:10, 06/03/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Из Web assembly доступны все те же апи что и js, не больше, не меньше.
     
  • 1.25, Аноним, 15:24, 05/03/2017 [ответить] [смотреть все]  
  • –1 +/
    Так теперь emscripten не нужен, я правильно понял?
     
     
  • 2.95, Аноним, 14:58, 12/03/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Будет нужен как минимум еще лет 10 для всяких там майкросовтов я думаю... весь текст скрыт [показать] [показать ветку]
     
  • 1.28, Аноним, 16:12, 05/03/2017 [ответить] [смотреть все]  
  • +/
    Чё-то я не понял, а это как объяснить Где тут промежуточный код WebAssembly ... весь текст скрыт [показать]
     
     
  • 2.35, Crazy Alex, 16:43, 05/03/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –2 +/
    Это вообще сбоку. Перевод - "мы умеем генерировать не только wasm, но и asm.js"
     
     
  • 3.36, Аноним, 17:02, 05/03/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    Правильный перевод - Исходники на gihub включают поддержку использования asm js... весь текст скрыт [показать]
     
     
  • 4.37, Crazy Alex, 17:09, 05/03/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    А голову включить Речь о том, что можно используя asmjs-virtual-asmjs-gcc ген... весь текст скрыт [показать]
     
     
  • 5.38, Аноним, 17:12, 05/03/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Здесь телепатов нет, написано чётко и ясно, что это бекэнд только для asm js То... весь текст скрыт [показать]
     
     
  • 6.55, Аноним, 19:29, 05/03/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Четко и ясно тут только, что включена поддержка использования asm js вместо wasm... весь текст скрыт [показать]
     
  • 6.62, Ordu, 21:24, 05/03/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    Если ты не можешь в телепатию, то читай тексты целиком, а не случайно выдранные ... весь текст скрыт [показать]
     
  • 4.43, Аноним, 17:52, 05/03/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    Рукалицо Разрешаю приступать ... весь текст скрыт [показать]
     
     
  • 5.45, Аноним, 18:03, 05/03/2017 [^] [ответить] [смотреть все]  
  • –4 +/
    Слова rudimentary и simulating сам переведёшь или ссылку на гугол транслейт дать... весь текст скрыт [показать]
     
     
  • 6.51, Crazy Alex, 18:55, 05/03/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    Ну ты хоть разок как-то вникни в вопрос прежде чем постить Или на ключевые сло... весь текст скрыт [показать]
     
  • 1.56, Аноним, 19:39, 05/03/2017 [ответить] [смотреть все]  
  • +/
    coreutils уже можно им собрать?
     
  • 1.57, Аноним, 20:43, 05/03/2017 [ответить] [смотреть все]  
  • –1 +/
    Это что, теперь можно сайт написать на С С и бинарником послать в браузер Ес... весь текст скрыт [показать]
     
     
  • 2.60, Аноним, 21:21, 05/03/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Не сильно бинарнее , чем обфусцированный яваскрипт, в плане того, что вы сможет... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.70, Аноним, 04:35, 06/03/2017 [^] [ответить] [смотреть все]  
  • +/
    Декомпилируется он на самом деле паршиво, впрочем как и asm js код Информации о... весь текст скрыт [показать]
     
  • 2.66, Crazy Alex, 00:35, 06/03/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Уже года три как можно в виде asm js - В WebAssembly просто его косяки реализа... весь текст скрыт [показать] [показать ветку]
     
  • 1.61, Michael Shigorin, 21:22, 05/03/2017 [ответить] [смотреть все]  
  • –1 +/
    Это вместо gcj?
     
  • 1.74, Kodir, 11:04, 06/03/2017 [ответить] [смотреть все]  
  • –3 +/
    Очередной маразм а-ля java applets, только теперь не в прямоугольничке Поигра... весь текст скрыт [показать]
     
     
  • 2.80, Аноним, 14:17, 06/03/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Выкинуть будет очень не просто Обычно от стандартов отказываются, когда есть лу... весь текст скрыт [показать] [показать ветку]
     
  • 2.85, Аноним, 15:19, 06/03/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Нет, это то, что надо было сделать с самого начала, встроить в браузеры виртуаль... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.96, Аноним, 15:03, 12/03/2017 [^] [ответить] [смотреть все]  
  • +/
    Итак, изначально мы берем одного разработчика и он фигачит и на HTML и JavaScrip... весь текст скрыт [показать]
     
     
  • 4.97, Аноним, 15:07, 12/03/2017 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален Дизайн architecture... весь текст скрыт [показать]
     
  • 1.88, Аноним, 18:53, 10/03/2017 [ответить] [смотреть все]  
  • +/
    Я не понял, мода на javascript прошла Возвращаемся в нативному c Колесо сдел... весь текст скрыт [показать]
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor