Size: a a a

2020 December 30

И

Игорь in dlang.ru
стрим токенов на входе, стрим токенов на выходк
источник

N

NC in dlang.ru
В расте то? У него близко к удобному подходу, сверху бы ещё приправить компайл тайм функциями.
источник

И

Игорь in dlang.ru
правда внутри нужно разобрать структуру того что ты получил, но тут как иначе
источник

N

NC in dlang.ru
А в ди мне не хватает то, что я не могу делать свои компайл тайм типы, где поля это типы.
источник

N

NC in dlang.ru
Вообще можно всё метапрограммирование выразить на том же языке, что используется для остальной части программы, главное в разборы AST деревьев не лезть.
источник

N

NC in dlang.ru
Например, в хаскелле мощные "макросы" на AST, пишешь хаскелль, который в компайлтайме разбирает дерево, умеет как разобрать кусок выражения, так и в него интерполировать уже разобранное, итого танцуя между разбором-подстановкой должен получать красивое метапрограммирование. Но на деле,  Template Haskell избегают максимально сильно, ибо:
1) AST код выглядит громоздко и сложно поддерживать
2) Сложно понять, что там тебе генерится и в каких количества, в типах выражения не отражено. Но можно хотя бы сдампать нагенеренный код.
3) Проблемная кросскомпиляция в ARM и JS
4) Template Haskell может в IO во время компиляции, что потенциально дырка
источник

0

000Sanya in dlang.ru
gui
rust 1.36 нельзя собрать 1.34
и непонятный
источник

0

000Sanya in dlang.ru
и совместимость обеспечивают в редакциях
источник

0

000Sanya in dlang.ru
если же конечно не критичное изменение
источник

0

000Sanya in dlang.ru
Игорь
с другой стороны в расте есть и плагины и процедурные макросы
плагинов по сути нет уже
источник

DH

Dark Hole in dlang.ru
NC
А в ди мне не хватает то, что я не могу делать свои компайл тайм типы, где поля это типы.
Можешь же, не?
источник

N

NC in dlang.ru
Я могу делать максимум списки типов и то через неявный интерфейс, а не через [T]
источник

N

NC in dlang.ru
Я не могу сделать аля struct MyTemp { Type a; Type b; } Типы не являются first class
источник

МВ

Макс Воробьев... in dlang.ru
NC
Я могу делать максимум списки типов и то через неявный интерфейс, а не через [T]
источник

N

NC in dlang.ru
Это всё же хак, можно элегантнее на самом деле
источник

DH

Dark Hole in dlang.ru
NC
Я не могу сделать аля struct MyTemp { Type a; Type b; } Типы не являются first class
Можешь template MyTemp { alias a = Type; alias b = Type }
источник

N

NC in dlang.ru
Dark Hole
Можешь template MyTemp { alias a = Type; alias b = Type }
Так и делаю, но заметь, что язык разбивается на два, один для метапрограммирования, другой для времени выполнения и частично для метапрограммирования.
источник

N

NC in dlang.ru
Нет никаких проблем же сделать его унифицированным для простоты.
источник

N

NC in dlang.ru
Разрешить в CTFE использовать типы как значения
источник

DH

Dark Hole in dlang.ru
NC
Нет никаких проблем же сделать его унифицированным для простоты.
Есть.
источник