Информация об изменениях

Сообщение Re[21]: Опциональные типы от 09.03.2017 3:59

Изменено 09.03.2017 4:03 vdimas

Re[21]: Опциональные типы
Здравствуйте, fddima, Вы писали:

F>Шейдерные диалекты пожалуйста спусти в унитаз. Там размеры ультракрошечные и никомуненужечные почти


Тем не менее, юзают.
Это же почти С.


F>EDG же пишет что MS вроде как их юзают в IDE но никак ни в компиляторе. Насчет icc — ещё более пространственные намёки.


NDA — оно такое, угу. ))
EDG is a front-end used by Intel and Comeau.


F> Я хер не знаю что такое EDG, И знать не хочу как он устроен, если эти дибилы его сделали на GLR и ты там работаешь — вы сами себе доктор. Если эти дибилы его просто сделали на GLR — то опять дибилы. Пойми, что в современных процах исключительно все data-dependent algorithms — сосут адски по скорости потому что предсказание ветвлений будет обламываться часто. Хотите скорости... изучайте матчасть проца. Т.е. развопачивайте. Что вручную и делают. В конкретных (т.е. целый язык — ситуациях).


Ммм... Ну вот поэтому не всегда однозначно, какой код лучше для парсинга — на условных ветвлениях или на таблице переходов.
Потому что в первом случае предсказатель может ошибиться и сбросить конвейер, а в другом случае таблица переходов может быть достаточно велика и сбрасывать кеш проца при ходьбе по ней.

Вопрос (не уверен, что правльно понял): алгоритм работы лексера — это "data-dependent algorithms"?
Ну вот базовый LR(0), из которого сделали GLR, он работает примерно по алгоритму лексера.


F>Мэйнстрим нахер о таком не знает потому что icc и мэйнстрим — это вообще вещи несвязные.


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


F> В общем или обрисуй прямо выкладками или давай примем то, как оно есть — в C++ мэйнстриме пока, что побеждают рукописники RD/LL. Никаких альтернатив тут нет. Причину я уже выше озвучил почему табличники в наиве сосут. Неужели это не было ясно с самого начала?


Табличные парсеры работают БЕЗ условных ветвлений.
Это безусловное косвенное извлечение данных.
Современные процы умеют делать такое извлечение еще на этапе предвыборки, т.е. такие вещи занимают ровно 0 тактов процессора (если данные уже в кеше).


F>Тем более одно дело если у нас шарп илиЯва. А C++ с его forced forward declarations — там RD/LL просто делает это.


Порой LL — наихудшее решение.


F>Вот распрасить тот же шарп — посложнее.


Разве?
Грамматика более однозначная.


F>А вот плюсы — в том то и дело что за счёт forward declarations — тривиально.


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


F>Классический просто порождает херову ненужную тучу (ага, а всё равно не бесплатную) вариантов.


Ну вот при разборе арифметических выражений, взаимных вызовов ф-ий, операторов языка — не порождает никаких вариантов.
Потому что однозначность.


F>Статьи наглядно показывают соотношения вариантов и единственного правильного пути. 1/30К по сути.


В какой грамматике и в каких данных?
В случае 1/30к у LL-парсера будет 30к откатов.


F>WH, в отличие от тебя хоть как-то пытается аргументировать.


Нет, не пытается.
Он пытается попускать окружающих или сыпет "аргументами" уровня букваря и обрывками прочитанного из Сети, даже мало относящегося к конкретному спору. Офтоп от него — дело обычное. Часто меняет тему, часто пытается перекрутить исходный спор.
ИМХО, это НЕ аргументы, это шумовой фон с целью раскидать внимание собеседника.
И я не уверен, что он это делает специально.
Просто не видит свою линию защиты со стороны.


F>Ты же аппплируешь к вещам никому неизвестным. Тот же EDG. Аппелировать к чёрному ящику — это неспортивно. Во-вторых — в коммерческих продуктах как ты говоришь "ВСЕХ" оно точно не используется.


Оно точно используется почти во всех.


F>Мда. Шейдерные языки. Посмеши нас ещё раз пожалуйста. Шейдерные языки или мегабайты парсинга.


Показанная мною неоднозначность С++ характерна и для С.
Как раз-таки шаблонные навороты С++ НИКАКОЙ неоднозначности не добавляют.
А мы же о неоднозначностях говорим, верно?


F>Я легко читаю и приемлю твои свободные определения некотоых вещей. Но странно — от других ты резко требуешь классику. С чего бы.


Потому я никогда никого не "ловлю", я просто делюсь инфой и могу напомнить некие вводные положения по некоей теме перед тем, как собираюсь что-то озвучить из той области. Считаю этот подход единственно адекватным. Здесь никто никому и ничем не обязан. Мы можем только делиться некоей инфой. Кому захочется больше — тот будет копать больше. Если что-то будет непонятно — можно спросить.

И это, ес-но, противоположный подход тому, что некоторые пытаются кого-то там "поймать на незнании" и больше никакой цели не имеют. ))
Мало того, что сами по себе такием манеры г-но... Тут ведь еще изволь сам тогда соответствовать, верно?
Да вот не изволят нифига в 100% случаев. )))
Потому что это вообще наивность, вот такая "ловля" при работающем интернете у оппоненета.
Ну даже если не владел чем-то оффтопным на некий момент, и?
Назавтра почитал и уже владеет.
Т.е., сам по себе такой подход, помимо того, что это снобистские г-но манеры, так это еще откровенный идиотизм получается (по описанным причинам).


F>Вот VD2 vs WH — это круто. Тож спорят ниочём. Но хотя б пластинка была новая.


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


F>Я эт к чему. Не потому что умный. Наоборот. Хочу новых страстей почитать.


Это ты был навеселе, похоже. ))
Re[21]: Опциональные типы
Здравствуйте, fddima, Вы писали:

F>Шейдерные диалекты пожалуйста спусти в унитаз. Там размеры ультракрошечные и никомуненужечные почти


Тем не менее, юзают.
Это же почти С.


F>EDG же пишет что MS вроде как их юзают в IDE но никак ни в компиляторе. Насчет icc — ещё более пространственные намёки.


NDA — оно такое, угу. ))
EDG is a front-end used by Intel and Comeau.


F> Я хер не знаю что такое EDG, И знать не хочу как он устроен, если эти дибилы его сделали на GLR и ты там работаешь — вы сами себе доктор. Если эти дибилы его просто сделали на GLR — то опять дибилы. Пойми, что в современных процах исключительно все data-dependent algorithms — сосут адски по скорости потому что предсказание ветвлений будет обламываться часто. Хотите скорости... изучайте матчасть проца. Т.е. развопачивайте. Что вручную и делают. В конкретных (т.е. целый язык — ситуациях).


Ммм... Ну вот поэтому не всегда однозначно, какой код лучше для парсинга — на условных ветвлениях или на таблице переходов.
Потому что в первом случае предсказатель может ошибиться и сбросить конвейер, а в другом случае таблица переходов может быть достаточно велика и сбрасывать кеш проца при ходьбе по ней.

Вопрос (не уверен, что правльно понял): алгоритм работы лексера — это "data-dependent algorithms"?
Ну вот базовый LR(0), из которого сделали GLR, он работает примерно по алгоритму лексера.


F>Мэйнстрим нахер о таком не знает потому что icc и мэйнстрим — это вообще вещи несвязные.


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


F> В общем или обрисуй прямо выкладками или давай примем то, как оно есть — в C++ мэйнстриме пока, что побеждают рукописники RD/LL. Никаких альтернатив тут нет. Причину я уже выше озвучил почему табличники в наиве сосут. Неужели это не было ясно с самого начала?


Табличные парсеры работают БЕЗ условных ветвлений.
Это безусловное косвенное извлечение данных.
Современные процы умеют делать такое извлечение еще на этапе предвыборки, т.е. такие вещи занимают ровно 0 тактов процессора (если данные уже в кеше).


F>Тем более одно дело если у нас шарп илиЯва. А C++ с его forced forward declarations — там RD/LL просто делает это.


Порой LL — наихудшее решение.


F>Вот распрасить тот же шарп — посложнее.


Разве?
Грамматика более однозначная.


F>А вот плюсы — в том то и дело что за счёт forward declarations — тривиально.


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


F>Классический просто порождает херову ненужную тучу (ага, а всё равно не бесплатную) вариантов.


Ну вот при разборе арифметических выражений, взаимных вызовов ф-ий, операторов языка — не порождает никаких вариантов.
Потому что однозначность.


F>Статьи наглядно показывают соотношения вариантов и единственного правильного пути. 1/30К по сути.


В какой грамматике и в каких данных?
В случае 1/30к у LL-парсера будет 30к откатов.


F>WH, в отличие от тебя хоть как-то пытается аргументировать.


Нет, не пытается.
Он пытается попускать окружающих или сыпет "аргументами" уровня букваря и обрывками прочитанного из Сети, даже мало относящегося к конкретному спору. Офтоп от него — дело обычное. Часто меняет тему, часто пытается перекрутить исходный спор.
ИМХО, это НЕ аргументы, это шумовой фон с целью раскидать внимание собеседника.
И я не уверен, что он это делает специально.
Просто не видит свою линию защиты со стороны.


F>Ты же аппплируешь к вещам никому неизвестным. Тот же EDG. Аппелировать к чёрному ящику — это неспортивно. Во-вторых — в коммерческих продуктах как ты говоришь "ВСЕХ" оно точно не используется.


Оно точно используется почти во всех.


F>Мда. Шейдерные языки. Посмеши нас ещё раз пожалуйста. Шейдерные языки или мегабайты парсинга.


Показанная мною неоднозначность С++ характерна и для С.
Как раз-таки шаблонные навороты С++ НИКАКОЙ неоднозначности не добавляют.
А мы же о неоднозначностях говорим, верно?


F>Я легко читаю и приемлю твои свободные определения некотоых вещей. Но странно — от других ты резко требуешь классику. С чего бы.


Потому я никогда никого не "ловлю", я просто делюсь инфой и могу напомнить некие вводные положения по некоей теме перед тем, как собираюсь что-то озвучить из той области. Считаю этот подход единственно адекватным. Здесь никто никому и ничем не обязан. Мы можем только делиться некоей инфой. Кому захочется больше — тот будет копать больше. Если что-то будет непонятно — можно спросить.

И это, ес-но, противоположный подход тому, что некоторые пытаются кого-то там "поймать на незнании" и больше никакой цели не имеют. ))
Мало того, что сами по себе такием манеры г-но... Тут ведь еще изволь сам тогда соответствовать, верно?
Да вот не изволят нифига в 100% случаев. )))
Потому что это вообще наивность, вот такая "ловля" при работающем интернете у оппоненета.
Ну даже если твой оппонент не владел чем-то оффтопным на некий момент, и?
Назавтра почитал и уже владеет.
Т.е., сам по себе такой подход, помимо того, что это снобистские г-но манеры, так это еще откровенный идиотизм получается (по описанным причинам).


F>Вот VD2 vs WH — это круто. Тож спорят ниочём. Но хотя б пластинка была новая.


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


F>Я эт к чему. Не потому что умный. Наоборот. Хочу новых страстей почитать.


Это ты был навеселе, похоже. ))