Re[8]: Сбилдите плиз инсталлер
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.12.10 21:18
Оценка: 13 (1)
Здравствуйте, Ziaw, Вы писали:

Z>Именно его, по сути это и есть AST джейсона, только обвешанное нехилым апи, этакое ActiveAST.


Варианты тут куда больше к месту были бы.

Но интересно другое. А как со скоростью у их сериализатора объектов?

ЗЫ

Кстати, было бы прикольно сделать аналог сериализатора объектов в виде макроса. Пометил некий класс макро-атрибутом и на выходе имеем функции сериализации/десериализации. Причем работающие со скорость рукописного кода, а не через рефлексию.

Я тут поглядел на объем кода этого Json.NET и честно говоря офигел. Там мег кода. Это же больше половины объема занимаемого компилятором немерла! И все из-за казалось бы простенькой задачки. Отвык я от такого .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Сбилдите плиз инсталлер
От: Ziaw Россия  
Дата: 03.12.10 06:54
Оценка:
Здравствуйте, VladD2, Вы писали:

Z>>Именно его, по сути это и есть AST джейсона, только обвешанное нехилым апи, этакое ActiveAST.


VD>Варианты тут куда больше к месту были бы.


Ну меня варианты, у него естественно нет.

VD>Но интересно другое. А как со скоростью у их сериализатора объектов?


по его тестам неплохо http://james.newtonking.com/archive/2010/01/01/net-serialization-performance-comparison.aspx

VD>Кстати, было бы прикольно сделать аналог сериализатора объектов в виде макроса. Пометил некий класс макро-атрибутом и на выходе имеем функции сериализации/десериализации. Причем работающие со скорость рукописного кода, а не через рефлексию.


Да. Если мне понадобится именно сериализатор объектов именно так и сделаю. Только мне нужнее удобный dsl по работе с джейсоном (в виде аст) напрямую из кода. У меня мало строго структурированных объектов.

VD>Я тут поглядел на объем кода этого Json.NET и честно говоря офигел. Там мег кода. Это же больше половины объема занимаемого компилятором немерла! И все из-за казалось бы простенькой задачки. Отвык я от такого .


+1
Re[4]: Сбилдите плиз инсталлер
От: Ziaw Россия  
Дата: 03.12.10 07:54
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Да все равно рано или поздно они разойдутся. Положи длл-и нужной версии рядом и используй их.


Разойдутся, но мне будет неприятно, если кто-то скачает исходники, соберет последней версией немерла, а он упадет. Объяснять, что для сборки npad нужно собрать немрл считаю дикостью.
Re[9]: Сбилдите плиз инсталлер
От: Ka3a4oK  
Дата: 03.12.10 09:57
Оценка:
VD>Я тут поглядел на объем кода этого Json.NET и честно говоря офигел. Там мег кода. Это же больше половины объема занимаемого компилятором немерла! И все из-за казалось бы простенькой задачки. Отвык я от такого .

Кстати можно допилить парсер json на немерле до функциональности ньютона(добавть своих фич). Затем написать по этому поводу статью по типу той которую Влад писал для генератора отчетов. В статье привести сравнени ньютона и нашего парсера по скорости, объему кода, человеко-часах. Статью хорошо перевести на английски и приготовиться к холивару . Это будет понятный и не абстрактный пример преимущества немерле перед C#.
Re[10]: Сбилдите плиз инсталлер
От: Ziaw Россия  
Дата: 03.12.10 11:14
Оценка:
Здравствуйте, Ka3a4oK, Вы писали:

VD>>Я тут поглядел на объем кода этого Json.NET и честно говоря офигел. Там мег кода. Это же больше половины объема занимаемого компилятором немерла! И все из-за казалось бы простенькой задачки. Отвык я от такого .


KK>Кстати можно допилить парсер json на немерле до функциональности ньютона(добавть своих фич). Затем написать по этому поводу статью по типу той которую Влад писал для генератора отчетов. В статье привести сравнени ньютона и нашего парсера по скорости, объему кода, человеко-часах. Статью хорошо перевести на английски и приготовиться к холивару . Это будет понятный и не абстрактный пример преимущества немерле перед C#.


Допилить до равных возможностей даже на немерле будет ой как долго.

Ньютон это не только парсер, это еще сериализер/десериализер объектов работающий под разные дотнеты и сильверлайты. Поддерживает json и bson. Вобщем фич там понапихано столько, что реализовать их все нереально. Если не реализовать все, то смысла холиварить нету, ну да меньше фич меньше кода, и работает быстрее потому, что возможностей меньше.
Re[11]: Сбилдите плиз инсталлер
От: hardcase Пират http://nemerle.org
Дата: 03.12.10 12:00
Оценка: +1
Здравствуйте, Ziaw, Вы писали:

Z>Ньютон это не только парсер, это еще сериализер/десериализер объектов работающий под разные дотнеты и сильверлайты. Поддерживает json и bson. Вобщем фич там понапихано столько, что реализовать их все нереально.


Сериализацию/десериализацию реализовать не так уж и сложно — механизм, позволяющий построить полного "посетителя" для известного на этапе компиляции типа данных уже есть. Т.е. сериализатор можно сделать фактически "прямо сейчас".
/* иЗвиНите зА неРовнЫй поЧерК */
Re[10]: Сбилдите плиз инсталлер
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.12.10 17:47
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>по его тестам неплохо http://james.newtonking.com/archive/2010/01/01/net-serialization-performance-comparison.aspx


Там сравнение с черт знает чем. Хорошо бы сравнить с тем самым парсером. Понятно, что при сравнении с бинари-форматером можно выглядеть не плохо даже используя рефлексию.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Сбилдите плиз инсталлер
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.12.10 17:48
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Разойдутся, но мне будет неприятно, если кто-то скачает исходники, соберет последней версией немерла, а он упадет. Объяснять, что для сборки npad нужно собрать немрл считаю дикостью.


Пока ты до релиза доберешся инсталялтор уже два раза обнвоится.

Я сейчас колдую над оптимизацией разрешения перегрузки. Как доделаю — выложим новый инсталлятор.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Сбилдите плиз инсталлер
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.12.10 18:23
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>...работает быстрее потому, что возможностей меньше.


Это ты наговариваешь. С точки зрения парсинга по фигу есть ли поддержка левого формата даты или нет, если сама дата не разбирается. Выигрыш в скорости парсинга определяется алгоритмами разбора задействованными абстракциями. PegGrammar генерирует весьма производительный код. Благодаря тому, что код генерируется макрами получается избежать применения высокоуровневых абстракций. В купе с грамотным набором алгоритмов (мемоизация, применение ДКА для разбора литералов и т.п.) получается весьма приличный результат.

В общем, этот генератор парсеров делается как прототип будущего компилятора немерла. И нам очень важно было убедиться, что ПЕГ позволяет обеспечить приемлемую производительность.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Сбилдите плиз инсталлер
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.12.10 18:27
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Здравствуйте, catbert, Вы писали:


Z>>>Да, еще, меня тут как раз бесил NewtonJson, хардкейс натолкнул на мысль и я решил написать ему замену.


C>>А парсером поделишься?


Z>... часа 3 разбирался.


На фоне времени которое делают NewtonJson это звучит очень смешно.

Z>Причешу под стандарт, добавлю побольше тестов и опубликую гденить.


Желательно ни где-нить, а вот здесь:
http://code.google.com/p/nemerle/source/browse/nemerle/trunk/snippets/

Примеры использования должны быть в одном месте. Чтобы люди не разыскивали их где попало.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Сбилдите плиз инсталлер
От: Ziaw Россия  
Дата: 03.12.10 18:39
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Пока ты до релиза доберешся инсталялтор уже два раза обнвоится.


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

VD>Я сейчас колдую над оптимизацией разрешения перегрузки. Как доделаю — выложим новый инсталлятор.


ок
Re[12]: Сбилдите плиз инсталлер
От: Ziaw Россия  
Дата: 03.12.10 18:43
Оценка:
Здравствуйте, hardcase, Вы писали:

Z>>Ньютон это не только парсер, это еще сериализер/десериализер объектов работающий под разные дотнеты и сильверлайты. Поддерживает json и bson. Вобщем фич там понапихано столько, что реализовать их все нереально.


H>Сериализацию/десериализацию реализовать не так уж и сложно — механизм, позволяющий построить полного "посетителя" для известного на этапе компиляции типа данных уже есть. Т.е. сериализатор можно сделать фактически "прямо сейчас".


Любую конкретную фичу оттуда сделать не сложно. Не надо меня переубеждать Я лишь высказал справедливое опасение, что никто за это не возьмется ради спортивного интереса.
Re[7]: Сбилдите плиз инсталлер
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.12.10 18:47
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>До какого релиза?


Который люди не тестить будут качать, а для повседневного использования.

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


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

Доведешь до ума, переложим в снипеты и добавим в основной инсталлятор. Плюс можно сделать отдельную не инсталлируемую версию (для тех кто не хочет или не может msi ставить).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: Сбилдите плиз инсталлер
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.12.10 18:49
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Любую конкретную фичу оттуда сделать не сложно. Не надо меня переубеждать Я лишь высказал справедливое опасение, что никто за это не возьмется ради спортивного интереса.


Думаю, что все фичи и не нужны. А вот сериализация объектов была бы приятным бонусом.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Сбилдите плиз инсталлер
От: Ziaw Россия  
Дата: 03.12.10 18:52
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Ziaw, Вы писали:


Z>>...работает быстрее потому, что возможностей меньше.


VD>Это ты наговариваешь. С точки зрения парсинга по фигу есть ли поддержка левого формата даты или нет, если сама дата не разбирается. Выигрыш в скорости парсинга определяется алгоритмами разбора задействованными абстракциями. PegGrammar генерирует весьма производительный код. Благодаря тому, что код генерируется макрами получается избежать применения высокоуровневых абстракций. В купе с грамотным набором алгоритмов (мемоизация, применение ДКА для разбора литералов и т.п.) получается весьма приличный результат.


Хотелось бы для облегчения абстракций иметь возможность не писать правила возвращающие char, string, числовые типы. Так же не писать правила возвращающие один из многих результатов, типа:
  a : char = 'a';
  b : char = 'b';
  c : char = 'c';
  abc : char (a / b/ c);

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

VD>В общем, этот генератор парсеров делается как прототип будущего компилятора немерла. И нам очень важно было убедиться, что ПЕГ позволяет обеспечить приемлемую производительность.


Производительность вполне приличная. Юзабили пока далеко от идеала.
Re[13]: Сбилдите плиз инсталлер
От: VladD2 Российская Империя www.nemerle.org
Дата: 05.12.10 07:12
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Хотелось бы для облегчения абстракций иметь возможность не писать правила возвращающие char, string, числовые типы. Так же не писать правила возвращающие один из многих результатов, типа:

Z>
Z>  a : char = 'a';
Z>  b : char = 'b';
Z>  c : char = 'c';
Z>  abc : char (a / b/ c);
Z>

Z>Писать методы для каждого правила довольно странно.

Дык, и не надо этого делать. Правила a, b и c в приведенном виде можно смело опустить (заинлайнить).

Z>Я понимаю, что кому-то нужны локейшены, но я бы предложил генерировать такие правила автоматом при отсутствии. Плюс нужна возможность указать свой метод для правила, копипастить не люблю.


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

ЗЫ

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

VD>>В общем, этот генератор парсеров делается как прототип будущего компилятора немерла. И нам очень важно было убедиться, что ПЕГ позволяет обеспечить приемлемую производительность.


Z>Производительность вполне приличная. Юзабили пока далеко от идеала.


Ну, дык предлагайте улучшения. Только не в стиле того анекдота "вы ученые вы думайте", а продумано, с примерами и толковым описанием.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.