Ich möchte die Implementierung einer Compiler-Optimierung testen, indem ich in den GHC-Kompilierungsprozess huckepack und seine Kerndarstellung ändere. Die Idee wäre, wie etwas zu haben:Kann die GHC-API verwendet werden, um ein Programm zu ändern, während es kompiliert wird?
runGhc (Just libdir) $ do
...
c <- compileToCoreModule targetFile
compileCoreToObj False (modify c)
...
wo modify
die Core-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 ?
Ich zögerte, es zu melden, weil ich nicht sicher war, ob ich die Funktionen richtig verwendete. Gibt es Beispiele für diese Art von Transformationen? – matiash
Ich kenne keine konkreten Beispiele, nein. –
Gibt es Fortschritte bei diesem Problem? Ich habe heute genau den gleichen Code ausprobiert und es ergab sich die gleiche Fehlermeldung. –