Size: a a a

2020 April 28

DS

Doge Shibu in rust_offtopic
Про макросы где-то ещё раньше было
источник

e

egoarka in rust_offtopic
polunin.ai
зачем? я показал валидный ЖС но невалидный ТС
ок, я подумал наоборот
источник

Т8

Т-34 85 in rust_offtopic
Doge Shibu
Чтобы были макросы, которые работают уже с распаршенными компилятором синтаксическим деревом. А в идеале ещё и с уже типизированным компилятором деревом выражений
Почему не сделали так?
источник

Т8

Т-34 85 in rust_offtopic
Есть мысли?
источник

DS

Doge Shibu in rust_offtopic
Т-34 85
Почему не сделали так?
Типа чтобы не палить внутренние представления компилятора внешнему миру, чтобы можно было их легко ломать при правках.
источник

DS

Doge Shibu in rust_offtopic
Но ничего не мешало сделать какие-то свои АСТ специально для макросов
источник

DS

Doge Shibu in rust_offtopic
Но видимо нет ресурсов на это
источник

Т8

Т-34 85 in rust_offtopic
Doge Shibu
Но видимо нет ресурсов на это
Получается, они выбрали меньшее из зол?
источник

DS

Doge Shibu in rust_offtopic
Т-34 85
Получается, они выбрали меньшее из зол?
Они выбрали самый простой для себя вариант, но самый не удобный для разработчика.

Как пример удобных макросов:
https://dotty.epfl.ch/docs/reference/metaprogramming/macros.html
источник

p

polunin.ai in rust_offtopic
Doge Shibu
Но видимо нет ресурсов на это
зато на асинк/эвейт есть
источник

p

polunin.ai in rust_offtopic
Doge Shibu
Они выбрали самый простой для себя вариант, но самый не удобный для разработчика.

Как пример удобных макросов:
https://dotty.epfl.ch/docs/reference/metaprogramming/macros.html
то есть там просто вместо макроса подставляется вызов функции?
источник

Т8

Т-34 85 in rust_offtopic
Doge Shibu
Они выбрали самый простой для себя вариант, но самый не удобный для разработчика.

Как пример удобных макросов:
https://dotty.epfl.ch/docs/reference/metaprogramming/macros.html
Слушай, в шарпе же нет вообще макросов, ничего же. А в скале есть?
источник

DS

Doge Shibu in rust_offtopic
Т-34 85
Получается, они выбрали меньшее из зол?
Точнее надо добавить, что в идеальном мире должны быть доступны три вида макрсоов:

из токен стрима в токен стрим (это есть сейчас в расте)
из нетипизированного аст в нетипизрованное аст
из типизированного аст в типизированное аст (это то, что я скинул по ссылке)
источник

Т8

Т-34 85 in rust_offtopic
polunin.ai
то есть там просто вместо макроса подставляется вызов функции?
Заинлайненная функция
источник

DS

Doge Shibu in rust_offtopic
Т-34 85
Слушай, в шарпе же нет вообще макросов, ничего же. А в скале есть?
В скале есть. В скале - вообще несколько экспериментальный макросистем. В скале 3 - будет то, что я прислал по ссылке выше
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
то есть там просто вместо макроса подставляется вызов функции?
Нет, там как syn/quote, только на типизированных аст. Из плюсов у тебя есть доступ в макросе к информации о типах.
источник

DS

Doge Shibu in rust_offtopic
И IDE на них не сходит с ума, т.к. они не вводят нового синтаксиса
источник

p

polunin.ai in rust_offtopic
Doge Shibu
Нет, там как syn/quote, только на типизированных аст. Из плюсов у тебя есть доступ в макросе к информации о типах.
я вижу вызов функции assertImpl
источник

Т8

Т-34 85 in rust_offtopic
@Psilon макросы нужны в шарпе?
источник

p

polunin.ai in rust_offtopic
там есть атрибуты, они покрывают некоторые задачи макросов. А еще инфомация о типах хранится в рантайме и ее можно доставать, что тоже покрывает часть задач макросов. В общем там они не особо нужны.
источник