Sono rimasto incuriosito quando ho sentito che GHC può inviare un file a C.Impossibile emettere da .hs a .hc con GHC in Haskell
Il Glasgow Haskell Compiler (GHC) compila codice nativo su un certo numero di architetture diverse, nonché su ANSI C-using C-- come lingua intermedia.
Così ho installato la piattaforma Haskell e creato un semplice file .hs.
main = putStrLn "Hello, World!"
E secondo il manuale.
-C arresto dopo la generazione C (file .hc)
Ora eseguire il comando.
ghc -C test.hs
Ma non crea un file .hc e non interrompe la compilazione a metà.
$ ls
test.exe test.hi test.hs test.o
Hai provato a passare -fvia-C in aggiunta a -C? IIRC GHC non usa il backend C di default (può generare direttamente assembly per varie macchine, incluso llvm). – Cubic
Ho ricevuto un avvertimento dicendo che "Il flag -fvia-C non fa nulla, sarà rimosso in una futura versione di GHC". Augustss, perché dovrei essere deluso? –
Sembra completamente diverso dal codice C scritto da un essere umano. È fondamentalmente illeggibile. Inoltre, non è così efficiente come speri. L'unico modo in cui diventa efficiente è il mangling del codice assembly generato dal compilatore C. – augustss