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

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


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

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

ЗЫ

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

Я тут поглядел на объем кода этого Json.NET и честно говоря офигел. Там мег кода. Это же больше половины объема занимаемого компилятором немерла! И все из-за казалось бы простенькой задачки. Отвык я от такого .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Сбилдите плиз инсталлер
От: hardcase Пират http://nemerle.org
Дата: 03.12.10 12:00
Оценка: +1
Здравствуйте, Ziaw, Вы писали:

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


Сериализацию/десериализацию реализовать не так уж и сложно — механизм, позволяющий построить полного "посетителя" для известного на этапе компиляции типа данных уже есть. Т.е. сериализатор можно сделать фактически "прямо сейчас".
/* иЗвиНите зА неРовнЫй поЧерК */
Сбилдите плиз инсталлер
От: Ziaw Россия  
Дата: 02.12.10 11:43
Оценка:
хочу встроить в npad компилятор, но текущей версии баг с захватом файлов.
не хочется билдить и выкладывать со своей версией компилятора.


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

Дебаг версия пегпарсера проигрывает релизному нютону в 3.5 раза. Что довольно неплохо для .

А релиз не собирается с кучей ошибок вида:
C:\Projects\JsonParser\JsonParser\Parser.n(16,4):Error: non local goto (block return?) detected (l3174)


Надеюсь, что проблема в компиляторе и она исправлена. билдил свежий Nemerle.Peg rev 9400 компилятором 9342
Re: Сбилдите плиз инсталлер
От: hardcase Пират http://nemerle.org
Дата: 02.12.10 11:52
Оценка:
Здравствуйте, Ziaw, Вы писали:


Z>А релиз не собирается с кучей ошибок вида:

Z>
Z>C:\Projects\JsonParser\JsonParser\Parser.n(16,4):Error: non local goto (block return?) detected (l3174)
Z>


Нужно отключить отключить генерирование отладочных символов в релизе <DebugSymbols>false</DebugSymbols>
/* иЗвиНите зА неРовнЫй поЧерК */
Re[2]: Сбилдите плиз инсталлер
От: Ziaw Россия  
Дата: 02.12.10 12:10
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Нужно отключить отключить генерирование отладочных символов в релизе <DebugSymbols>false</DebugSymbols>


Помогло, сделал нютона почти в полтора раза Приятно. Хотя ньютон чуть сложнее за счет парсинга своего формата даты. Может это его так тормозит?

Peg:       3021355688
newton:    4288512896


На таком вот тесте
      test = <#{ 
  a : 1, 
  b : "2",
  c : true,
  d : [null, '2', true,],
  "e" : { "a" : 1, b : '2', c : 3.14},
  f : null,
}
#>;

    [Test]
    public NewtonJsonBechmark() : void
    {
      def parser = Parser();
      def count = 100000;

      _ = parser.Parse(test);
      _ = JObject.Parse(test);
      
      def sw = Stopwatch();
      sw.Start();
      for (mutable i = 0; i < count; i++)
        _ = parser.Parse(test);
      sw.Stop();
      Console.WriteLine("Peg:\t{0}", sw.ElapsedTicks);
      
      def sw = Stopwatch();
      sw.Start();
      for (mutable i = 0; i < count; i++)
        _ = JObject.Parse(test);
      sw.Stop();
      Console.WriteLine("newton:\t{0}", sw.ElapsedTicks);
    }
  }


Попробую еще версию ньютона посвежее, он в блоге писал об оптимизации, посмотрим.
Re[3]: Сбилдите плиз инсталлер
От: Ziaw Россия  
Дата: 02.12.10 12:15
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Попробую еще версию ньютона посвежее, он в блоге писал об оптимизации, посмотрим.


Фейл, последний ньютон в полтора раза медленнее пега.

Peg:    3019991768
newton:    4519395488
Re[2]: Сбилдите плиз инсталлер
От: Ziaw Россия  
Дата: 02.12.10 12:16
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Нужно отключить отключить генерирование отладочных символов в релизе <DebugSymbols>false</DebugSymbols>


Но для npad все равно хочется компилятор без бага.
Re[3]: Сбилдите плиз инсталлер
От: hardcase Пират http://nemerle.org
Дата: 02.12.10 12:25
Оценка:
Здравствуйте, Ziaw, Вы писали:

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


H>>Нужно отключить отключить генерирование отладочных символов в релизе <DebugSymbols>false</DebugSymbols>


Z>Но для npad все равно хочется компилятор без бага.


Этот баг вызывается только PEG-макросом.
Происходит он от того, что Вольфхаунд задействовал мой хак для генерирования TExpr.Goto при построении ДКА. Как доделаю препроцессор C# — сяду разбираться с этим глюком (если до меня никто не отладит).
/* иЗвиНите зА неРовнЫй поЧерК */
Re[4]: Сбилдите плиз инсталлер
От: Ziaw Россия  
Дата: 02.12.10 12:27
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Этот баг вызывается только PEG-макросом.

H>Происходит он от того, что Вольфхаунд задействовал мой хак для генерирования TExpr.Goto при построении ДКА. Как доделаю препроцессор C# — сяду разбираться с этим глюком (если до меня никто не отладит).

Я про другой баг
Автор: Ziaw
Дата: 24.11.10
Re[3]: Сбилдите плиз инсталлер
От: hardcase Пират http://nemerle.org
Дата: 02.12.10 12:27
Оценка:
Здравствуйте, Ziaw, Вы писали:

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


H>>Нужно отключить отключить генерирование отладочных символов в релизе <DebugSymbols>false</DebugSymbols>


Z>Помогло, сделал нютона почти в полтора раза Приятно. Хотя ньютон чуть сложнее за счет парсинга своего формата даты. Может это его так тормозит?


Я думаю нужно больше разных тестов А так, да — приятно.
/* иЗвиНите зА неРовнЫй поЧерК */
Re: Сбилдите плиз инсталлер
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.12.10 14:37
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>хочу встроить в npad компилятор, но текущей версии баг с захватом файлов.

Z>не хочется билдить и выкладывать со своей версией компилятора.

А что мешает скомпилять компилятор самостоятельно из исходников? Без интеграции — это делается элементарно, вот таким вот батником:
set MSBuild="%SystemRoot%\Microsoft.NET\Framework\v3.5\msbuild.exe"
set NoPause=true
%MSBuild% NemerleAll.nproj /target:DevBuildQuickNccOnly /p:Configuration=Release /verbosity:n /p:NTargetName=Build
rem /verbosity:n /p:TargetName=Build
IF %errorlevel% == 0 call Reg-bins-2.cmd
pause



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


Z>Дебаг версия пегпарсера проигрывает релизному нютону в 3.5 раза. Что довольно неплохо для .


Z>А релиз не собирается с кучей ошибок вида:

Z>
Z>C:\Projects\JsonParser\JsonParser\Parser.n(16,4):Error: non local goto (block return?) detected (l3174)
Z>


Надо включить оптимизацию (в проекте <Optimize>true</Optimize>) и убрать генерацию pdb (в проекте <DebugSymbols>false</DebugSymbols>).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Сбилдите плиз инсталлер
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.12.10 15:21
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Фейл, последний ньютон в полтора раза медленнее пега.


Z>
Z>Peg:    3019991768
Z>newton:    4519395488
Z>


А что такое этот newton и на чем там парсер написан?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Сбилдите плиз инсталлер
От: WolfHound  
Дата: 02.12.10 16:27
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А что такое этот newton

Насколько я понял реч про это: http://james.newtonking.com/pages/json-net.aspx

VD>и на чем там парсер написан?

Рукопашный парсер на C#.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[2]: Сбилдите плиз инсталлер
От: Ziaw Россия  
Дата: 02.12.10 16:38
Оценка:
Здравствуйте, VladD2, Вы писали:

Z>>хочу встроить в npad компилятор, но текущей версии баг с захватом файлов.

Z>>не хочется билдить и выкладывать со своей версией компилятора.

VD>А что мешает скомпилять компилятор самостоятельно из исходников?


Вроде русским языком написано Хочу поставлять с версией которую можно скачать с сайта.

Впрочем если это проблема — подожду.
Re[3]: Сбилдите плиз инсталлер
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.12.10 17:06
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Вроде русским языком написано Хочу поставлять с версией которую можно скачать с сайта.


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

Z>Впрочем если это проблема — подожду.


Это не проблема, но выкладывать слишком часто тоже плохо.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Сбилдите плиз инсталлер
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 02.12.10 17:17
Оценка:
Здравствуйте, VladD2, Вы писали:

Z>>Впрочем если это проблема — подожду.

VD>Это не проблема, но выкладывать слишком часто тоже плохо.

Я автосборку по спецкоммитам пока выключил, чтобы собрать проект ее надо с сервера руками пнуть. Поэтому если надо собрать и выложить — пишите тут, сделаю.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[6]: Сбилдите плиз инсталлер
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.12.10 17:25
Оценка:
Здравствуйте, WolfHound, Вы писали:

VD>>А что такое этот newton

WH>Насколько я понял реч про это: http://james.newtonking.com/pages/json-net.aspx

Наверно. Не ясно только зачем json.net было назвать newton-ом и почему тогда без king.

Поглядел их исходники. там такая тонная кода!!! Мама, дорогая! Есть же не ленивые люди на свете.

Как я понял там два подхода. Сериализация/десериализация объектов и динамический интефейс.
Я правильно понимаю что именно его сравнивали?

VD>>и на чем там парсер написан?

WH>Рукопашный парсер на C#.

Есть же не ленивые программисты?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Сбилдите плиз инсталлер
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.12.10 17:29
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>
Z>Peg:       3021355688
Z>newton:    4288512896
Z>


А во что твой парсер конвертирует джейсон?

И доступен ли его код публично?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Сбилдите плиз инсталлер
От: catbert  
Дата: 02.12.10 20:09
Оценка:
Здравствуйте, Ziaw, Вы писали:

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


А парсером поделишься?
Re[2]: Сбилдите плиз инсталлер
От: Ziaw Россия  
Дата: 02.12.10 20:13
Оценка:
Здравствуйте, catbert, Вы писали:

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


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


Без проблем, только он пока наколенный. За полтора часа не осилил (это тока хардкейс могет ), часа 3 разбирался.

Причешу под стандарт, добавлю побольше тестов и опубликую гденить.
Re[4]: Сбилдите плиз инсталлер
От: Ziaw Россия  
Дата: 02.12.10 20:21
Оценка:
Здравствуйте, VladD2, Вы писали:

Z>>
Z>>Peg:       3021355688
Z>>newton:    4288512896
Z>>


VD>А во что твой парсер конвертирует джейсон?


В то же что и ньютон в тесте, в аст.

VD>И доступен ли его код публично?


Пока нет, это просто проверка пега была на простоту написания. Но планирую.

Вообще мне требуется не столько парсер джейсона, сколько удобный инструмент для работы с джейсоном вообще и парсер лишь его малая часть. Но требуется в перспективе, возможно на будущий год. Пока и так справляемся.
Re[7]: Сбилдите плиз инсталлер
От: Ziaw Россия  
Дата: 02.12.10 20:26
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Как я понял там два подхода. Сериализация/десериализация объектов и динамический интефейс.

VD>Я правильно понимаю что именно его сравнивали?

Именно его, по сути это и есть AST джейсона, только обвешанное нехилым апи, этакое ActiveAST.
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[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...
Пока на собственное сообщение не было ответов, его можно удалить.