Re[3]: Вынести процесс генерации MSIL-а в отдельную стадию
От: VladD2 Российская Империя www.nemerle.org
Дата: 07.07.10 07:04
Оценка:
Здравствуйте, SergASh, Вы писали:

VD>>Сейчас генерация кода методов производится сразу после окончания типизации их тел. Эмит структур данных должен происходить до того как они используются при генерации кода методов. Это создает серьезные проблемы. Так это препятствует генерации полей класса или модуля из макросов уровня выражений. Это происходит потому, что SRE-структуры генерируются после вызова метода TypwBuilder.Compile(), но после его вызова в класс уже невозможно добавить новые элементы.


SAS>В CCI это решено?


Мне кажется это можно решить даже на SRE. Тут нужно менять логику генерации кода компилятора. Сейчас код генерируется сразу после окончания компиляции кода. А надо чтобы сначала проходила типизация всех тел методов, а потом уже отдельным шагом генерировать МСИЛ.
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Nemerle 2.0
От: _nn_ www.nemerleweb.com
Дата: 12.07.10 04:48
Оценка:
Здравствуйте, VladD2, Вы писали:

Еще желаемые фичи.

Частичное применение вида:
  • _.Property = Value.
  • _.Property1 = _.Property2 = Value

    Операции == == , < < , < > , > > .
  • a == b == c
  • a < b < c
  • a < b > c
  • a > b > c

    А так же с <= , >= .
    Как в Python.
  • http://rsdn.nemerleweb.com
    http://nemerleweb.com
    Re[2]: Nemerle 2.0
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 12.07.10 13:14
    Оценка:
    Здравствуйте, _nn_, Вы писали:

    __>Еще желаемые фичи.


    __>Частичное применение вида:

    __>
  • _.Property = Value.
    __>
  • _.Property1 = _.Property2 = Value

    Это уже не частичное применение. Да и на таком объеме "x => " уже ни на что не влияет.

    __>Операции == == , < < , < > , > > .

    __>
  • a == b == c
    __>
  • a < b < c
    __>
  • a < b > c
    __>
  • a > b > c

    __>А так же с <= , >= .

    __>Как в Python.

    Ну, не знаю. На мой взгляд такое применение часто только в примерах нужно. Макросом это дело и сейчас можно сделать, а вот введение в синтаксис языка этого дела может быть не простым занятием.
  • http://nemerle.org/Banners/?g=dark
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re: Многопоточность
    От: hardcase Пират http://nemerle.org
    Дата: 13.07.10 06:43
    Оценка:
    Исходя из того, что планируется (где писалось не нашел) сделать дерево типов версионным, было бы неплохо добавить поддержку многопоточности в типизатор. Например параллельно типизировать несколько тел методов, это позволило бы некисло ускорить работу компилятора.
    http://nemerle.org/Banners/?t=Developer!&g=dark /* иЗвиНите зА неРовнЫй поЧерК */
    Re[2]: Многопоточность
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 13.07.10 15:42
    Оценка:
    Здравствуйте, hardcase, Вы писали:

    H>Исходя из того, что планируется (где писалось не нашел) сделать дерево типов версионным, было бы неплохо добавить поддержку многопоточности в типизатор. Например параллельно типизировать несколько тел методов, это позволило бы некисло ускорить работу компилятора.


    Для того все это и планируется.

    Думаю первым шагом будет просто рефакторинг того движка типизации что есть сейчас. Кое-какую многопоточность можно будет ввести уже на этом этапе. Но для полного кайфа нужно полность переписывать все это дело вводя версионность в структуры данных.
    http://nemerle.org/Banners/?g=dark
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re: Макросы высших порядков
    От: hardcase Пират http://nemerle.org
    Дата: 10.08.10 06:44
    Оценка:
    Сейчас компилятор на попытку объявить квазицитату с макросом:
    <[ decl: macro X(x) { x } ]>

    Сообщает следующее:
    [quote]
    quoting macro is not supported — macros should not create macros, it is Bad(TM)
    [/quote]

    Мне такое ограничение видится искусственным.
    http://nemerle.org/Banners/?t=Developer!&g=dark /* иЗвиНите зА неРовнЫй поЧерК */
    Re[2]: Макросы высших порядков
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 17.08.10 17:29
    Оценка:
    Здравствуйте, hardcase, Вы писали:

    H>Сейчас компилятор на попытку объявить квазицитату с макросом:

    H>
    H><[ decl: macro X(x) { x } ]>
    H>

    H>Сообщает следующее:
    H>[quote]
    H>quoting macro is not supported — macros should not create macros, it is Bad(TM)
    H>[/quote]

    H>Мне такое ограничение видится искусственным.


    А мне видится свершенно нормальным, учитывая компилируемую природу языка.
    "macro" это всег лишь точка входа. Ее генерировать бессмыселнно. Если же нужно генерировать мкро-код (т.е. код который в свою очередь будет порождать код), то это вполне возможно.
    http://nemerle.org/Banners/?g=dark
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[3]: Синтаксические макросв в Nemerle 2.0
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 01.11.10 17:42
    Оценка:
    Здравствуйте, VladD2, Вы писали:

    VD>Остается одна проблема — макрос все же пишется вручную и именно его создатель должен указывать все местоположения (и не забывать про мелкие детали вроде местоположений скобок и т.п.). Возможно для простых случаев имеет смысл ввести автоматическую генерацию AST (по некоторому алгоритму или шаблону). Тогда за такие места можно будет не волноваться. Но по любому добиться точной информации о местоположениях будте намного проще (и если что, будет ясно где искать баги).


    Похоже, что проблема ручного задания местоположений решена. Уже современный PegGrammar умеет указывать их автоматически. В новых синтаксических макросах мы будем автоматом сохранять все местоположения (значимые в самом AST, а не значимые (вроде местоположений литералов) в массивах прикрепляемых к АСТ).
    http://nemerle.org/Banners/?g=dark
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[2]: Вынести процесс генерации MSIL-а в отдельную стадию
    От: Воронков Василий Россия  
    Дата: 02.11.10 08:43
    Оценка:
    Здравствуйте, VladD2, Вы писали:

    VD>Вынесение генерации MSIL-а в отдельную стадию позволит избежать проблем подобных описанным выше, а так же сделает код более чистым и менее связанным.


    В идеале мне кажется сделать свой бэкенд — как минимум свой байт-код — и компилировать в него. Потом уже осуществлять поддержку конкретных бэкендов создавая трансляторы, например, свой байт код -> MSIL. Это если действительно хочется в перспективе поддерживать тот же LLVM и расширить, так сказать, клиентскую базу за пределы дотнетчиков. Плюс для своего бэкенда можно будет сварганить виртуальную машину и получить полноценный РЕПЛ.
    Re[3]: Вынести процесс генерации MSIL-а в отдельную стадию
    От: hardcase Пират http://nemerle.org
    Дата: 02.11.10 08:53
    Оценка:
    Здравствуйте, Воронков Василий, Вы писали:


    ВВ>Плюс для своего бэкенда можно будет сварганить виртуальную машину и получить полноценный РЕПЛ.


    РЕПЛ не нужен
    http://nemerle.org/Banners/?t=Developer!&g=dark /* иЗвиНите зА неРовнЫй поЧерК */
    Re[4]: Вынести процесс генерации MSIL-а в отдельную стадию
    От: Воронков Василий Россия  
    Дата: 02.11.10 08:54
    Оценка: :))
    Здравствуйте, hardcase, Вы писали:

    ВВ>>Плюс для своего бэкенда можно будет сварганить виртуальную машину и получить полноценный РЕПЛ.

    H>РЕПЛ не нужен

    Не, не прокатит. Я сегодня не в настроении.
    Re: Nemerle 2.0
    От: _nn_ www.nemerleweb.com
    Дата: 20.01.11 08:57
    Оценка: 9 (2) +2
    Здравствуйте, VladD2, Вы писали:

    VD>В этой теме будут публиковаться мысли связанные со второй версий компилятора.


    VD>Приблизительная тематика:

    VD>1. Список фич отложенных до 2.0 (которые не будут реализованы в 1.0 или будут реализованы не полностью).
    VD>2. Изменения планируемые на вторую версию.
    VD>3. Стратегические и идеологические мысли по поводу 2.0.
    VD>4. Технические аспекты.

    VD>ЗЫ


    VD>Просьбы не засорять тему обсуждениями (открывайте другие темы). Эта тема — копилка того что нужно не забыть реализовать в 2.0 и для серьезных вопросов.


    Добавить в match поддержку массивов и IEnumerable.
    http://rsdn.nemerleweb.com
    http://nemerleweb.com
    Re[3]: Вынести процесс генерации MSIL-а в отдельную стадию
    От: Visor2004  
    Дата: 20.01.11 12:47
    Оценка:
    Здравствуйте, Воронков Василий, Вы писали:

    что такое "РЕПЛ"?
    Помните!!! ваш говнокод кому-то предстоит разгребать.
    Re[4]: Вынести процесс генерации MSIL-а в отдельную стадию
    От: hardcase Пират http://nemerle.org
    Дата: 20.01.11 13:37
    Оценка:
    Здравствуйте, Visor2004, Вы писали:

    V>Здравствуйте, Воронков Василий, Вы писали:


    V>что такое "РЕПЛ"?


    REPL = Read-eval-print loop
    http://nemerle.org/Banners/?t=Developer!&g=dark /* иЗвиНите зА неРовнЫй поЧерК */
    Re: Nemerle 2.0
    От: hardcase Пират http://nemerle.org
    Дата: 21.01.11 08:21
    Оценка:
    Здравствуйте, VladD2, Вы писали:

    Интересная ссылка.
    http://nemerle.org/Banners/?t=Developer!&g=dark /* иЗвиНите зА неРовнЫй поЧерК */
    Re[2]: Nemerle 2.0
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 21.01.11 12:59
    Оценка:
    Здравствуйте, hardcase, Вы писали:

    H>Интересная ссылка.


    Что это?
    http://nemerle.org/Banners/?g=dark
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[3]: Nemerle 2.0
    От: Visor2004  
    Дата: 21.01.11 13:06
    Оценка:
    Здравствуйте, VladD2, Вы писали:

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


    H>>Интересная ссылка.


    VD>Что это?


    Lisp
    Помните!!! ваш говнокод кому-то предстоит разгребать.
    Re[4]: Nemerle 2.0
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 21.01.11 13:41
    Оценка:
    Здравствуйте, Visor2004, Вы писали:

    H>>>Интересная ссылка.

    VD>>Что это?
    V>Lisp

    Какое-то странное имя у этого диалекта — "A Meta Language Kit for the Web".
    http://nemerle.org/Banners/?g=dark
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[3]: [Snippets] Обновленный макрос with
    От: catbert  
    Дата: 21.01.11 14:00
    Оценка:
    Здравствуйте, VladD2, Вы писали:

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


    H>>Интересная ссылка.


    VD>Что это?


    Это диалект Scheme, который работает на виртуальной машине флеша и с помощью PEG (фактически там есть PEG-препроцессор, который превращает код в Scheme) парсит другой язык — Forall — похожий на Джаваскрипт, и скармливает его ВМ. Как-то так.

    Практически это наверное не особо полезно, потому что нативный для флеша ActionScript тоже похож на Джаваскрипт. Но поскольку в статье есть макросы, PEG, лисп и веб — она автоматически становится интересной
    http://nemerle.org/banners/?t=%20catbert%20
    Re[4]: [Snippets] Обновленный макрос with
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 21.01.11 14:29
    Оценка:
    Здравствуйте, catbert, Вы писали:

    C>Это диалект Scheme, который работает на виртуальной машине флеша и с помощью PEG (фактически там есть PEG-препроцессор, который превращает код в Scheme) парсит другой язык — Forall — похожий на Джаваскрипт, и скармливает его ВМ. Как-то так.


    Да предисловие я прочел. Но к чему это все?

    C>Практически это наверное не особо полезно, потому что нативный для флеша ActionScript тоже похож на Джаваскрипт. Но поскольку в статье есть макросы, PEG, лисп и веб — она автоматически становится интересной


    Ну, так не плохо было бы указать на то что там интересного. А то подобных работ не мало. И читать про каждую из них как-то не хочется.
    http://nemerle.org/Banners/?g=dark
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.