Ist es möglich, den GHC-API zu verwenden, um ein Programm zu ändern, während es kompiliert?
Frage
Ich möchte die Umsetzung einer Compiler-Optimierung testen, indem sie in den GHC Kompilierungsvorgang Huckepack und Veränderung seiner Darstellung Kern. Die Idee wäre, so etwas wie:
runGhc (Just libdir) $ do
...
c <- compileToCoreModule targetFile
compileCoreToObj False (modify c)
...
Dabei gilt modify
die Kern Darstellung nimmt und gibt die modifizierte Version. Dieser Code ist jedoch nicht (auch wenn modify tut nichts) mit dem nicht sehr hilfreich Nachricht:
expectJust mkStubPaths
Alle Ideen, wie diese Arbeit zu machen, oder ob es sogar möglich, eine Codetransformation auf diese Weise zu implementieren?
Lösung
Das klingt wie ein Fehler in compileCoreToObj
mir. Bitte melden Sie es .
Andere Tipps
hat GHC Unterstützung für Plugins jetzt, die erscheinen, genau das zu tun, was Sie wollen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow