haskell ghc template-haskell

Opción-ddump-splices de GHC-Plantilla Haskell



template-haskell (1)

Estoy siguiendo el libro de Yesod, que dice:

Pero al utilizar la opción de GHC -ddump-splices, podemos obtener una visión inmediata del código generado. Una versión muy limpia es:

¿Cómo haría esto? He intentado compilar mi archivo con ghc -XTemplateHaskell -ddump-splices Page.hs , que deja el directorio de la siguiente manera:

Page Page.hi Page.hs Page.hs~ Page.o

Ninguno de estos archivos, sin embargo, contiene el código intermedio generado por Template Haskell.

http://www.yesodweb.com/book/basics


Mientras tanto, el comportamiento cambió y el -ddump-to-file además del -ddump-splices hace que los empalmes se escriban en un archivo, consulte la Sección 9.26 de la documentación actual (GHC 8.2.1) para obtener más detalles.

En versiones anteriores de GHC (no -ddump-splices en qué versión cambió exactamente el comportamiento), -ddump-splices funcionó de forma diferente:

La opción -ddump-splices hace que GHC vuelque los empalmes a stderr. Desafortunadamente, la -ddump-to-file no afecta a los empalmes (no sé si eso tiene razones más profundas o es solo una omisión), por lo que necesita capturar la salida stderr para guardar los empalmes para una investigación posterior.

ghc -XTemplateHaskell -ddump-splices Page.hs 2> Page.dump-splices

en conchas suficientemente bash-like.