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

Исходное сообщение
"Первый релиз многопоточного HTML-парсера MyHTML"

Отправлено opennews , 13-Июл-16 20:16 
После нескольких месяцев разработки увидел свет первый релиз (https://github.com/lexborisov/myhtml/releases/tag/v1.0.1) быстрого HTML парсера MyHTML (https://github.com/lexborisov/myhtml/). Код написан на языке Си и распространяется под лицензией  LGPL v2.1.


Особенности  MyHTML:


-  Высокая производительность;
-  Асинхронная обработка токенов и построение дерева
-  Полная поддержка спецификаций HTML 5 (https://html.spec.whatwg.org/multipage/), по состоянию на 19.06.2016;
-  Возможность манипулировать элементами и их атрибутами: добавлять, удалять, изменять
-  Поддерживает 39 кодировок на входе. На выходе только UTF-8, вся работа внутри только в UTF-8
-  Автоматическое определение кодировки текста. Сейчас доступны unicode: UTF-8, UTF-16LE, UTF-16BE (+ определение по BOM) и русские: windows-1251, koi8-r, iso-8859-5, x-mac-cyrillic, ibm866
-  Может работать в Single Mode — без тредов. Так же может быть собран без потоков.
-  Возможность парсить фрагменты HTML или парсить кусками (chunks);
-  Не имеет внешних зависимостей;
-  Поддерживает C99;
-  Не испытывает проблем если на вход подать бинарный файл или не валидный HTML;

Проект также предоставляет большую подборку примеров (https://github.com/lexborisov/myhtml/tree/master/examples) по использованию и описание API (https://github.com/lexborisov/myhtml/blob/master/include/myh...). На основе данного проекта будет разрабатывается рендер HTML на "голом" Си без зависимотей. Скоро будет завершён CSS-парсер MyCSS (https://github.com/lexborisov/mycss).

URL: https://github.com/lexborisov/myhtml/releases/tag/v1.0.1
Новость: http://www.opennet.me/opennews/art.shtml?num=44782


Содержание

Сообщения в этом обсуждении
"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено neon1ks , 13-Июл-16 20:16 
Круть!)

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Rodegast , 14-Июл-16 11:21 
Вот было бы на haskell-е, тогда бы была бы действительно круть...

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Вадик , 14-Июл-16 12:10 
Ну а смысл. C достаточно универсален. Биндинги к нему напилить и все круто будет. А хаскель...да, мы любим хаскель.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Rodegast , 14-Июл-16 14:46 
Ну как минимум с многопоточностью у haskell-а дела обстоят лучше.
А вообще проект мне понравился. Надеюсь что у автора всё получится в полной мере.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Uri , 14-Июл-16 18:08 
Эммм, что-что?

Я не ослышался - У хаскеля с многопоточностью дела лучше, чем у С???


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Rodegast , 14-Июл-16 21:52 
Конечно. Аппликативный код распараллеливается лучше итеративного. При словах "многопоточного HTML-парсера" у меня первая мысль была об erlang-е, но я подумал и всё-таки написал про haskell.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 15-Июл-16 21:22 
> Конечно. Аппликативный код распараллеливается лучше итеративного. При словах "многопоточного
> HTML-парсера" у меня первая мысль была об erlang-е, но я подумал
> и всё-таки написал про haskell.

Если он будет такой же как ejabberd - спасибо, но оставьте это себе.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 18:40 
А со сборкой мусора? Будет ли код такой же быстрый как и на си?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Rodegast , 14-Июл-16 22:05 
Насколько гипотетический парсер на haskell-е будет быстрее|медленнее сабжа сказать трудно. Но достаточно быстрый парсер написать можно. См. ссылку ниже.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 23:13 
зачем такому проекту сборщик?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 13:02 
https://github.com/bazqux/fast-tagsoup

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Rodegast , 14-Июл-16 14:48 
Оно что-то давно не обновлялось, хотя скорость 20-200MB/sec это более чем круть ;)

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Vombat , 14-Июл-16 19:34 
А что сложного написать? Поставь задачу и вперед.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 15-Июл-16 21:21 
> Вот было бы на haskell-е, тогда бы была бы действительно круть...

Куда это потом девать? Пофапать и выбросить? На сях то оно куда угодно прикручивается при должном желании.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено G.NercY.uR , 13-Июл-16 20:16 
Написано всё очень оптимистично и красиво! Это в итоге использовать можно будет для построения браузерного движка или какие у этого парсера предназначения?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено НяшМяш , 13-Июл-16 20:21 
Судя по тому, что будут писать рендер, да ещё и MyCSS на подходе - есть все шансы увидеть новый браузер.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 13-Июл-16 20:27 
Нету. Главное это layout, rendering и Javascript.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено lastmac , 13-Июл-16 22:23 
layout, reflow and other

Будет, всё будет. Если почитать статьи к парсеру то там я указывал, что рендер уже есть, но всё написано в черновом варианте. Сейчас же идет разработка чистовика. JS будет сторонний, пока сторонний.

На хабре (https://habrahabr.ru/post/277031) я описывал что за проект и к чему стремлюсь. Возможно скоро я буду делать его не один.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 13-Июл-16 22:30 
Это вы отрисовку шрифтов к other отнесли?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 13-Июл-16 22:35 
А куда её отнести? Или отрисовка шрифтов -- это ключевое что есть?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 13-Июл-16 22:58 
В те 10% задачи, которые займут 90% времени.

> Или отрисовка шрифтов -- это ключевое что есть?

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


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 17:16 
Есть большая разница между отрендерить шрифт и отрендерить шрифт с антиалисами на ретина дисплее.

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


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 18:51 
Во-первых, это забота библиотек.
Во-вторых - это кому как. У меня вот нет ретины, я всегда отключаю антиалиасинг и мне плевать на поехавшие шрифты на сайте. Зато на скорость работы и возможность кастомизации мне не наплевать. Особенно если это будет возможность кастомизации на сях.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 15-Июл-16 09:20 
поехавшие шрифты != поехавшие сайты.

Сейчас настолько адская смесь из css, js, html и багов разных возрастов, что сделать что-то работающее как надо сильно непросто.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено G.NercY.uR , 14-Июл-16 06:05 
Уважаемый, если вы не измените своим принципам и до конца будете идти по пути качественного кода, с упором на скорость и минимальные потребляемые ресурсы, и в итоге если ещё появится браузер, которым можно будет пользоваться на системе с 256 мегами памяти, то мой вам поклон и запись в постоянные донейторы вашего проекта.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 08:50 
Вообще-то один из простых способов получить скорость и компактность - не давать страницам делать лишнего. Ну там - дефолтное полное отключение JS в неактивных вкладках (с белым списком, конечно), а тои полная выгрузка уже распарсенного и загруженного контента в каких-то разумных (вероятно, слегка сжатых чем-то быстрым вроде imagezero и подобных) форматах на диск, возможность прервать исполнение уже загруженного и запущенного JS и тому подобное. И этого всего в существующих браузерах здорово не хватает.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено тоже Аноним , 14-Июл-16 10:51 
Секрет в том, что тормоза в браузерах и оплата их разработки идут из одного источника - рекламных сетей. Браузер со встроенной изначально резалкой шлака будет заметно быстрее Хрома, например, даже в том случае, если будет просто Хромиумом со встроенной резалкой шлака.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 12:21 
Я скорее согласен, чем нет. Речь была о том, что это (условно) простой путь получить конкурентоспособный браузер. Но да, финансировать придётся за счёт краудфандинга.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 13:17 
В принципе, совсем необязательно. Есть какое-то количество ниш, в которых был бы очень востребован быстрый браузер, потребляющий минимальное количество ресурсов, а ограниченность возможностей была бы только дополнительным плюсом - автомобильная индустрия, например, или управление промышленным оборудованием.
Деньги там очень серьезные.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 13:41 
Нет там никаких проблем с ресурсами - ни в делах автомобильных, ни в промышленности, куда частенько вообще ПК пихают в железном ящике. Ограничение фич при нужде в движках тоже предусмотрено.

А вот power user'ов, для которых подходящего браузера не осталось - этих хватает. Да и денег не особо много надо - если, конечно, оплачивать работу программистов, а не Mozilla Corporation. Скажем так - есть обоснованная уверенность, что, как минимум, с поддержкой/допиливанием при существующей кодовой базе справится команда до 10 человек. Особенно если не хотеть странного, вроде проигрывания видео во время плавной прокрутки страницы (чёрт, да эту плавную прокрутку можно вообще не делать).


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 14:18 
И проблемы с ресурсами есть, и с ограничением фич всё очень плохо.

Продвинутые пользователи - это ниша, на которую стало принято забивать, она другая, но тоже очень интересная. Только более сложная в собирании с неё денег. Но деньги в ней тоже есть, никто не спорит.

Основные проблемы, которые мне видятся с продуктом для power users (оставляя тему денег на время в стороне)
  - нужна максимальная расширяемость, кастомизирумость, гибкость. Для этого нужна очень хорошая архитектура. Это сложно.
  - long tail требований. Power users они на то и не лайкатели в инстаграммах, что запросы у них очень уж разные. И запросы эти часто взаимоисключающие.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 14:56 
Архитектура "хребет + плагины, которые можно цеплять цепочками", в общем-то, не так уж сложна. То, что плагин становится сишной либой - не проблема, если надо - интерфейс к другим языкам делается отдельно.

long tail этим и решается - плаягинами. Главное, чтобы не надо было писать полноценные движки.

А деньги взимать - краудсорсинговый проект на базовый вариант + оплата отдельных фич (по факту - плагинов тех же) потом. Хотя потом оно и без оплаты будет жить.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 15:35 
Она "не сложна" ровно до момента её имплементации. Особенно вместе требованиями по производительности.

Long tail легко решается плагинами в экосистемах типа Wordpress - и, кстати, хорошая архитектура этому весьма препятствует. Где много-много одинаковых людей на каждую фичу, и совсем не power users.

Оплата фичей теоретически вещь неплохая, вот краудсорсинг здесь вселяет гораздо меньше оптимизма.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 18:44 
Да делана такая архитектура сто раз (и мной в том числе) - нет ничего великого в ней. Производительность перестаёт быть проблемой как только перестаёшь видеть плагины как нечто страшное, внешнее и недоверенное. Если у них те же права, что и у остального кода (и они, соответственно, могу всё завалить, конечно) - то всё в порядке.

Насчёт long tail не понял - чему хорошая архитектура препятствует?


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 21:33 
Хорошая архитектура препятствует набеганию тысяч неквалифицированных разработчиков, которые левой пяткой запиливают тысячи плагинов, не умея ни читать ни писать.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 15-Июл-16 00:02 
Тогда у нас очень разные понятия о хорошей архитектуре. Вопрос, в общем-то, не в том, сколько тысяч кривых плагинов, а в том, чтобы от них можно было легко отличить не кривые. А так - если каждый может для себя сделать какую-то кастомизацию - это и есть система для power user'ов. Тот же unix shell с утилитами и пайпами взять - они пишут себе какие-то спеифические домашние скрипты, от которых production quality никто в здравом уме и не ждёт - зато точно под конкретные условия.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 15-Июл-16 07:57 
зачем тебе unix shell убогий? твое корыто это systemd - вот жри его и вперед :)

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 13:15 
Вы опять главного не сказали - за этим стоят Ротшильды или Рокфеллеры?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 18:44 
К сожалению тут надо очень долго возится, иначе сайты получятся совсем не юзабельными

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 16-Июл-16 04:18 
> Вообще-то один из простых способов получить скорость и компактность - не давать
> страницам делать лишнего.

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

Во-вторых, без разрешения этого лишнего - сайты часто работать перестают. Для понимания, посмотри на twitter bootstrap. Без js половина оформления отваливается, хотя формально js опционален. А оно популярное и на этом каждый второй сайт сделан.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено lastmac , 14-Июл-16 11:04 
> Уважаемый, если вы не измените своим принципам и до конца будете идти
> по пути качественного кода, с упором на скорость и минимальные потребляемые
> ресурсы, и в итоге если ещё появится браузер, которым можно будет
> пользоваться на системе с 256 мегами памяти, то мой вам поклон
> и запись в постоянные донейторы вашего проекта.

Спасибо вам!
Своим принципам я не поступлюсь.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 09:37 
Вы правда (если это вы) собираетесь в одиночку сделать конкурента Firefox и Chrome? Либо вы гений, либо глупец.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 10:17 
Или умный человек, способный поставить задачу премлемого масштаба, не пытаясь реализовать всё, что понапихали в этих кадавров. Ну и читайте внимательнее то, на что отвечаете - "возможно скоро я буду делать его не один."

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 13:06 
Заодно можно реализовать много другого.
Да и один в поле тоже воин - http://lambda-the-ultimate.org/node/3851#comment-57760

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Sen , 14-Июл-16 10:31 
где-то это было... А точно Линуксу этоже сказали в своё время... И да Google тоже из тех же ребят)))

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено lastmac , 14-Июл-16 10:59 
> Вы правда (если это вы) собираетесь в одиночку сделать конкурента Firefox и
> Chrome? Либо вы гений, либо глупец.

К счастью, или сожалению, но мне это говорят часто. Я не пытаюсь сделать, как это модно сейчас говорить, "убийцу" того или другого. Я просто не доволен тем что есть и делаю так как считаю правильным.

В данным момент мне разрешили работать над проектом фуллтайм в рабочее время. Возможно скоро я буду заниматься им не один, но это всё вилами на воде, как обычно.

Я реалист, проект очень большой. Просто вот нахрапом такое не сделать. Можно даже сказать, что браузер это свод современных технологий/решений. В общем, это крайне не простая "штука".


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено G.NercY.uR , 14-Июл-16 12:25 
Автор как я считаю, пример исчезающих к сожалению, романтиков IT отрасли. Это раньше корпели над тем, как бы изящней, да эффективней написать каждый кусок кода, сейчас же никого не волнуют такие формальности.

Рынку надо продавать, чтобы продавалось новое, надо чтобы тормозило старое. Вокруг сотни браузеров, один прожорливей другого. И проедают они полностью ресурсы современных писюков, хотя например году эдак в 2006-2007, помню в общаге преспокойненько пользовался инетом в опере, со всеми яваскриптами, она тогда полностью проходила acid тесты, и вконтакты и одноклассниками и масса вкладок нормально себе ворочались на Athlon X2 4200 + 1Gb Ram во фре.

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

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


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 12:36 
Вокруг 4 браузера. Chrome, Edge, Mozilla, Safari. То, что на движки хрома ещё пара десятков команд натянула свои шкурки (и парочка на мозилловские), ничего не меняет.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 13:23 
Есть несколько экспериментально-академических движков - ну, не движков, а proof of concept поделок.
Все упирается в layout и %^$^%$$#%$#% модель CSS - в результате лок на локе едет и локом погоняет, и пиление их алмазным надфилем требует в условиях "attention span типичного разработчика не превышает 5 секунд" совершенно катастрофических ресурсов по времени и деньгам.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено vitalif , 14-Июл-16 13:42 
ты кстати зря, firefox за это время например ускорился и течь таки меньше стал

а опера наоборот протухла адово


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 14:00 
Ну вот Mozilla переписала с нуля движок на Rust. Как до хотя бы до беты дойдет посмотрим, как оно.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 14:20 
Там до переписывания и до того что можно было бы назвать движком еще очень далеко.
И волшебное слово Rust само по себе ВНЕЗАПНО не волшебная палочка.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 14:58 
У мозиллы слишком отличается направление движения - "всё упростить, ориентировать на массового пользователя, всё засунуть в веб или хотя бы в джаваскрипт". Тут на чём не пиши - всё равно гадость будет.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 15:37 
Самое смешное, конечно, в том что она будет еще и никому не нужная, потому что Chrome уже есть, и перехромить его не удастся.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 15-Июл-16 00:03 
Вот то, что до них это не доходит, меня удивляет больше всего.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 15-Июл-16 09:37 
А в других случаях - с Blackberry, например - не удивляет? Это обыденность, редки наоборот, исключения из этого паттерна - такие как Harley Davidson, например.

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


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 15-Июл-16 21:29 
> На хабре (https://habrahabr.ru/post/277031) я описывал что за проект и к чему стремлюсь.
> Возможно скоро я буду делать его не один.

А что, набор технологий ничего так, симпатично и со вкeсом. Никакой хипстерской фигни и решения всех мировых проблем, все по делу. Автор крут.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 13-Июл-16 20:24 
Сравнение с парсером на Rust - http://lexborisov.github.io/benchmark-html-persers/

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено freehck , 13-Июл-16 20:52 
Ух. Да оно на порядок опережает servo/html5ever. Очень, очень достойный результат.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 13-Июл-16 21:20 
Это какая ошибка, ведь Rust самый лучший язык, у servo самые лучшие разработчики на самом лучшем языке, Mozilla Foundation самая прогрессивная опен-сорс компания, а поезд Си давно ушел!

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 15:43 
Как уже упоминал тёзка, html5ever скорее заглушка, которая ещё будет пилиться. Ну и gumbo тоже, как бы, на Си написан.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 16:37 
Но ведь скорость разработки на прогрессивном языке Rust обгоняет фотоны в вакууме!
Почему же заглушка и будет пилиться? Ведь Servo разрабатывается рекордными темпами и со дня на день вытеснит устаревшие браузеры окончательно?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 18:00 
> Но ведь скорость разработки на прогрессивном языке Rust обгоняет фотоны в вакууме!

Казалось бы, причем тут скорость разработки.
> Почему же заглушка и будет пилиться?

Так что там с тормозами Gumbo?


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 21:35 
> Казалось бы, причем тут скорость разработки.

Разве это не одна из уникальных особенностей прогрессивного языка Rust, выгодно отличающая его от устаревших языков Си и С++?


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 22:52 

> Разве это не одна из уникальных особенностей прогрессивного языка Rust, выгодно отличающая
> его от устаревших языков Си и С++?

Так вы из неолуддитов  будете?


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 15-Июл-16 22:19 
> Это какая ошибка, ведь Rust самый лучший язык, у servo самые лучшие
> разработчики на самом лучшем языке, Mozilla Foundation самая прогрессивная опен-сорс компания,
> а поезд Си давно ушел!

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


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено angra , 13-Июл-16 22:58 
Мсье точно смотрел графики? В каком месте на порядок? Или кто-то не знает, что порядок это в 10 раз, а не на 10%?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 13-Июл-16 23:01 
> MyHTML Overall time: 0.50890
> HTML5Ever Overall time: 4.50536

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено angra , 13-Июл-16 23:11 
Ну как и предполагалось, графиков не смотрели, просто глянули на итоговые цифры.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 01:05 
Может быть вы расшифруете свою мысль, снизойдете до пояснений?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено angra , 14-Июл-16 11:06 
В большей части случаев разница не в 10 раз, а от двух до четырех. То есть финальная разница в 10 раз сделана небольшим количеством сайтов. Причем очень любопытно, что на какой-нибудь паре сайтов сабж справляется за почти одинаковое время, а html5ever  с разницей в три раза. Тут два варианта, либо есть проблемы с парсингом каких-то конструкций в html5ever, либо сабж просто скипает парсинг некорректных кусков. И в этом серьезная проблема всего бенчмарка, он сравнивает скорость парсинга, но не проверяет корректность или хотябы равенство результатов у парсеров.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено lastmac , 14-Июл-16 12:14 
Сравниваются только полноценные парсеры. То есть те кто полностью соответствует спецификации и проходит тесты на правильное построение дерева https://github.com/html5lib/html5lib-tests/tree/master/tree-...

Прогон 60к сайтов показал среднее отставание html5ever в ~5 раз.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено angra , 14-Июл-16 17:12 
Еще раз, сравнивались ли деревья, построенные парсерами на этих 60к сайтов, многие из которых скорее всего не полностью следуют спецификациям?  Насколько сильно оставание на этих эталонных тестах, а не реальных сайтах?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 18:38 
Чуть ниже по треду есть же ответ: http://www.opennet.me/openforum/vsluhforumID3/108541.html#45

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено angra , 14-Июл-16 19:08 
Это не ответ на мой вопрос. Ну разве что считать это признанием в том, что на самом деле бенч был несколько некорректным.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено lastmac , 14-Июл-16 19:47 
Быть может вы удивитесь, но их нельзя сравнить по конечной серелизации данных. Всё крайне просто, спецификация "живая" и она постоянно меняется. Вот например, тег isindex выкинули из спецификации не так давно. Теперь такого тега нет, теперь он такой же как прочие "безымянные теги", вроде <mynametag>. Поменялась обработка тега menu and menuitem и т.д..

Есть общепризнанные тесты на правильное построение дерева: https://github.com/html5lib/html5lib-tests/tree/master/tree-... — тесты охватывают очень многое из спецификации, в особенности всё что связано с битыми тегами и невалидным хтмл. Сейчас сложно сказать с плеча, я как-то не особо изучаю сторонние парсеры, но вроде гумбо гугловский уже устарел, хтмл5эвер не знаю, сюда по логу коммитов он тоже давольно давно не обновлялся.

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

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

Я стараюсь поддерживать свежую спецификацию.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено angra , 14-Июл-16 21:17 
Я веду речь о том, что нельзя сравнивать напрямую скорость, если результат выдается неодинаковый. Тем более непонятно, почему при наличии тестов они не были использованы для бенчмарка. А если были, то интересен результат.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено lastmac , 14-Июл-16 21:38 
Каждый тест парсится меньше чем за 1мс (0.00001). Там нечего тестировать на скорость, это тесты на корректность.

Потому и сравнивались всего несколько парсеров. Эти парсеры заявлены с полной поддержкой хтмл. Сравнение корректное, +- в реализации всегда будет, спецификация "живая", но этот +- ни на что не влияет. Чтобы понять почему этот +- ни как не влияет на скорость нужно вникнуть в спецификацию хтмл и понять на какие стадии разбивается анализ хтмл. Это я уже не буду тут описывать, всё есть в свободном доступе.

Могу лишь вас заверить, что корректность бенчмарка подтверждена не одним человеком. Более того, даже теми кто пилит серво.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено angra , 14-Июл-16 22:32 
> Каждый тест парсится меньше чем за 1мс (0.00001). Там нечего тестировать на
> скорость, это тесты на корректность.

Это нормально для тестов, но обычно в таких случаях их просто запускают нужное количество раз в цикле. Что мешало сделать так?

> Могу лишь вас заверить, что корректность бенчмарка подтверждена не одним человеком. Более
> того, даже теми кто пилит серво.

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


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено ZloySergant , 13-Июл-16 21:35 
>Сравнение с парсером на Rust - http://lexborisov.github.io/benchmark-html-persers/

Упс.

P.S. Да, некрасиво получается. С другой стороны, кто-то, вообще, на ASM'е пишет.

P.P.S. Больно всяким бидонистам? Обидно? Ну так что делать-то? У низкоуровневых (при наличии мозгов у прогера) - оверхеда-то -  нет.

P.P.S.S.
Слава-слава бидонистам! (нужную фигню - вставить)
Прирожденным оптимистам, (на предмет проца и памяти)
Кто способен в поле чистом
Всю систему положить! (без комментариев. Наблюдал)


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 13-Июл-16 22:28 
Не ругай меня, родная, что накодил тут г..на я :D

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 13-Июл-16 22:59 
> на я :D

Ну что вы, на прогрессивном языке D получилось бы раз в 200 быстрее.



"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 17:28 
То что ты наблюдал в кабинете информатики своего ПТУ это конечно важные наблюдения, но реальность "немножко" другая. Стыдно не знать что к питону подключаются всякие сишные библиотечки, совмещая скорость Си и простоту питона. К примеру есть вполне себе массовый и шустрый питоновский парсер grab, который написан вокруг обвязки сишной библиотеки lxml. Работает и шустро и просто. Больно, да?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Mail , 15-Июл-16 11:19 
На perl обвязка еще быстрее.

Совсем больно?


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 15-Июл-16 11:46 
> На perl обвязка еще быстрее.
> Совсем больно?

Во первых, то что на перл быстрее - надо пруф.
Во вторых, больше обвязок, хороших и разных.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено ZloySergant , 06-Авг-16 20:08 
> То что ты наблюдал в кабинете информатики своего ПТУ это конечно важные
> наблюдения, но реальность "немножко" другая. Стыдно не знать что к питону
> подключаются всякие сишные библиотечки, совмещая скорость Си и простоту питона. К
> примеру есть вполне себе массовый и шустрый питоновский парсер grab, который
> написан вокруг обвязки сишной библиотеки lxml. Работает и шустро и просто.
> Больно, да?

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


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 13-Июл-16 21:54 
> x86_64-apple-darwin15.3.0

Не интересно.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено НяшМяш , 14-Июл-16 00:01 
Полезнее было бы вместо очередного коммента про проявление отсутствия интереса выложить свои тесты. Пусть даже если эти тесты были сделаны на твоей любимой десяточке.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено lastmac , 14-Июл-16 10:51 
> Полезнее было бы вместо очередного коммента про проявление отсутствия интереса выложить
> свои тесты. Пусть даже если эти тесты были сделаны на твоей
> любимой десяточке.

Я могу порыть интернеты, бенчмарки были выложены пару месяцев назад. Тогда, после публикации на reddit, люди тестировали на разных платформах и согласились с результатом. Весь код открыт.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 13:04 
html5ever в нынешнем виде не предназначен для использования в продакшне. Это по сути заглушка для прохождения тестов, которая позже будет полностью переписана. Все делающие выводы из этого сравнения, извините за мой французский, некомпетентные идиоты.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено lastmac , 14-Июл-16 19:02 
Не нужно ругаться. Откуда у вас эта информация?

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

В данный момент они утверждают, что их парсер: High-performance browser-grade HTML5 parser

Но и я на месте стоять то не буду.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Гость , 13-Июл-16 21:31 
>Код написан на языке Си

Дырки присутствуют?


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 13-Июл-16 22:01 
Количество не найденных ещё дырок всегда бесконечно (цэ).

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 13-Июл-16 22:13 
А всё почему? Потому, что ошибка неисчерпаема, как атом.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 01:06 
Как Electron.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Пользователь Debian , 13-Июл-16 21:33 
Ну, вообще-то реальный веб это не HTML5.

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


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 08:37 
Это веб пятилетней давности. Сейчас - либо HTML5, либо что-то, где идеальная отрисовка на фиг не нужна.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено lastmac , 14-Июл-16 10:44 
> Ну, вообще-то реальный веб это не HTML5.
> Парсер для настоящего (а не сферического в вакууме) браузера, к сожалению, должен
> поддерживать различные ухищрения чтобы парсить кривой HTML и XHTML различных версий.

Всё это парсер делает. Всё ровно так же как современные браузеры. Спецификация HTML оговаривает что и как должно происходить в "непонятных" ситуациях.

В спецификации можно посмотреть здесь:
An introduction to error handling and strange cases in the parser:
https://html.spec.whatwg.org/multipage/syntax.html#an-introd...

Adoption agency algorithm:
https://html.spec.whatwg.org/multipage/syntax.html#adoption-...


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 12:35 
> Не испытывает проблем если на вход подать бинарный файл или невалидный HTML;

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 06:05 
Ждём новостей об уязвимостях. Хотя постойте.. нет, никто это не будет использовать.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 13:10 
Уже используют.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 06:55 
Замечательно. Правда, я схему парсинга скрипта неосилил, поэтому вопрос: если в javascript-строке попадется </script> он будет считаться закрывающим тэгом как у всех или нет?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено lastmac , 14-Июл-16 10:48 
> Замечательно. Правда, я схему парсинга скрипта неосилил, поэтому вопрос: если в javascript-строке
> попадется </script> он будет считаться закрывающим тэгом как у всех или
> нет?

Там всё не так сложно, если долго смотреть на картинку)
Да, будет считаться закрывающим, так требует спецификация.

http://lexborisov.github.io/myhtml/img/script_data.png


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 07:02 
html5ever собирался с флагом --release?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено lastmac , 14-Июл-16 10:40 
> html5ever собирался с флагом --release?

Да, конечно.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 08:34 
А как в тестах проверялась корректность результатов? Т.е. что полученный вариант дерева во всех 4-х тестах на выходе совпадает. А то можно написать самый быстрый парсер, который будет выдавать на выходе полную ерунду. но быстро

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 08:38 
Хм, лично меня (в разумных пределах) скорость не очень волнует. Но вот если разработчику будет, в отличие от хромозилл, не плевать на мнение пользователей - это будет основной фичей. Начиная, скажем, от изначальной разработки с учётом возможности эффективно резать/править контент (адблокеры и прочее) и заканчивая удобным контролем из внешнего софта. Или, допустим, возможность подгрузки сишных плагинов, имеющих те же возможности, что и родные компоненты.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 08:45 
расшифруй что значит не плевать на пользователей милок, с чего ты взял что если к твоему мнению не прислушались - то значит плюют на пользователей?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 08:56 
Да. именно это и значит. Примеры я перечислял. А ещё есть многолетние баги, зато какой-нибудь покет запихнуть - это пожалуйста.

Вот на разработчиков им не плевать, это да. А как защищать пользователя от кривых рук и эгоистичности этих разработчиков - так в кусты.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 09:53 
а с чего ты взял что ты это все? в твоем приложении используется множественное число, но текст говорит что проблема специфична для тебя.

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


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 10:12 
Ну вот я так считаю, что проблема не специфична только для меня. На основании того, что вижу кругом, в том числе здесь на опеннете - можете глянуть на любую новость о мозилле, например.

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

А вообще - читать нотации идите... да хоть лесом, например.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 13:29 
Если разработчику будет не плевать на мнение пользователей - то шансов как раз нет, потому что толпу пользователей, желающих Chrome, но с перламутровыми пуговицами, вы никогда не перекричите.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 13:45 
Поэтому им надо давать возможность пришить эти самые пуговицы. Как было в мозилле, только круче - чтобы можно было влезть в сами движки.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 13:49 
так вам дали эту возможность. Открыли код. А что за вас еще и пришить должны?
А вы заплатили за эту работу - которая нужна именно вам?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 15:21 
Во-первых, там что открыли, что нет - сложность кода такая, что если нет специализированного API игра не стоит свеч - хоть сам делай, хоть кого-то нанимай, больно дорого. На то, чтобы въехать в код там месяц фуллтайм нужен примерно.

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

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

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

P.S. у вас какой-то инвертированный взгляд на вещи. "Открытый код" для меня - это дефолт. Закрытый - извращение, для использования которого нужны какие-то особые основания. Поэтому не надо мне баек про "открытый код" как великую милость.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 15-Июл-16 08:00 
> Во-первых, там что открыли, что нет - сложность кода такая, что если
> нет специализированного API игра не стоит свеч - хоть сам делай,
> хоть кого-то нанимай, больно дорого. На то, чтобы въехать в код
> там месяц фуллтайм нужен примерно.

какая разница - сколько. Тебе дали возможность? или нет? Теперь ты ноешь что это сильно сложно для тебя ?


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 14:22 
Вы не помните сколько из-за XUL в мозилле было проблем?
Хорошая архитектура - это очень сложно.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 15:08 
Я как раз с ним проблем не припомню. кроме, разве что, тормозности - дык это от того, что они его адово переусложнили и зачем-то прибили к джаваскрипту. А по нынешним временам можно вообще Qt брать и не париться.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 15:38 
> кроме, разве что, тормозности - дык это от того, что они его адово переусложнили

Это замечательно смотрится в одной фразе с утверждениями о том что архитектура это просто, и проблем с XUL нет.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 18:34 
Особых противоречий нет.
Не было проблем - то есть от него, грубо говоря, никто не умирал. Да, можно сделать быстрее и проще, но можно и оставить как есть.

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


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 21:46 
> Особых противоречий нет.
> Не было проблем - то есть от него, грубо говоря, никто не умирал. Да, можно сделать быстрее и проще, но можно и оставить как есть.

Это по состоянию на 2016 год "можно оставить". Вы не помните как оно тормозило именно из-за архитектурных решений вообще и XUL в частности?

> А сложная архитектура может быть, скажем, внутри движка рендеринга страницы, но не
> выпускать из него эту сложность и организовать плагинную архитектуру - не
> ахти как сложно.

Очень сложно. Упрощенный, но надеюсь, не до потери смысла, пример - у вас появляется плагин, который работает с layout tree. Что-то добавляет, что-то вырезает, что-то расставляет по-своему - не суть важно. Пускать его после окончания фазы лэйаута - значит фактически заново делать лэйаут, что почти удвоит время рендеринга. Пускать его внутрь - это либо описывать всю внутреннюю кухню вашего layout engine - что само по себе задача большая и скучная, и это будет все равно непонятно для 99% потенциальных плагинописателей, а 99% из оставшегося процента все равно всё сделают неправильно. Либо  придумывать такой API, который оставит за кадром все внутреннее алмазно-надфильное выпиливание, и обрамлять большим эксклюзивным локом весь плагин - и API нетривиальное, и тормоза будут как в том варианте с которого мы начали. И так везде, со всеми остановками.



"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 15-Июл-16 00:12 
Я на файрфоксе сидел с тех времён, когда он назывался firebird - с оперой вперемешку. Во всяком случае оно было достаточно юзабельным, чтобы не уходить.

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


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 15-Июл-16 10:10 
> Во всяком случае оно было достаточно юзабельным, чтобы не уходить.

На юниксах особенно некуда было уходить. А на всех остальных платформах никто массово  долгое время и не приходил, пока мощности процессоров не возросли, стоимость памяти не обвалилась.
Можно ли было сделать не так тормозящий XUL? Можно, но для хорошей имплементации хорошей архитектуры нужно еще на порядок больше усилий.

> Да, пускать внутрь. Там же всё равно есть какие-то свои модули, верно?
> А если там они так мутно взаимодействуют, что без поллитра не
> понять

Не мутно, но сложно. Не всякое сложно - мутно, хотя и из наблюдений за софтверным ландшафтом чаще всего складывается именно такое впечатление.
Посмотрите на редкие хорошие проекты - LuaJIT, Yesod. Они не мутные, но они сложные.

> то либо разгребать

Уменьшать связность компонентов, упрощать логику их взаимодействия и увеличивать их размер? Будет очень медленно.

> либо хорошо документировать.

Этот кейс я описал. Он ничему не поможет. Либо это будет краткое, даже пусть и точное описание ("моноид в категории эндофункторов"), которое никому ничего не даёт, либо толстый учебник, который никто не будет читать и на поддержание которого в актуальном состоянии будет уходить 99% времени. К тому же таланты к написанию хороших учебников есть у довольно малой части популяции.

> Либо через год-два самого разработчика этот бардак догонит, что, собственно, с мозиллой сейчас и произошло

Это разные проблемы, в общем случае ортогональные. LuaJIT, например, бардак не догнал.

> Принцип "модули должны быть понятны стороннему человеку с разумными усилиями" - это как раз критерий хорошей архитектуры

Как лозунг на стенку для воспитания джуниоров в правильном духе - годится.

> особенно на сях, где бороться с бардаком сравнительно сложно.

От языка эти вещи очень мало зависят. В разных языках бардак выглядит немного по-разному и создается немного разными средствами - только и всего.



"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 12:38 
А с чего ты взял что проблема специфична только для него? Ты пробовал писать багрепорты авторам? Или думаешь он единственный кто пробовал?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 13:50 
> А с чего ты взял что проблема специфична только для него? Ты
> пробовал писать багрепорты авторам? Или думаешь он единственный кто пробовал?

Писал и не раз. Когда это было интересно автору он правил, нет - patches are welcome.
А вы не пробовали присылать патчи авторам вместо того что бы скулить "ах бага не фиксится" ?


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 08:51 
Кстати - куда донейты слать?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено lastmac , 14-Июл-16 10:38 
Хороший вопрос. Я им не задавался и даже не знаю как это организовывается. Вот пару месяцев назад мне предлагали биткоинов, но я как-то застеснялся и отказался. Да и они незаконны у нас, вроде.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Crazy Alex , 14-Июл-16 12:33 
У вас - это в России? Насколько я понимаю, не то чтобы незаконны, скорее  власти пока сами решить не могут, как к ним относиться. Но счёт в палке (и соответствующая кнопка Donate) точно возможны.

А если помечтать - то проект на indiegogo с какого-то момента был бы к месту...


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 09:39 
Ждем выход браузера на этом деле.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 12:09 
Вот это проектик... Автор молодец!

P.S. Гулять так гулять! Я бы еще посмотрел парсер на асме :) Лет 10 назад какой-то профессор сообщал, что разработал супербыстрый парсер с использованием SIMD-инструкций. Там вроде там неплохое ускорение получалось.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 13:12 
SIMD-инструкции используются в довольно небольшой части парсинга, такой как проматывание до искомого символа, например.
И сюда их встроить совсем несложно.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 13:27 
Интерестно, а можно будет потом этот "браузер" (парсер+рендерер) портануть на ARM11 для Symbian 9.x с помощью P.I.P.S.?

https://en.wikipedia.org/wiki/P.I.P.S.

https://sourceforge.net/projects/clibrariesforsy


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Kodir , 14-Июл-16 14:02 
Стотыщный парсер протухшего HTML - оно надо? Гипертекст ущербен изначально, его основной смысл был в простейшем форматировании + ссылки (типа как сейчас markdown). Но совр. сайты и принципы дизайна ушли намного дальше даже полиграфии, поэтому без нового языка веб тихо деградирует и наполняется разной говённости сайтегами, где дизайнер тратит уйму времени на элементарные вещи.
Уже давно настало время за языком, неким гибридом внутреннего формата Adobe Illustrator и XAML.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено тоже Аноним , 14-Июл-16 14:27 
Ну, молодой человек, раз уж вы сами вышли к доске, расскажите нам о внутреннем формате AI.
Мы вас внимательно слушаем.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 18:03 
В старых версиях -- PostScript, в новых -- PDF.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено тоже Аноним , 14-Июл-16 18:20 
Ну вот! А я-то и не подозревал.
Но мы должны идти глубже!
Вопрос первый: а что такое, собственно, PDF?
Вопрос второй: а что, в браузере правда не хватает еще одной ВМ, теперь еще для обсчета ПостСкрипта? Его просто распарсить недостаточно, в отличие от.
Вопрос третий: а со всей массой написанных за последние 20 лет скриптов и стилей мы будем прощаться без всякого сожаления?
Вопрос ключевой а зачем нам вся эта головная боль, если уже существует SVG?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 21:49 
Переписать React на PostScript - я хотел бы на это посмотреть!

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено dq0s4y71 , 14-Июл-16 14:10 
А зачем нужно парсер HTML делать многопоточным? По-моему, даже у компиляторов промышленного уровня парсеры не делают многопоточными, потому что основное время тратится совсем не на парсинг.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 14:24 
Затем что быстрый парсер нужен далеко не только компиляторам.
Я бы даже сказал что компиляторам он нужен в последнюю очередь.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено dq0s4y71 , 14-Июл-16 15:14 
Прирост в скорости разбора среднестатистической веб-страницы будет практически незаметен, зато сложность и ресурсоёмкость многопоточного парсера будет ощутимо выше.

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


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 15:40 
Кому он будет незаметен?
Тому кто разбирает тысячи страниц в секунду, например, безо всякого рендеринга?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено dq0s4y71 , 14-Июл-16 16:16 
В этом случае да, согласен.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено dq0s4y71 , 14-Июл-16 15:16 
И, кстати, именно поэтому в GCC, в конце концов, отказались от bison и переписали парсер вручную.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено dq0s4y71 , 14-Июл-16 14:19 
> Поддерживает C99;

Важная особенность? :)


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено lastmac , 14-Июл-16 16:48 
Нет, но глаз радует! :)

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 22:53 
Вот будете в прошлое путешествовать, сразу поймёте.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено dq0s4y71 , 15-Июл-16 12:59 
Тогда надо было написать "поддерживает ООП" или что-нибудь "визуальное". Школота это понимает.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Антоним , 14-Июл-16 14:26 
Жду не дождусь нативного браузера под андроид.

>Возможность добавлять, изменять и удалять элементы и их атрибуты;

Это киллер-фича (при соотв реализации).

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


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 14:35 
> К примеру, запретил document.write

Кто же вам мешает провести натурный эксперимент? Поправьте пару строчек отвечающих за обработку document.write в Chromium или Firefox, да и пройдитесь по интернетам.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Дуплик , 14-Июл-16 17:25 
Спасибо, отличный софт!

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено lastmac , 14-Июл-16 19:28 
Всегда рад помочь!

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено KR , 14-Июл-16 18:54 
Неужели я вижу что-то, написанное не на новеньком модном Go/Rust/etc.?

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 21:51 
На страницы таблоидов еще изредка попадает что-то написанное на Scala, но всё реже.
Clojure и D, недавние фавориты, уже совсем забыты.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено rob pike , 14-Июл-16 21:55 
> While I've never used html5ever it's landing page mentions that the DOM representation is pluggable (and suggests that the DOM included is mostly for demonstration purposes). Based on your benchmark repo it seems you're using a very simple C lib api wrapper around html5ever that indeed uses the proof-of-concept DOM.
> So you're benchmarking [i]something[/i], I'm just not sure it really means much (it's not the DOM servo uses, and even if you used that; it's not an apples-to-apples comparison since a real browser DOM is likely meant to be fast at post-load JS+CSS integration, and not just quick building).
> Personally, I think misleading benchmarks simply distract from a pretty cool pet project, so I'd just get rid of them (or think about with what you can make realistic comparisons, and how)

https://www.reddit.com/r/programming/comments/4snfz7/the_fir...


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено lastmac , 14-Июл-16 22:13 
Читал. Странный комментарий. Автор предполагает и он не прав.
Все исходники в публичном доступе, всё можно посмотреть и потрогать.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 14-Июл-16 23:51 
Прекрасный проект, спасибо вам. Попробую написать обвязочку для luajit

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено lastmac , 15-Июл-16 05:35 
Вам спасибо! Для вас делаю.
Было бы крайне здорово. Вот ещё бы кто с обвязочкой для python помог.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Аноним , 15-Июл-16 10:58 
Джва года ждал. Когда уже запилят браузер? Я недавно видел принципиально новый пармер javascript на Си.

"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено lastmac , 15-Июл-16 11:45 
Дело это не простое, но реализуемое. По прогнозам сложно что-то сказать. Могу сказать одно, что это дело не двух недель и даже не двух месяцев.

Можно ссылку на js на сях?


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Vsevolod Stakhov , 15-Июл-16 12:02 
http://duktape.org/

Он достаточно тормозной по сравнению с v8 и уж тем более luajit, но JS спецификациям, вроде бы, соотвествует. Еще есть v7 от cesanta, но там бездна GPL оккупации и весьма специфический стиль. Со скоростью, когда я его смотрел, были катастрофические проблемы.


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено Vsevolod Stakhov , 15-Июл-16 12:07 
Очень интересный набор фич и производительность, спасибо за работу!

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


"Первый релиз многопоточного HTML-парсера MyHTML"
Отправлено lastmac , 15-Июл-16 18:13 
Спасибо!

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