Что это такое?
Porffor — это компилятор JavaScript с опережающей компиляцией (AOT): движок и среда выполнения JS, где код компилируется на 100% заранее. Ничто в нём не интерпретирует ваш код и не компилирует его «на лету».
Чем это отличается от обычных JavaScript-движков вроде V8?
Обычные движки интерпретируют код или компилируют его «на лету» (JIT) во время выполнения; Porffor компилирует всю вашу JS-программу заранее в C (через промежуточное представление), а дальше этот C собирается как любая обычная программа.
Как его установить и скомпилировать свой первый скрипт?
В README команда установки не описана; новые релизы публикуются автоматически после каждого git push, прошедшего CI, так что возьмите последний релиз со страницы GitHub releases проекта.
Нужны ли мне LLVM, Node или другой тяжёлый инструментарий?
Ни LLVM, ни Cranelift — отказ от прямой зависимости от таких бэкендов — заявленная цель проекта. На выходе обычный C, так что соберёт его под вашу платформу обычный C-тулчейн.
Он достаточно стабилен, чтобы использовать его в реальных проектах?
Проект развивается быстро: версии — это один постоянно растущий номер релиза, и каждый пуш, прошедший CI, даёт новый релиз. Так что рассчитывайте на частые изменения, а не на фиксированную стабильную ветку.
Где может работать скомпилированный результат?
Porffor выдаёт код на C, поэтому собранная программа может работать практически везде, где компилируется C, а сам сгенерированный код легко править после компиляции под разные окружения.
Почему проект называется Porffor?
«Porffor» по-валлийски значит «фиолетовый цвет». Автор выбрал это название, потому что ни один другой JS-движок не фиолетовый, фиолетовый — это просто красиво, и, как утверждается, фиолетовый символизирует целеустремлённость — что подходит этому проекту, как сказано в README.
На чём написан сам Porffor?
В основном на JavaScript: GitHub указывает JavaScript основным языком проекта, а C тоже задействован — вполне логично для компилятора, который выдаёт код на C.
What are similar projects?
CalcKernel, gcc, scriptc, mquickjs, ir, Singeli, raddebugger, tsx
Which topics is it in?
engine, toolchain, runtime, foss, low-level, code-generation, compiler, c, performance, command-line-tool, free, javascript