2014-06-11 8 views
12

È possibile compilare un modulo Haskell su JS usando ghcjs? Ho giocato con esso, ma sembra che sia necessario definire la funzione main prima di generare JS. Un codice giocattolo di seguito:Compilare il modulo Haskell in Javascript usando ghcjs

module Test where 

add :: Int -> Int -> Int 
add x y = x + y 

non riesco a capire come compilarlo a JS usando ghcjs. Compilerà solo file .hi e .o se la funzione principale non è definita. Se riesco a trovare un modo per compilarlo in JS (con il nome della funzione Z-encoded appropriato e un oggetto JS corrispondente, come quello che abbiamo in FFI per C), allora potrei usare librerie Haskell più potenti come unordered-containers e vector per implementare alcune algoritmo, compilare a JS e utilizzare in Elm tramite JS FFI.

Fay sembra essere in grado di farlo. Mi piacerebbe investigarlo prima per ghcjs.

+0

Qual è la tua linea di comando precisa? –

+0

@JoachimBreitner, 'ghcjs Test.hs' dove Test.hs è sopra il codice. ghcjs afferma che sta "generando JavaScript" ma non vedo alcun codice js. Sto usando la versione 0.1.0. – Sal

+0

Hai provato 'ghcjs -c Test.hs'? Funziona meglio? –

risposta

6

Ho appena chiesto all'autore ghcjs (luite) in IRC e ha detto, "non esiste ancora un modo valido per esportare direttamente una libreria."

Sembra molto interessato a supportare questa capacità, tuttavia, quindi spero, e ottimista che questo cambierà nel prossimo futuro. Il posto per guardare questo problema è the ticket requesting this feature on github.

+0

ma qual è lo stato di questo come o 2015 aprile? –

+1

Il ticket non è stato aggiornato da febbraio 2015 ed è ancora aperto, quindi sembra che non sia ancora stato fatto. lo sviluppo di ghcjs è ancora molto attivo (con commit nell'ultimo giorno) quindi sono ancora ottimista sull'avere questa funzionalità nel futuro. –

Problemi correlati