Est-il possible d'utiliser l'API de GHC pour modifier un programme tout en compilant?
Question
Je veux tester la mise en œuvre d'une optimisation du compilateur par ferroutage dans le processus de compilation GHC et de modifier sa représentation de base. L'idée serait d'avoir quelque chose comme:
runGhc (Just libdir) $ do
...
c <- compileToCoreModule targetFile
compileCoreToObj False (modify c)
...
où modify
prend la représentation de base et retourne la version modifiée. Ce code, cependant, ne (même quand modify ne fait rien du tout) avec le message pas très utile:
expectJust mkStubPaths
Toutes les idées sur la façon de faire ce travail, ou s'il est même possible de mettre en œuvre une transformation de code de cette façon?
Autres conseils
GHC a un support pour plugins maintenant, qui semblent faire exactement ce que vous voulez.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow