Re[9]: [Nitra] Первые впечатления и вопросы
От: WolfHound  
Дата: 13.10.14 21:06
Оценка:
Здравствуйте, Дьяченко Александр, Вы писали:

ДА>1. Подправила одного правила имеют довольно сильную связь.

Не согласен.

ДА>2. Из п.1 вытекает, что исключать не противоречащие подправила не правильно... поэтому я и написал про 3 альтернативы

ДА>3. А из п.2 вытекает, что и в ошибках ождалось — Expected "{Number,}" or "{,Number}" or "{Number,Number}"
Боюсь, ты не понимаешь масштаб проблемы.
Наш думатель может найти вообще все варианты.
И если его не ограничивать, то он тебе вывалит лес деревьев эпичного размера.
Это:
1)Вредно. Тебе все эти варианты не нужны.
2)Медленно. У нас на всю работу 100 миллисекунд времени. Ибо это время реакции человека. Всё что меньше для человека мгновенно. Всё что больше тормозит.

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

Подумай. Только осторожно. Там столько экспонент в кустах прячется Я их уже много задавил. Последняя осталась.

ДА>PS. Кстати а почему не предлагает банальный вариант удалить запятую?

По тому, что его стоимость +3/-1(3 вставки одно удаление).
По нашей эвристике это даже хуже чем просто +4 у третьего варианта.
У выбранных вариантов стоимость +3.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[7]: [Nitra] Первые впечатления и вопросы
От: WolfHound  
Дата: 13.10.14 21:07
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Лучший вариант тут — грохнуть запятую.

Нет. Этот вариант +3/-1. Смотри грамматику внимательней.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[8]: [Nitra] Первые впечатления и вопросы
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.10.14 11:26
Оценка:
Здравствуйте, WolfHound, Вы писали:

VD>>Лучший вариант тут — грохнуть запятую.

WH>Нет. Этот вариант +3/-1. Смотри грамматику внимательней.

С какого переполоха? Будет 0/-1. Просто цикла там нет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: [Nitra] Первые впечатления и вопросы
От: WolfHound  
Дата: 14.10.14 13:14
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>С какого переполоха? Будет 0/-1. Просто цикла там нет.

Я уже понял. Вчера затупил.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[10]: [Nitra] Первые впечатления и вопросы
От: Дьяченко Александр Россия  
Дата: 14.10.14 15:57
Оценка:
Здравствуйте, WolfHound, Вы писали:

VD>>С какого переполоха? Будет 0/-1. Просто цикла там нет.

WH>Я уже понял. Вчера затупил.

Тогда почесу не предлагает?
... << RSDN@Home 1.2.0 alpha 5 rev. 76>>
Re[11]: [Nitra] Первые впечатления и вопросы
От: WolfHound  
Дата: 14.10.14 16:09
Оценка:
Здравствуйте, Дьяченко Александр, Вы писали:

VD>>>С какого переполоха? Будет 0/-1. Просто цикла там нет.

WH>>Я уже понял. Вчера затупил.
ДА>Тогда почесу не предлагает?
Не знаю. Там ещё много проблем. Я их пытаюсь решать.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: [Nitra] Первые впечатления и вопросы
От: Дьяченко Александр Россия  
Дата: 14.10.14 16:13
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Новая версия собралась. Твой второй пример прочухался (не виснет), но все же подтормаживает. Полностью все заработает кагда Вольфвхаунд победит экспоненту в обходчиках.

VD>В общем, скачай новую версию.

Скачал — уже гораздо лучше, за час Студия всего 2 раза померла .

Студия вешалась при работе со скобрами, с минимальным примером пока не получается.

Связано похоже с тем что граматику:
syntax module M1
{
    syntax S1 = E1;
    syntax S2 = { E2 };
    syntax S3 = E3;
}

Найтра не разбирает вообще, в Errors:
(1,1): Exception: Unexpected token: {

А вот если выделенную фигурную скобку заменить на круглую, то тогда разбирает:
(4, 20): Expected: ')'
(4, 21): Unexpected token: }

В большом примере это похоже накладывается на комбинаторный взрыв и Студия падает съев всю память.

Баг на "не разбор" грамматики завел:
NTR-44 Not parsing simple grammar
... << RSDN@Home 1.2.0 alpha 5 rev. 76>>
Re[7]: [Nitra] Первые впечатления и вопросы
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.10.14 17:23
Оценка:
Здравствуйте, Дьяченко Александр, Вы писали:

ДА>Скачал — уже гораздо лучше, за час Студия всего 2 раза померла .


Плохо.

ДА>Студия вешалась при работе со скобрами, с минимальным примером пока не получается.


По грамматике нитры фигурных скобок в этом месте действительно не должно быть. Фигурные скобки применимы только к квантификаторам циклов и как тело правила, но до тела и до квантификатора должно идти хотя бы одно другое правило.


ДА>Найтра не разбирает вообще, в Errors:

ДА>
ДА>(1,1): Exception: Unexpected token: {
ДА>


Но от этого исключения лететь не должны. Так что это точно баг.

ДА>Баг на "не разбор" грамматики завел:

ДА>NTR-44 Not parsing simple grammar

Эта грамматика ошибочна. Баг в том, что летит исключение, а не выдается сообщение об ошибке.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: [Nitra] Первые впечатления и вопросы
От: Дьяченко Александр Россия  
Дата: 15.10.14 00:36
Оценка:
Здравствуйте, VladD2, Вы писали:

ДА>>Студия вешалась при работе со скобрами, с минимальным примером пока не получается.

VD>По грамматике нитры фигурных скобок в этом месте действительно не должно быть. Фигурные скобки применимы только к квантификаторам циклов и как тело правила, но до тела и до квантификатора должно идти хотя бы одно другое правило.

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

ДА>>Баг на "не разбор" грамматики завел:

ДА>>NTR-44 Not parsing simple grammar
VD>Эта грамматика ошибочна. Баг в том, что летит исключение, а не выдается сообщение об ошибке.

То что грамматика не правильная я понимаю.
Вобщем надо переформулировать баг.
... << RSDN@Home 1.2.0 alpha 5 rev. 76>>
Re[7]: [Nitra] Первые впечатления и вопросы
От: WolfHound  
Дата: 15.10.14 22:19
Оценка: 6 (1)
Здравствуйте, Дьяченко Александр, Вы писали:

ДА>Баг на "не разбор" грамматики завел:

ДА>NTR-44 Not parsing simple grammar
Пофиксил. Ждём билд сервер.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re: [Nitra] Версия Nitra v0.1.1259.0
От: Дьяченко Александр Россия  
Дата: 19.10.14 16:18
Оценка:
Стало почти неплохо. Студия уже почти не падает, только подтормаживает временами...

  1. Со скобками еще не все проблемы решили, причем похоже вопрос уже не к памяти так как студия падает моментально, минимальный пример так воспроизвести и не смог.
    Пробовал подключиться второй Студией результат какой-то странный при тех же действиях получал исключение "JetBrains.Application.Progress.ProcessCancelledException", но при продолжении первая Студия не падает, вобщем попытка поймать подение ни к чему не привела, может от Решарпера какая наведенка....
    Файл Modula.nitra выглядит примерно так:
    namespace Awtl.Modula.Grammar
    {
        syntax module Modula
        {
            ... Куча правильных правил
    
            syntax EmptyStatement =
                ; <<< Здесь ругается (369, 4): Expected: RuleExpression
    
            ... Ещё куча правильных правил
    
            syntax VariableDesignator =
                EntireDesignator |
                IndexedDesignator |
                SelectedDesignator |
                DereferencedDesignator ;
                
            ... Куча кривого текста
        }
    }

    И вот при попытке преобразовать VariableDesignator в правильную форму, следующим способом:
    — выделяю "=" и давлюу Enter
    — вставляю "{"
    — выделяю ";" и давлюу Enter
    — давлю Backspace
    — вставляю "}"
    — делаю вертикальное выделение перед EntireDesignator и до DereferencedDesignator
    — печатаю "| "
    — удаляю "|" в конце правил
    Студия падает где-то между всавкой "}" и завершением последнего пункта.
  2. Так же после каких-то действий получил "System.OperationCanceledException" сначала в "Nitra.Internal.ExtensibleRuleParser.Parse", потом в "Nitra.ParserHost.DoParsingImpl", после чего отвалился разбор — на ввод любого символа получал тоже самое исключение, в тех же местах. Сложилось впечатление что это поведение является следствием переиспользования ParsingResult и поэтому после однократной установки свойства TerminateParsing в True, при последующих разборах сразу получаю OperationCanceledException в ExtensibleRuleParser.Parse.
  3. Ну и напоминаю про Roadmap, может создать задачу в трекере?.
... << RSDN@Home 1.2.0 alpha 5 rev. 76>>
Re[2]: [Nitra] Версия Nitra v0.1.1259.0
От: VladD2 Российская Империя www.nemerle.org
Дата: 31.10.14 15:17
Оценка:
Здравствуйте, Дьяченко Александр, Вы писали:

ДА>И вот при попытке преобразовать VariableDesignator в правильную форму, следующим способом:

ДА>- выделяю "=" и давлюу Enter
ДА>- вставляю "{"
ДА>- выделяю ";" и давлюу Enter
ДА>- давлю Backspace
ДА>- вставляю "}"
ДА>- делаю вертикальное выделение перед EntireDesignator и до DereferencedDesignator
ДА>- печатаю "| "
ДА>- удаляю "|" в конце правил
ДА>Студия падает где-то между всавкой "}" и завершением последнего пункта.

Что-то пробую воспроизвести и не получается. Видимо нужна эта самая куча кода.

Не мог бы ты прислать код который воспроизводит проблему?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: [Nitra] Версия Nitra v0.1.1259.0
От: Дьяченко Александр Россия  
Дата: 31.10.14 16:02
Оценка:
Здравствуйте, VladD2, Вы писали:

ДА>>И вот при попытке преобразовать VariableDesignator в правильную форму, следующим способом:

ДА>>- выделяю "=" и давлюу Enter
ДА>>- вставляю "{"
ДА>>- выделяю ";" и давлюу Enter
ДА>>- давлю Backspace
ДА>>- вставляю "}"
ДА>>- делаю вертикальное выделение перед EntireDesignator и до DereferencedDesignator
ДА>>- печатаю "| "
ДА>>- удаляю "|" в конце правил
ДА>>Студия падает где-то между всавкой "}" и завершением последнего пункта.

VD>Что-то пробую воспроизвести и не получается. Видимо нужна эта самая куча кода.


VD>Не мог бы ты прислать код который воспроизводит проблему?


Ссылка на исходник была в сообщении — Modula.nitra.
Сейчас специально проверил на последних сборках:
Nemerle — v1.2.399.0
Nitra — v0.1.1265.0
Эффект тот же.
... << RSDN@Home 1.2.0 alpha 5 rev. 76>>
Re[4]: [Nitra] Версия Nitra v0.1.1259.0
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.11.14 12:18
Оценка:
Здравствуйте, Дьяченко Александр, Вы писали:

ДА>Ссылка на исходник была в сообщении — Modula.nitra.


Сори, пропустил.

ДА>Эффект тот же.


Будем разбираться.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: [Nitra] Версия Nitra v0.1.1259.0
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.11.14 18:15
Оценка:
Здравствуйте, Дьяченко Александр, Вы писали:

ДА>Студия падает где-то между всавкой "}" и завершением последнего пункта.


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

ДА>
  • Так же после каких-то действий получил "System.OperationCanceledException" сначала в "Nitra.Internal.ExtensibleRuleParser.Parse", потом в "Nitra.ParserHost.DoParsingImpl", после чего отвалился разбор — на ввод любого символа получал тоже самое исключение, в тех же местах. Сложилось впечатление что это поведение является следствием переиспользования ParsingResult и поэтому после однократной установки свойства TerminateParsing в True, при последующих разборах сразу получаю OperationCanceledException в ExtensibleRuleParser.Parse.

    Это я воспроизвести не смог. Проверил, там все объекты создаются при постановке парсинга в очередь.
  • Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[2]: [Nitra] Версия Nitra v0.1.1259.0
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 06.11.14 19:19
    Оценка:
    Здравствуйте, Дьяченко Александр, Вы писали:

    ДА>
  • Так же после каких-то действий получил "System.OperationCanceledException" сначала в "Nitra.Internal.ExtensibleRuleParser.Parse", потом в "Nitra.ParserHost.DoParsingImpl", после чего отвалился разбор — на ввод любого символа получал тоже самое исключение, в тех же местах. Сложилось впечатление что это поведение является следствием переиспользования ParsingResult и поэтому после однократной установки свойства TerminateParsing в True, при последующих разборах сразу получаю OperationCanceledException в ExtensibleRuleParser.Parse.

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

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

    Отдал тормозящий пример Вольфхаунде. Надеюсь, он придумает как это фиксить.
  • Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[3]: [Nitra] Версия Nitra v0.1.1259.0
    От: WolfHound  
    Дата: 06.11.14 21:31
    Оценка:
    Здравствуйте, VladD2, Вы писали:

    VD>Отдал тормозящий пример Вольфхаунде.

    Как ты только людей не склоняешь...

    VD>Надеюсь, он придумает как это фиксить.

    Кто там козлит, я в общих чертах понял. Осталось понять, что делать.
    ... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
    Пусть это будет просто:
    просто, как только можно,
    но не проще.
    (C) А. Эйнштейн
    Re[3]: [Nitra] Версия Nitra v0.1.1259.0
    От: Дьяченко Александр Россия  
    Дата: 08.11.14 06:40
    Оценка:
    Здравствуйте, VladD2, Вы писали:

    ДА>>Студия падает где-то между всавкой "}" и завершением последнего пункта.

    VD>Нашел и задавил баг в выведении ошибки. Баг приводил к исключению (что-то там аут-оф-рендж). Других проблем воспроизвести не смог.
    VD>Попробуй новую версию, плиз, когда она соберется.

    Не получается пересобрать свой проект после обновления Nemerle (v1.2.401.0) и Nitra (v0.1.1283.0). При сборке пишет:
    C:\Users\Александр\Documents\Visual Studio 2013\Projects\Awtl.Modula\Awtl.Modula.Grammar\ModulaGrammar.nitra(1,1): error : Не удалось загрузить файл или сборку "Nitra.Core, Version=0.1.1271.0, Culture=neutral, PublicKeyToken=e080a9c724e2bfcd" либо одну из их зависимостей. Не удается найти указанный файл.

    И вообще что то у вас с версиями странное:
    NitraSetup.msi — 0.1.1283.0

    Nitra.Compiler.dll — 0.1.1271.0
    Nitra.Core.dll — 0.1.1267.0
    Nitra.exe — 0.1.1283.0
    Nitra.Grammar.dll — 0.1.1271.0
    Nitra.Quote.dll — 0.1.1283.0
    Nitra.Runtime.dll — 0.1.1267.0
    Nitra.TestsLauncher.exe — 1.0.0.0
    Nitra.Visualizer.exe — 1.0.0.0
    Nitra.VisualStudio.dll — 0.1.1283.0
    ... << RSDN@Home 1.2.0 alpha 5 rev. 76>>
    Re[4]: [Nitra] Версия Nitra v0.1.1259.0
    От: hardcase Пират http://nemerle.org
    Дата: 17.11.14 13:31
    Оценка:
    Здравствуйте, Дьяченко Александр, Вы писали:

    ДА>И вообще что то у вас с версиями странное:

    ДА>NitraSetup.msi — 0.1.1283.0

    ДА>Nitra.Compiler.dll — 0.1.1271.0

    ДА>Nitra.Core.dll — 0.1.1267.0
    ДА>Nitra.exe — 0.1.1283.0
    ДА>Nitra.Grammar.dll — 0.1.1271.0
    ДА>Nitra.Quote.dll — 0.1.1283.0
    ДА>Nitra.Runtime.dll — 0.1.1267.0
    ДА>Nitra.TestsLauncher.exe — 1.0.0.0
    ДА>Nitra.Visualizer.exe — 1.0.0.0
    ДА>Nitra.VisualStudio.dll — 0.1.1283.0

    Это какой-то неправильный инсталлятор выложился. В текущем такой проблемы нет.
    /* иЗвиНите зА неРовнЫй поЧерК */
    Re[5]: [Nitra] Версия Nitra v0.1.1259.0
    От: Дьяченко Александр Россия  
    Дата: 18.11.14 15:45
    Оценка:
    Здравствуйте, hardcase, Вы писали:

    H>Здравствуйте, Дьяченко Александр, Вы писали:


    ДА>>И вообще что то у вас с версиями странное:

    ДА>>NitraSetup.msi — 0.1.1283.0

    ДА>>Nitra.Compiler.dll — 0.1.1271.0

    ДА>>Nitra.Core.dll — 0.1.1267.0
    ДА>>Nitra.exe — 0.1.1283.0
    ДА>>Nitra.Grammar.dll — 0.1.1271.0
    ДА>>Nitra.Quote.dll — 0.1.1283.0
    ДА>>Nitra.Runtime.dll — 0.1.1267.0
    ДА>>Nitra.TestsLauncher.exe — 1.0.0.0
    ДА>>Nitra.Visualizer.exe — 1.0.0.0
    ДА>>Nitra.VisualStudio.dll — 0.1.1283.0

    H>Это какой-то неправильный инсталлятор выложился. В текущем такой проблемы нет.


    Последний который смотрел — 0.1.1296.0, в нем уже лучше 2 версии — в основном 0.1.1296.0, а Nitra.Quote.dll и Nitra.Runtime.dll — 0.1.1296.0.
    Но по-крайне мере мой проект собирается.
    Я вобще-то думал что у вас так много стадий сборки как-раз из-за BootStapping-а и что бы получать одну версию.
    ... << RSDN@Home 1.2.0 alpha 5 rev. 76>>
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.