URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 112333
[ Назад ]

Исходное сообщение
"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"

Отправлено opennews , 26-Сен-17 11:09 
Доступен (https://github.com/svaarala/duktape/releases/tag/v2.2.0) выпуск JavaScript-движка Duktape 2.2.0 (http://duktape.org/), ориентированного на встраивание в кодовую базу проектов на языке C/C++. Движок отличается компактным размером, высокой переносимостью и низким потреблением ресурсов. Исходные тексты движка написаны на языке Си и распространяются (https://github.com/svaarala/duktape) под лицензией MIT.


Код Duktape занимает около 160 kB  и потребляет всего 48kB ОЗУ, а в режиме низкого потребления памяти  26kB ОЗУ. Для интеграции Duktape в код на C/C++ достаточно (http://duktape.org/guide.html#gettingstarted) добавить в проект файлы duktape.c и duktape.h, и использовать Duktape API (http://duktape.org/api.html) для вызова функций на JavaScript  из кода  на C/C++ или наоборот. Для освобождения неиспользуемых объектов из памяти применяется сборщик мусора с финализатором, построенный на основе комбинации алгоритма (https://ru.wikipedia.org/wiki/%D0%A1%D0%... подсчёта ссылок с алгоритмом пометок (Mark and Sweep).
  

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


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

URL: https://github.com/svaarala/duktape/releases/tag/v2.2.0
Новость: http://www.opennet.me/opennews/art.shtml?num=47270


Содержание

Сообщения в этом обсуждении
"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено th3m3 , 26-Сен-17 11:09 
Его можно использовать, как альтернативу Electron?

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено _hide_ , 26-Сен-17 11:14 
А рисовать как?

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено anonimous , 26-Сен-17 11:20 
А рисовать вот так https://lexborisov.github.io/myhtml/ и вот так https://github.com/lexborisov/mycss

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено lastmac , 26-Сен-17 14:19 
Приятно когда твои проекты вспоминают.
Как автор myhtml и mycss могу сказать следующее:
Для рисования этого не достаточно. Есть проект Modest (https://github.com/lexborisov/Modest) вот к нему можно было бы прикрутить этот JSE, но я смотрю в сторону Chakra от MS.
Более того, даже Modest не достаточно для рисования, он ещё пилится, но, к слову, скоро намечается большой апдейт где всё станет намного краше и лучше. Плюс мы грант получили на разработку браузера Modest, скоро совсем весело пойдет разработка.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Аноним , 26-Сен-17 16:09 
Может не надо браузер? :((

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

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


"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено lastmac , 26-Сен-17 16:43 
Почему не надо?

Браузер и Браузерный движок разные вещи. Итог разработки будет браузер.
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/my....

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



"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено trdm , 26-Сен-17 18:16 
> но подавляющему большинству пользователей браузер нужен полноценный

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


"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Аноним , 26-Сен-17 18:32 
> разве существует интернет без JS?

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


"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Мать драконов , 26-Сен-17 18:53 
Мне одно интересно. Нафига кому-то может прийти в голову делать браузер? Вам делать нечего или деньги некуда девать? Или вы студенты и у вас много свободного времени?

Нет более полезных задач для решения?


"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено lastmac , 26-Сен-17 20:59 
> Мне одно интересно. Нафига кому-то может прийти в голову делать браузер?

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

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

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

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

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

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

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

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

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

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


"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Аноним , 26-Сен-17 23:18 
>> Почему не надо?

Волнительно.

>> Он всё так же будет независимый и легко собираемый/встраиваемый.

Да будет так. И не постигнет судьба оперы.

>> Но разве существует интернет без JS? Вопрос скорее риторический. Я не уверен, и возможно вы меня поправите, но подавляющему большинству пользователей браузер нужен полноценный.

Да. Опциональная кнопка, не видная по дефолту решает. :)


"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Аноним , 26-Сен-17 18:26 
NetSurf (http://www.netsurf-browser.org/) — тоже легкий браузер на C, даже уже юзабельный для несложных сайтов. Там, кстати, Ducktape используется. И у них тоже свои пригодные для отдельного использования библиотеки для разбора HTML и CSS и прочего. Как оно соотносится с вашими проектами? (Не поймите неправильно: я только за то, чтобы было больше разных независимых реализаций веб-движков, т. к. это препятствует монополизации Веба и мотивирует разработчиков ориентироваться на стандарты, а не на конкретные браузеры).

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Клыкастый , 27-Сен-17 16:48 
$ eix netsurf
* www-client/netsurf
     Доступные версии:      ~3.6 {+bmp debug +duktape fbcon fbcon_frontend_able fbcon_frontend_linux fbcon_frontend_sdl fbcon_frontend_vnc fbcon_frontend_x +gif gstreamer gtk gtk2 gtk3 +javascript +jpeg +mng pdf-writer +png +psl +rosprite +svg +svgtiny truetype +webp ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32"}
     Домашняя страница:     http://www.netsurf-browser.org/
     Описание:              a free, open source web browser

хм... попробовать что ли


"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Andrey Mitrofanov , 28-Сен-17 16:45 
>      Описание:      
>        a free, open source
> web browser
> хм... попробовать что ли

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

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


"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Клыкастый , 28-Сен-17 17:36 
> Ещё лет пять подожди. Пока что не совсем пермисиивно.

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


"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Andrey Mitrofanov , 28-Сен-17 21:42 
>> Ещё лет пять подожди. Пока что не совсем пермисиивно.
> Зато уже опенсорсно. Ну и да, ты уже выпилил с десктопов и
> серверов софт с пермиссивными лицензиями? везде GPLv3? и как оно?

http://www.opennet.me/openforum/vsluhforumID3/108152.html#77 Всё
http://www.opennet.me/openforum/vsluhforumID3/103238.html#57 совсем без
http://www.opennet.me/openforum/vsluhforumID3/103238.html#54 изменений,
http://www.opennet.me/openforum/vsluhforumID3/103565.html#43 , чапай.

Я ж говорил, "я вычистил со своей машины все, что...".

Как там у тебя? Все  GCC  clang-ом и VS/icc позаменял? Порадуй. Или тож
  http://www.opennet.me/openforum/vsluhforumID3/111743.html#140 без перемен?

---http://www.opennet.me/openforum/vsluhforumID3/103565.html#29 и да, есть разница.


"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Клыкастый , 03-Окт-17 12:36 
ну т.е. не выпилил. а как дышал, как дышал.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Andrey Mitrofanov , 03-Окт-17 13:08 
> ну т.е. не выпилил.

Нет. Зачем это тебе?

https://ru.wikipedia.org/wiki/%D0%94%D0%...

https://ru.wikipedia.org/wiki/%D0%9B%D0%...

> а как дышал, как дышал.


"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Клыкастый , 03-Окт-17 14:57 
> Нет. Зачем это тебе?

Какой странный вопрос. BSD лицензию ругаешь ты, а "нужно это" мне. Мне - не нужно, чтобы ты выпиливал. Нужно тебе - быть последовательным.

И наоборот: GPL лицензия опенсорсная, с чего ты решил, что я должен её выпиливать - неясно.

Собственно всякий раз (несмотря на то, что это я уже объяснял тебе неоднократно), когда ты из своих соображений ожидаешь, что я буду что-то там выпиливать, я интересуюсь, а ты вообще последователен ли? Ожидая, что я выпиливаю у себя софт под GPL, распрощался ли ты с софтом под BSD? И каждый раз оказывается - нет. У тебя двойные стандарты. То, что ты рекомендуешь другим, сам применять не собираешься. Смешной такой.


"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Andrey Mitrofanov , 03-Окт-17 15:05 
>> Нет. Зачем это тебе?
> Какой странный вопрос. BSD лицензию ругаешь ты, а "нужно это" мне. Мне
> - не нужно, чтобы ты выпиливал. Нужно тебе - быть последовательным.

Мне? Зачем тебе, чтобы я каким-то там был?

И , кроме того, ты всё опять перепутал. Я не лицензию ругаю, а страюсь понять её выбирающих и, сюрприз, ругающих gpl. Вот тебя, да. А ты партизанишь и косоглазишь, не поддаёшься пониманию.

> И наоборот: GPL лицензия опенсорсная, с чего ты решил, что я должен
> её выпиливать - неясно.

Я просто перепутал, кто у тебя начальнки. По взаимодействию с вендорями -- не твой, да?
Ты просто показался похожим. Виноват, попробую исправиться.  Жду.


"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Клыкастый , 06-Окт-17 14:28 
> Мне? Зачем тебе, чтобы я каким-то там был?

Ну ожидается что собеседник а) вменяем б) логичен в) последователен. Но я не настаиваю, нет. Не умеешь в последовательность - ну не умеешь, бывает.

> Я не лицензию ругаю, а страюсь понять её выбирающих и, сюрприз, ругающих gpl.

Это могут быть разные люди. И это точно не ко мне. Я указываю на различния, на плюсы и минусы. Они есть и там и там. И в разных точках отсчёта - разные.

> да. А ты партизанишь и косоглазишь, не поддаёшься пониманию.

Есть подозрение, что у тебя проблема с пониманием. И причина тому - нежелание понимать.

> Я просто перепутал, кто у тебя начальнки. По взаимодействию с вендорями -- не твой, да?
> Ты просто показался похожим. Виноват, попробую исправиться.  Жду.

Сложно понять, что ты имеешь в виду.


"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено anonimous , 27-Сен-17 06:10 
Оу, как-то пропустил это, когда просматривал ваши репозитории.
Видел вашу статью на хабре, с тех пор руки чешутся как раз сабж из новости объединить с вашим браузерным движком, и юзать либо на самом девайсе (nokia n900 что-то стал сдавать уже в плане веб серфинга), либо к боту прикрутить своему и передавать изображения отрендеренных страничек.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Аноним , 26-Сен-17 11:57 
В процессе допиливания твой проект разрастется до еще одной ноды/электрона?

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено th3m3 , 26-Сен-17 12:06 
Electron - это работа через chromium. Каждое новое запущенное приложение, это ещё один chromium с кучей приблуд сверху. Всё это жрёт ресурсы неимоверно. Вот если бы была адекватная альтернатива, тогда ещё можно подумать об js-приложениях на декстопе.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Atterratio , 26-Сен-17 12:28 
Вам не кажется что это принципе не очень хорошая идея, и не важно на что тут менять хром?

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено th3m3 , 26-Сен-17 14:56 
Мне кажется, что очень не хватает чего-то вроде Android Webview в десктоп системах. Когда у нас одна среда на всю систему и через неё запускаются веб-приложения. Для некоторых задач - было бы очень удобно. А так, приходиться городить костыли в виде Электрона, который никуда не годится в таком виде, как сейчас.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Аноним , 26-Сен-17 17:18 
Было уже такое. Называлось mshtml.dll и iexplore.exe. Чем закончилось вы помните.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Sen , 27-Сен-17 09:45 
эээ, закончилось троллингом оной технологии и саботажа из разряда "смотрите мы можем лучше"... Ну и да не хватило гибкости MS... Но пока Edge радует

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Аноним , 26-Сен-17 17:21 
Но так-то ничего не мешает взять GObject Introspection и WebKitGTK.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено skoro , 26-Сен-17 15:10 
GNOME gjs ? На нём написаны Documents, Polari... правда документации практически нет.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено th3m3 , 26-Сен-17 15:29 
Он же только для Гнома? Тогда не очень подойдёт. Нужно кросс-платформенное решение, хотя бы хоть для GNU/Linux систем, а лучше для всех.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено skoro , 26-Сен-17 16:05 
Не только для Гнома, для GTK3, у него еще есть привязки к WebKitGTK, примеры смотрел под XFCE. Про Вин/МакОС не знаю, скорее всего - в пролете.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Аноним , 26-Сен-17 18:35 
А как насчет Qt QML или JavaScript-привязок к GTK?  И неужели писать веб-интерфейс проще, чем использовать нормальный десктопный тулкит? Да и JavaScript — не тот язык, который стоило бы использовать при наличии выбора. Или все это просто от нежелания учиться: "выучил JavaScript и мне хватит"? Как только человек прекращает учиться, он начинает деградировать: не ограничивайте себя Джаваскриптом и Вебом.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Аноним , 27-Сен-17 00:00 
можно, только тормозить будет как ie6 - jit-компиляции нет, это интерпретатор.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Антон , 27-Сен-17 08:20 
> Его можно использовать, как альтернативу Electron?

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


"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Пиони , 26-Сен-17 11:55 
Примеры задач, где эта штука может пригодиться?

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено A.Stahl , 26-Сен-17 11:59 
Наверное там, где сейчас используется Lua. Возможно для кого-то ЯваСкрипт роднее.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Аноним , 26-Сен-17 13:04 
> там, где сейчас используется Lua

В ядре NetBSD?


"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Sirob , 26-Сен-17 15:39 
> Примеры задач, где эта штука может пригодиться?

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


"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Аноним , 26-Сен-17 17:36 
Gerbera ещё использует (видимо, для веб-интерфейса). Больше пока что не попадалось пакетов, где используется duktape.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено h31 , 26-Сен-17 23:28 
Скорее для плагинов.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Антон , 27-Сен-17 08:19 
Хоть куда, где надо добавить к либе скриптуху.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Аноним , 26-Сен-17 15:06 
Bytecode is generated directly without an intermediate
representation (tree), at the cost of needing two (and sometimes
three) passes over each function.

Печально.


"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Аноним , 26-Сен-17 17:51 
mruby более впечатляющий если lua не устраивает.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено funny.falcon , 27-Сен-17 09:39 
Я согласен. Но толпа хомячков, умеющих только js, не согласна.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено nc , 26-Сен-17 18:29 
Интересная вещь. Есть идея встроить этот движок в компилятор (например языка D) для выполнения скриптов, модифицирующих и генерирующих синтаксическое дерево во время компиляции.

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено funny.falcon , 27-Сен-17 09:41 
Почему не какую нибудь минималистичную scheme?

"Выпуск встраиваемого JavaScript-движка Duktape 2.2.0"
Отправлено Andrey Mitrofanov , 27-Сен-17 14:14 
> Почему не какую нибудь минималистичную scheme?

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