Comments 13
Могу помочь с запуском Nemerle в Mono.
О какой версии Mono идёт речь ?
Mono JIT compiler version 6.12.0.90 (tarball Mon Sep 13 15:34:59 UTC 2021)
Компилятор падает где-то в глубинах glibc с диагностикой "Assertion at sre-encode.c:290, condition `count > 0' not met".
На какой системе запускаете, чтобы можно было попробовать воспроизвести.
Mono, увы, периодически чинят баги, а потом снова ломают. В какой-то момент я от них устал и проверял периодически, а сейчас уже не смотрю, но посмотрю для вас.
Если есть возможность завести баг в соответствующем месте будет совсем замечательно: https://github.com/rsdn/nemerle
Ну вот, оказывается известный баг Mono: https://github.com/mono/mono/issues/18970
Есть полный стек компилятора, вдруг сходу придумается обход?
Да, стектрей похож. Такое чувство, что пора переписывать .net на Rust...
Кстати, про Boo мне говорили, что там боже были хорошие макросы, но с документацией там совсем плохо.
Проблема не с .NET , а с конкретной реализацией т.е. Mono :)
До недавнего времени .NET Core не поддерживал нормальную работу с System.Reflection.Emit на которую завязан компилятор Nemerle.
Вполне возможно, что портировать на .NET 5 или 6 это гораздо более посильная задача чем портирование на .NET Core.
Результат вызова макроса валидируется, то есть проходит через тайпчекер и тесты. Rust защищает от некорректного использования памяти, гонок, переполнений буфера, то есть достаточно низкоуровневых ошибок. Более высокоуровневые ограничения легче выражались бы в других системах типов, в том числе в Gluon.
Как я начал писать макросы для Rust на Gluon