E 'possibile utilizzare l'API GHC di modificare un programma durante la compilazione esso?

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

  •  28-09-2019
  •  | 
  •  

Domanda

Voglio testare l'implementazione di un'ottimizzazione del compilatore per bagarinaggio nel processo di compilazione GHC ed alterando la sua rappresentazione Nucleo. L'idea sarebbe quella di avere qualcosa di simile:

runGhc (Just libdir) $ do
   ...
   c <- compileToCoreModule targetFile
   compileCoreToObj False (modify c)
   ...

dove modify prende la rappresentazione Core e restituisce la versione modificata. Questo codice, tuttavia, non riesce (anche quando non fa nulla di modifica a tutti) con il messaggio non molto utile:

expectJust mkStubPaths

Tutte le idee su come fare questo lavoro, o se è anche possibile implementare una trasformazione del codice in questo modo?

È stato utile?

Soluzione

che suona come un bug in compileCoreToObj a me. Si prega di segnalarlo .

Altri suggerimenti

GHC ha il supporto per plugin oggi, che sembrano fare esattamente quello che vuoi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top