The OpenNET Project / Index page

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

26.09.2017 10:52  Выпуск встраиваемого JavaScript-движка Duktape 2.2.0

Доступен выпуск JavaScript-движка Duktape 2.2.0, ориентированного на встраивание в кодовую базу проектов на языке C/C++. Движок отличается компактным размером, высокой переносимостью и низким потреблением ресурсов. Исходные тексты движка написаны на языке Си и распространяются под лицензией MIT.

Код Duktape занимает около 160 kB и потребляет всего 48kB ОЗУ, а в режиме низкого потребления памяти 26kB ОЗУ. Для интеграции Duktape в код на C/C++ достаточно добавить в проект файлы duktape.c и duktape.h, и использовать Duktape API для вызова функций на JavaScript из кода на C/C++ или наоборот. Для освобождения неиспользуемых объектов из памяти применяется сборщик мусора с финализатором, построенный на основе комбинации алгоритма подсчёта ссылок с алгоритмом пометок (Mark and Sweep).

Обеспечивается полная совместимость со спецификациями Ecmascript 5.1 и частичная поддержка Ecmascript 2015 и 2016 (E6 и E7), в том числе поддержка объекта Proxy для виртуализации свойств, типизированные массивы, ArrayBuffer, Node.js Buffer, Encoding API, объект Symbol и т.п. В состав входит встроенный отладчик, движок для выполнения регулярных выражений и подсистема для поддержки Unicode. Также предоставляются специфичные расширения, такие как поддержка сопрограмм, встроенный фреймворк для журналирования, механизм загрузки модулей на основе CommonJS, система кэширования байткода, позволяющая сохранять и загружать скомпилированные функции.

В новой версии появилась поддержка функций Math.clz32(), Math.imul() и Math.sign() из ES2015, существенно расширена поддержка элементов Object.prototype из стандарта ES2017, добавлены обработчики 'apply' и 'construct' для объекта Proxy, расширен внутренний API, проведена оптимизация производительности RegExp.

  1. Главная ссылка к новости (https://github.com/svaarala/du...)
  2. OpenNews: Microsoft портировал JavaScript-движок ChakraCore для Linux и maсOS
  3. OpenNews: В JavaScript-движок V8 добавлена поддержка WebAssembly
  4. OpenNews: В рамках проекта Runtime.JS развивается ядро ОС на базе JavaScript-движка V8
  5. OpenNews: Компания Oracle намерена выпустить открытый JavaScript-движок на базе виртуальной машины Java
  6. OpenNews: CommonJS -движение за использование JavaScript вне браузера
Лицензия: CC-BY
Тип: Программы
Ключевые слова: duktape, javascript
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, th3m3 (ok), 11:09, 26/09/2017 [ответить] [показать ветку] [···]    [к модератору]
  • –2 +/
    Его можно использовать, как альтернативу Electron?
     
     
  • 2.2, _hide_ (ok), 11:14, 26/09/2017 [^] [ответить]    [к модератору]
  • +1 +/
    А рисовать как?
     
     
  • 3.3, anonimous (?), 11:20, 26/09/2017 [^] [ответить]    [к модератору]
  • +3 +/
    А рисовать вот так https://lexborisov.github.io/myhtml/ и вот так https://github.com/lexborisov/mycss
     
     
  • 4.10, lastmac (?), 14:19, 26/09/2017 [^] [ответить]    [к модератору]
  • +13 +/
    Приятно когда твои проекты вспоминают.
    Как автор myhtml и mycss могу сказать следующее:
    Для рисования этого не достаточно. Есть проект Modest (https://github.com/lexborisov/Modest) вот к нему можно было бы прикрутить этот JSE, но я смотрю в сторону Chakra от MS.
    Более того, даже Modest не достаточно для рисования, он ещё пилится, но, к слову, скоро намечается большой апдейт где всё станет намного краше и лучше. Плюс мы грант получили на разработку браузера Modest, скоро совсем весело пойдет разработка.
     
     
  • 5.17, Аноним (-), 16:09, 26/09/2017 [^] [ответить]    [к модератору]
  • +4 +/
    Может не надо браузер? :((

    Пока так всё хорошо получается...

    Но если уж будете делать, сделайте чтоли кнопку "вкл/откл js нафиг"

     
     
  • 6.18, lastmac (?), 16:43, 26/09/2017 [^] [ответить]    [к модератору]  
  • +6 +/
    Почему не надо?

    Браузер и Браузерный движок разные вещи. Итог разработки будет браузер.
    Modest же является браузерным движком для расчетов, отрисовки и прочего. Он всё так же будет независимый и легко собираемый/встраиваемый. Браузер, скорее всего, так же будет именоваться Modest. Modest Browser and Modest Engine.

    Отключить там можно будет что угодно (если это не влияет на общую работу движка). Но разве существует интернет без JS? Вопрос скорее риторический. Я не уверен, и возможно вы меня поправите, но подавляющему большинству пользователей браузер нужен полноценный, включающий в себя все современный плюшки (js, webgl, websocket and etc.)

    TL;DR
    P.S.:
    Modest Engine разрабатывается модульно. Модули можно удалять, добавлять свои. Можно создавать свои библиотеки на основе отдельных модулей Modest.

    К примеру, myhtml это mycore, myencoding, myport, myhtml взятые из Modest.
    Скачайте исходники Modest и выполните команду "make modules" и вы увидите существующие модули и зависимости между ими.

    К примеру, вы можете удалить из исходников myurl (source/myurl) и проект соберется без этого модуля. А можете удалить все модули кроме mycore,  myport, myurl и он тоже соберется.

    Я не делаю монолитную систему, мне хочется чтобы отдельные браузерные компоненты могли жить своей жизнью. К примеру, тот же myurl крайне полезен и полностью соответствует спецификации. В интернетах днём с огнём не сыщешь обработчика урлов соответствующий спецификации. А тут и готовый код и примеры (https://github.com/lexborisov/Modest/tree/master/examples/myurl).

    Как добавить свой модуль: https://github.com/lexborisov/Modest/wiki/Add-new-module
    Как создать свой порт (для своей ОС): https://github.com/lexborisov/Modest/wiki/Add-new-port


     
     
  • 7.23, trdm (ok), 18:16, 26/09/2017 [^] [ответить]    [к модератору]  
  • +1 +/
    > но подавляющему большинству пользователей браузер нужен полноценный

    самое главное adblock.

     
  • 7.26, Аноним (-), 18:32, 26/09/2017 [^] [ответить]    [к модератору]  
  • +5 +/
    > разве существует интернет без JS?

    Интернет существует даже без веба. ;)

     
  • 7.28, Мать драконов (?), 18:53, 26/09/2017 [^] [ответить]     [к модератору]  
  • –3 +/
    Мне одно интересно Нафига кому-то может прийти в голову делать браузер Вам дел... весь текст скрыт [показать]
     
     
  • 8.29, lastmac (?), 20:59, 26/09/2017 [^] [ответить]    [к модератору]  
  • +6 +/
    > Мне одно интересно. Нафига кому-то может прийти в голову делать браузер?

    Это пришло в голову мне.

    > Вам делать нечего или деньги некуда девать?

    Денег то у нас как раз и нет.

    > Или вы студенты и у вас много свободного времени?
    > Нет более полезных задач для решения?

    Времени у нас свободного тоже нет, всё уходит на написание движка/браузера.
    Браузер пилить крайне увлекательное занятие. Там свод всех технологий. Надо знать очень много, вот прям крайне много. Тут студент вряд ли потянет.

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

    Сейчас всеми открытыми движками, которые идут в ногу со спецификациями, обладают несколько компаний: Google, Apple, Mozilla. Можно смело сказать, что только гиганты.
    Собственно, они захватили рынок и продвигают "своё". Кто-то жаждет собирать информацию о пользователях, кто-то хочет встроить свои рекламо-резки (чужих реклам) и так далее.

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

    Или вот попробуйте встроить вебкит в своё приложение. Или собрать его не на x86/64. Или запустить браузер на телевизоре/интернет вещах. Примеров много.

    Мы же делаем быстрый, энергоэффективный, встраиваемый браузер, собственный движок.

     
  • 7.30, Аноним (-), 23:18, 26/09/2017 [^] [ответить]     [к модератору]  
  • +/
    Волнительно Да будет так И не постигнет судьба оперы Да Опциональная кнопк... весь текст скрыт [показать]
     
  • 5.24, Аноним (-), 18:26, 26/09/2017 [^] [ответить]     [к модератору]  
  • +/
    NetSurf http www netsurf-browser org 8212 тоже легкий браузер на C, даже... весь текст скрыт [показать]
     
     
  • 6.40, Клыкастый (ok), 16:48, 27/09/2017 [^] [ответить]     [к модератору]  
  • +/
    eix netsurf www-client netsurf Доступные версии 3 6 bmp debug ... весь текст скрыт [показать]
     
     
  • 7.41, Andrey Mitrofanov (?), 16:45, 28/09/2017 [^] [ответить]    [к модератору]  
  • +/
    >      Описание:      
    >        a free, open source
    > web browser
    > хм... попробовать что ли

    [U] Лицензия GPLv2= [/U]

    Ещё лет пять подожди. Пока что не совсем пермисиивно.

     
     
  • 8.42, Клыкастый (ok), 17:36, 28/09/2017 [^] [ответить]    [к модератору]  
  • –1 +/
    > Ещё лет пять подожди. Пока что не совсем пермисиивно.

    Зато уже опенсорсно. Ну и да, ты уже выпилил с десктопов и серверов софт с пермиссивными лицензиями? везде GPLv3? и как оно?

     
     
  • 9.43, Andrey Mitrofanov (?), 21:42, 28/09/2017 [^] [ответить]     [к модератору]  
  • +1 +/
    http www opennet ru openforum vsluhforumID3 108152 html 77 Всё http www open... весь текст скрыт [показать]
     
     
  • 10.45, Клыкастый (ok), 12:36, 03/10/2017 [^] [ответить]    [к модератору]  
  • +/
    ну т.е. не выпилил. а как дышал, как дышал.
     
     
  • 11.46, Andrey Mitrofanov (?), 13:08, 03/10/2017 [^] [ответить]     [к модератору]  
  • +/
    Нет Зачем это тебе https ru wikipedia org wiki D0 94 D0 B5 D0 BC D0 B0 D0 B... весь текст скрыт [показать]
     
     
  • 12.47, Клыкастый (ok), 14:57, 03/10/2017 [^] [ответить]     [к модератору]  
  • +/
    Какой странный вопрос BSD лицензию ругаешь ты, а нужно это мне Мне - не нужн... весь текст скрыт [показать]
     
     
  • 13.48, Andrey Mitrofanov (?), 15:05, 03/10/2017 [^] [ответить]     [к модератору]  
  • +/
    Мне Зачем тебе, чтобы я каким-то там был И , кроме того, ты всё опять перепута... весь текст скрыт [показать]
     
     
  • 14.49, Клыкастый (ok), 14:28, 06/10/2017 [^] [ответить]     [к модератору]  
  • –1 +/
    Ну ожидается что собеседник а вменяем б логичен в последователен Но я не нас... весь текст скрыт [показать]
     
  • 5.33, anonimous (?), 06:10, 27/09/2017 [^] [ответить]     [к модератору]  
  • +/
    Оу, как-то пропустил это, когда просматривал ваши репозитории Видел вашу статью... весь текст скрыт [показать]
     
  • 2.5, Аноним (-), 11:57, 26/09/2017 [^] [ответить]    [к модератору]  
  • +/
    В процессе допиливания твой проект разрастется до еще одной ноды/электрона?
     
     
  • 3.7, th3m3 (ok), 12:06, 26/09/2017 [^] [ответить]     [к модератору]  
  • +5 +/
    Electron - это работа через chromium Каждое новое запущенное приложение, это ещ... весь текст скрыт [показать]
     
     
  • 4.8, Atterratio (ok), 12:28, 26/09/2017 [^] [ответить]    [к модератору]  
  • +4 +/
    Вам не кажется что это принципе не очень хорошая идея, и не важно на что тут менять хром?
     
     
  • 5.11, th3m3 (ok), 14:56, 26/09/2017 [^] [ответить]     [к модератору]  
  • +1 +/
    Мне кажется, что очень не хватает чего-то вроде Android Webview в десктоп систем... весь текст скрыт [показать]
     
     
  • 6.19, Аноним (-), 17:18, 26/09/2017 [^] [ответить]    [к модератору]  
  • +3 +/
    Было уже такое. Называлось mshtml.dll и iexplore.exe. Чем закончилось вы помните.
     
     
  • 7.38, Sen (?), 09:45, 27/09/2017 [^] [ответить]    [к модератору]  
  • –2 +/
    эээ, закончилось троллингом оной технологии и саботажа из разряда "смотрите мы можем лучше"... Ну и да не хватило гибкости MS... Но пока Edge радует
     
  • 6.20, Аноним (-), 17:21, 26/09/2017 [^] [ответить]    [к модератору]  
  • +/
    Но так-то ничего не мешает взять GObject Introspection и WebKitGTK.
     
  • 4.13, skoro (?), 15:10, 26/09/2017 [^] [ответить]    [к модератору]  
  • +2 +/
    GNOME gjs ? На нём написаны Documents, Polari... правда документации практически нет.
     
     
  • 5.14, th3m3 (ok), 15:29, 26/09/2017 [^] [ответить]    [к модератору]  
  • +1 +/
    Он же только для Гнома? Тогда не очень подойдёт. Нужно кросс-платформенное решение, хотя бы хоть для GNU/Linux систем, а лучше для всех.
     
     
  • 6.16, skoro (?), 16:05, 26/09/2017 [^] [ответить]    [к модератору]  
  • +/
    Не только для Гнома, для GTK3, у него еще есть привязки к WebKitGTK, примеры смотрел под XFCE. Про Вин/МакОС не знаю, скорее всего - в пролете.
     
  • 4.27, Аноним (-), 18:35, 26/09/2017 [^] [ответить]     [к модератору]  
  • +/
    А как насчет Qt QML или JavaScript-привязок к GTK И неужели писать веб-интерфе... весь текст скрыт [показать]
     
  • 2.32, Аноним (-), 00:00, 27/09/2017 [^] [ответить]    [к модератору]  
  • +/
    можно, только тормозить будет как ie6 - jit-компиляции нет, это интерпретатор.
     
  • 2.35, Антон (??), 08:20, 27/09/2017 [^] [ответить]    [к модератору]  
  • +/
    > Его можно использовать, как альтернативу Electron?

    Напиши обёртку для своего любимого тулкита да используй.

     
  • 1.4, Пиони (?), 11:55, 26/09/2017 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Примеры задач, где эта штука может пригодиться?
     
     
  • 2.6, A.Stahl (ok), 11:59, 26/09/2017 [^] [ответить]    [к модератору]  
  • +3 +/
    Наверное там, где сейчас используется Lua. Возможно для кого-то ЯваСкрипт роднее.
     
     
  • 3.9, Аноним (-), 13:04, 26/09/2017 [^] [ответить]    [к модератору]  
  • –1 +/
    > там, где сейчас используется Lua

    В ядре NetBSD?

     
  • 2.15, Sirob (?), 15:39, 26/09/2017 [^] [ответить]    [к модератору]  
  • +/
    > Примеры задач, где эта штука может пригодиться?

    "Эта штука" используется в браузере Netsurf.
    Было ещё обсуждение прикрутить её к Polkit вместо мозиловского JavaScript-движка.

     
  • 2.21, Аноним (-), 17:36, 26/09/2017 [^] [ответить]    [к модератору]  
  • +/
    Gerbera ещё использует (видимо, для веб-интерфейса). Больше пока что не попадалось пакетов, где используется duktape.
     
     
  • 3.31, h31 (ok), 23:28, 26/09/2017 [^] [ответить]    [к модератору]  
  • +/
    Скорее для плагинов.
     
  • 2.34, Антон (??), 08:19, 27/09/2017 [^] [ответить]    [к модератору]  
  • +/
    Хоть куда, где надо добавить к либе скриптуху.
     
  • 1.12, Аноним (-), 15:06, 26/09/2017 [ответить] [показать ветку] [···]    [к модератору]  
  • –3 +/
    Bytecode is generated directly without an intermediate
    representation (tree), at the cost of needing two (and sometimes
    three) passes over each function.

    Печально.

     
  • 1.22, Аноним (-), 17:51, 26/09/2017 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    mruby более впечатляющий если lua не устраивает.
     
     
  • 2.36, funny.falcon (?), 09:39, 27/09/2017 [^] [ответить]    [к модератору]  
  • +/
    Я согласен. Но толпа хомячков, умеющих только js, не согласна.
     
  • 1.25, nc (ok), 18:29, 26/09/2017 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Интересная вещь. Есть идея встроить этот движок в компилятор (например языка D) для выполнения скриптов, модифицирующих и генерирующих синтаксическое дерево во время компиляции.
     
     
  • 2.37, funny.falcon (?), 09:41, 27/09/2017 [^] [ответить]    [к модератору]  
  • +/
    Почему не какую нибудь минималистичную scheme?
     
     
  • 3.39, Andrey Mitrofanov (?), 14:14, 27/09/2017 [^] [ответить]    [к модератору]  
  • +/
    > Почему не какую нибудь минималистичную scheme?

    Заветов Гринспена шугаются.  https://duckduckgo.com/?q=%D0%B3%D1%80%D0%B8

     

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


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