porffor README

The project's README from github.com/CanadaHonk/porffor. As one markdown file: README.md.

Porffor  (poor-for)

An ahead-of-time JavaScript compiler

curl -fsSL https://porffor.dev/install.sh | sh

$ cat hello.js
console.log('hello world!');
$ porf hello.js -o hello
[105ms] compiled hello.js -> hello (33.7KB)
$ ./hello
hello world!

Porffor is a 100% AOT compiled JS engine/runtime. There is nothing interpreted or compiled just-in-time. Porffor compiles JS to C (with an IR inbetween). We chose this approach because:

Versioning

Porffor releases use a single increasing release number. Releases are automatically published every git push after CI testing.

Name

purple in Welsh is porffor. Why purple?

porffor (CanadaHonk/porffor)

Searching Database…

5.3K ·GitHub
Что это такое?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
Creator
CanadaHonk
Size
53.2 MB
Stars
5.3K
Age
3y
Commits · 90 Days