Forwarded from rusta::mann
В 2019 из компилятора Rust выпилили синтаксические плагины, и с тех пор в области интроспекции типчиков в мета-коде царит нищета: процедурные макросы, которые сейчас есть, мапят потоки токенов и имеют доступ только к маленькой части AST.
С тех пор никаких подвижек в стабилизации доступа к полноценному AST и compiler queries не было, что в целом понятно — утилиты, которые используют внутренние API rustc, периодически ломаются.
Но тем не менее, в ночниках доступен rustc_interface, с помощью которого можно наворачивать кастомные утилиты, которые используют компилятор для анализа кода (как, например, clippy или rustfmt).
И если на время проигнорировать нестабильность и ад поддержки совместимости таких штук с ночником, то
Когда-нибудь я может быть даже напишу прототип :))
#мысливслух #rustlang
С тех пор никаких подвижек в стабилизации доступа к полноценному AST и compiler queries не было, что в целом понятно — утилиты, которые используют внутренние API rustc, периодически ломаются.
Но тем не менее, в ночниках доступен rustc_interface, с помощью которого можно наворачивать кастомные утилиты, которые используют компилятор для анализа кода (как, например, clippy или rustfmt).
И если на время проигнорировать нестабильность и ад поддержки совместимости таких штук с ночником, то
rustc_interface в частности, и доступ к приватным API компилятора в целом, дает возможность писать "гибридные" макросы в build.rs.Когда-нибудь я может быть даже напишу прототип :))
#мысливслух #rustlang
Блог*
#prog #rust #python #rustlib #amazingopensource Следующий логический шаг: макрос ct_python, который на этапе компиляции выполняет заданный код на Python и раскрывается в вывод в stdout этого скрипта. Презентация возможностей Документация
#prog #rust #c #rustlib #amazingopensource #menacingopensource
Макрос для запуска кода на Cна этапе компиляции из исходника на Rust. В рантайме, увы. (thanks @teamerlin за источник, thanks @ihatereality за поправку)
Анонс
Исходники
Макрос для запуска кода на C
Анонс
Исходники
Twitter
Ivan Enderlin 🦀
Oops… C in Rust. More to come :-). Please @rustlang, don't block me 🙏! #rustlang #c #cpp #clang
Forwarded from я что-то �� и всё ����
🔁 Samuel Tardieu
Thanks to my students and former students at @TelecomParis for this perfect gift: a #rustlang themed temperature sensitive cup.
Thanks to my students and former students at @TelecomParis for this perfect gift: a #rustlang themed temperature sensitive cup.
😁19👍8