Сбилдите плиз инсталлер
От: 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.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.