В компании Rad Hat ведётся разработка нового легковесного JIT-компилятора MIR, обеспечивающего выполнение кода, предварительно преобразованного в промежуточное представление MIR (Medium Internal Representation, не путать с другим промежуточным представлением MIR (mid-level IR), применяемым в компиляторе Rust). Проект нацелен на предоставление основы для реализации быстрых и компактных интерпретаторов и JIT. Код проекта написан на языке Си и распространяется под лицензией MIT.
кстати насчет этого MIRа. Егоров пишет что на микробенчмарках все хорошо, скорость не менее чем в 3 раза быстрее текущего CRuby, но на реальных приложения таких как RoR все намного печальнее: https://twitter.com/mraleph/status/1219354299207245824
кстати насчет этого MIRа. Егоров пишет что на микробенчмарках все хорошо, скорость не менее чем в 3 раза быстрее текущего CRuby, но на реальных приложения таких как RoR все намного печальнее: https://twitter.com/mraleph/status/1219354299207245824
А не может быть тут варианта, что рельсы просто обьективно сложно ускорить сами по себе, в силу обширного и слабопредсказуемого для jit'а использования рефлексии повсюду?
Или есть реализации интерпретаторов, где рельсы ощутимо ускоряются?
Насколько сложный синтаксис у Ruby? Есть ли в нем синтаксис, в котором парсер может влиять на лексер, т.е. нельзя провести сначала токенизацию, а потом парсинг полученных токенов?
Насколько сложный синтаксис у Ruby? Есть ли в нем синтаксис, в котором парсер может влиять на лексер, т.е. нельзя провести сначала токенизацию, а потом парсинг полученных токенов?