Est-il possible d'utiliser l'API de GHC pour modifier un programme tout en compilant?

StackOverflow https://stackoverflow.com/questions/3864766

  •  28-09-2019
  •  | 
  •  

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)
   ...

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?

Était-ce utile?

La solution

qui sonne comme un bogue dans compileCoreToObj pour moi. .

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
scroll top