2012-09-16 12 views
5

Me gustaría comenzar a utilizar eglefino; la razón principal no es que yo (o cualquier otra persona) necesite una buena documentación HTML para lo que estoy escribiendo ahora, sino que me enseñará de manera estandarizada los módulos de Haskell. Por esta razón, me gustaría ensuciarme las manos con él, pero me he encontrado con un problema bastante básico.Ejecutando el eglefino por su cuenta

Fuente:

module Main where 
-- |This is the main function. 
main = putStrLn "Hello World!" 

eglefino invocación:

> haddock -h test.hs 
Haddock coverage: 
    50% ( 1/2) in 'Main' 
Warning: Main: could not find link destinations for: 
    GHC.Types.IO 

Parece eglefino no sabe dónde buscar las bibliotecas estándar, pero eso es sólo una conjetura salvaje. Los documentos dicen algo sobre un parámetro "-B", pero realmente no explican mucho al respecto.

He buscado el problema en línea, y básicamente fue respondido con "use un paquete Cabal y hará todo por usted". Sin embargo, preferiría no tratar con Cabal en este momento, pero aprende Haddock por sí mismo (Cabal puede esperar). ¿Hay una solución agradable y fácil (ish) para el problema?

+2

Solo para poner un punto de datos por ahí: he escrito mucha documentación y nunca he invocado 'haddock' a mano. –

+1

Correcto, eglefino no sabe dónde encontrar los documentos para las bibliotecas instaladas por sí mismo, tiene que contarlo. No soy un experto, pero la opción '--read-interface = FILE' le dice a eglefino dónde encontrar los documentos. Sin embargo, dejar que 'cabal' haga el trabajo es mucho más simple. –

+1

Cabal tiene la intención de hacerte la vida más fácil. ¿Por qué esperar? –

Respuesta

5

Voy a hacer eco de la sabiduría de los comentarios a su pregunta y decir, simplemente use Cabal. No es algo extra para aprender, es algo para aprender en su lugar precisamente porque se ocupa de todos estos tediosos detalles para usted. Probablemente necesites saberlo de todos modos, ya que todos los demás lo usan, por lo que es mejor que obtengas el beneficio de ese conocimiento.

Para completar, me corrieron cabal haddock -v en uno de mis proyectos, y esta es la invocación de haddock que utiliza:

/usr/local/bin/haddock --prologue=dist/doc/html/notcpp/haddock-prolog1566.txt --dump-interface=dist/doc/html/notcpp/notcpp.haddock --optghc=-package-name --optghc=notcpp-0.2.0.2 --hide=NotCPP.Utils --verbosity=1 --html --read-interface=/usr/local/share/doc/ghc/html/libraries/array-0.4.0.1,/usr/local/share/doc/ghc/html/libraries/array-0.4.0.1/array.haddock --read-interface=/usr/local/share/doc/ghc/html/libraries/base-4.6.0.0,/usr/local/share/doc/ghc/html/libraries/base-4.6.0.0/base.haddock --read-interface=/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0,/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/containers.haddock --read-interface=/usr/local/share/doc/ghc/html/libraries/deepseq-1.3.0.1,/usr/local/share/doc/ghc/html/libraries/deepseq-1.3.0.1/deepseq.haddock --read-interface=/usr/local/share/doc/ghc/html/libraries/ghc-prim-0.3.0.0,/usr/local/share/doc/ghc/html/libraries/ghc-prim-0.3.0.0/ghc-prim.haddock --read-interface=/usr/local/share/doc/ghc/html/libraries/integer-gmp-0.5.0.0,/usr/local/share/doc/ghc/html/libraries/integer-gmp-0.5.0.0/integer-gmp.haddock --read-interface=/usr/local/share/doc/ghc/html/libraries/pretty-1.1.1.0,/usr/local/share/doc/ghc/html/libraries/pretty-1.1.1.0/pretty.haddock --read-interface=/usr/local/share/doc/ghc/html/libraries/template-haskell-2.8.0.0,/usr/local/share/doc/ghc/html/libraries/template-haskell-2.8.0.0/template-haskell.haddock --odir=dist/doc/html/notcpp/ --title=notcpp-0.2.0.2: Avoiding the C preprocessor via cunning use of Template Haskell --optghc=-fbuilding-cabal-package --optghc=-O --optghc=-odir --optghc=dist/build/tmp-1566 --optghc=-hidir --optghc=dist/build/tmp-1566 --optghc=-stubdir --optghc=dist/build/tmp-1566 --optghc=-i --optghc=-idist/build --optghc=-i. --optghc=-idist/build/autogen --optghc=-Idist/build/autogen --optghc=-Idist/build --optghc=-optP-include --optghc=-optPdist/build/autogen/cabal_macros.h --optghc=-hide-all-packages --optghc=-package-id --optghc=base-4.6.0.0-eac4fa0d0988628e5bd960fef8805b26 --optghc=-package-id --optghc=template-haskell-2.8.0.0-102a52a4fda28374255d0a3a8e99f26c --optghc=-XHaskell98 --optghc=-XTemplateHaskell --optghc=-W -B/usr/local/lib/ghc-7.6.1 dist/build/tmp-1566/NotCPP/ScopeLookup.hs dist/build/tmp-1566/NotCPP/LookupValueName.hs dist/build/tmp-1566/NotCPP/OrphanEvasion.hs dist/build/tmp-1566/NotCPP/Utils.hs

Ahora, estoy seguro de cuánto de eso es opcional, pero no voy a perder el tiempo averiguando qué bits son y cuáles no.

Cuestiones relacionadas