¿Es posible utilizar la API de GHC de modificar un programa durante la compilación de ella?
Pregunta
Quiero probar la implementación de una optimización del compilador llevando a cuestas en el proceso de compilación GHC y alterar su representación Core. La idea sería tener algo como:
runGhc (Just libdir) $ do
...
c <- compileToCoreModule targetFile
compileCoreToObj False (modify c)
...
donde modify
toma la representación Core y devuelve la versión modificada. Este código, sin embargo, falla (incluso cuando Modificar no hace nada en absoluto) con el mensaje no es muy útil:
expectJust mkStubPaths
¿Alguna idea sobre cómo hacer este trabajo, o si es aún posible llevar a cabo una transformación código de esta manera?
Solución
Eso suena como un error en compileCoreToObj
a mí. Por favor, informan que .
Otros consejos
GHC tiene soporte para plugins ahora, que parecen hacer exactamente lo que quiere.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow