Может ли GHCJS/Haste скомпилировать себя?

Если это так, то я мог бы позволить людям играть с моим проектом, изменив его (Haskell) конфигурацию: перекомпилировать ее в браузере и затем повторно запустить в браузере. Меня не волнует скорость. Я просто хочу иметь возможность демонстративно создать в браузере фундаментально-настольный проект. Таким образом, новые пользователи могут видеть, нравится ли им, в течение нескольких секунд и без настройки.

Как здорово это было бы!

из того, что я прочитал, GHCJS компилирует STG в JavaScript. он говорит, что он использует API GHC, поэтому мы также должны скомпилировать это в JavaScript, как и в любой другой библиотеке Haskell. (правда?) Правда ли, что, хотя время выполнения GHC имеет много C, сам компилятор является чистым Haskell?

так:

  • Может ли GHCJS скомпилироваться в JavaScript?
  • Может ли ускорить компиляцию в JavaScript?
  • Было ли выполнено одно из этих действий? (как работает http://haste-lang.org/try/? Кажется, нужна сеть.)

Ответ 1

GHCJS и Haste, насколько мне известно, напрямую используют GHC. GHC, хотя в основном haskell, привязан к большому количеству битов с точки зрения времени выполнения и того, как он работает. Я совершенно уверен, что в настоящий момент не может быть скомпилирован для запуска непосредственно в браузере с помощью "самостоятельного" способа.

Тем не менее, Fay, который является "подобным Haskell-диалекту" JS, может быть скомпилирован через GHCJS, который довольно изящный (https://github.com/ghcjs/ghcjs-examples/tree/master/fay-hello), хотя, возможно, не то, что вы хотите.

Другая альтернатива, если ваша система достаточно проста, - использовать emscripten для размещения объятий в браузере и позволить вашим пользователям играть с этим.

Как вы догадываетесь, различные сайты "попробуйте в браузере" на самом деле используют соединение с машинами, обычно запускают что-то вроде mueval, которые фактически выполняют указанный код.