Ich war fasziniert, als ich hörte, dass GHC eine Datei an C ausgeben kann.Ausgabe von .hs auf .hc mit GHC in Haskell nicht möglich
Der Glasgow Haskell Compiler (GHC) kompiliert zu nativem Code auf einer Reihe von verschiedenen Architekturen - sowie zu ANSI C - mit C-- als Zwischensprache.
Also habe ich die Haskell-Plattform installiert und eine einfache .hs-Datei erstellt.
main = putStrLn "Hello, World!"
Und entsprechend der Anleitung.
-C Stopp nach Erzeugung von C (.hc Datei)
Jetzt laufe ich den Befehl.
ghc -C test.hs
Aber es erstellt keine. HC-Datei, noch stoppt es mitten in der Kompilierung.
$ ls
test.exe test.hi test.hs test.o
Haben Sie versucht, -fvia-C zusätzlich zu -C zu übergeben? IIRC GHC verwendet standardmäßig nicht das C-Backend (es kann direkt Assemblies für verschiedene Maschinen generieren, einschließlich llvm). – Cubic
Ich habe eine Warnung erhalten, dass "die -fvia-C-Markierung nichts tut; sie wird in einer zukünftigen GHC-Version entfernt". Augusts, warum sollte ich enttäuscht sein? –
Es sieht ganz anders aus als C-Code, den ein Mensch schreiben würde. Es ist im Grunde nicht lesbar. Es ist auch nicht so effizient, wie Sie es sich wünschen. Der einzige Weg, wie es effizient wird, besteht darin, den vom C-Compiler generierten Assembler-Code zu verfälschen. – augustss