[Haskell-cafe] Re: haddock-2.3.0 literate comments discarded from .lhs input

2009-02-08 Thread Andrea Vezzosi
I did work on this and i simplified the code a lot fixing
inconsistencies and making more explicit what how each component
contributes to the arguments to haddock.
Aside from this, should we also do the unliting and cpp from Cabal on
the sources passed to HsColour?

On Fri, Feb 6, 2009 at 11:27 PM, Duncan Coutts
duncan.cou...@worc.ox.ac.uk wrote:
 On Fri, 2009-02-06 at 11:48 +0100, David Waern wrote:
 2009/2/6 Alistair Bayley alist...@abayley.org:
  [1 of 1] Compiling Test.Fail( Test\Fail.hs, Test\Fail.o )
 
  Test\Fail.hs:11:26:
 Can't make a derived instance of `Typeable Fail'
   (You need -XDeriveDataTypeable to derive an instance for this class)
 In the data type declaration for `Fail'
 
  Are you processing the above module but it is called Test.Fail in
  reality? Have you stripped out a deriving statement from the example
  above? I'm very confused by this message :)
 
 
  Sorry, my mistake. I pasted the error message from a different
  problem. This is the error I get from haddock:
 
  C:\bayleya\eclipse\workspace\takusen\srchaddock -h --odir=doc 
  Test/Haddock.lhs
  Cannot find documentation for: $named_block

 Okay, then I understand.

 My guess is (without looking at ghc code) that ghc just throws the
 literate comments away before lexing the file. This means that the
 Haddock comments won't be recognized.

 As you say, there is also an unlitter in Cabal. I don't remember if it
 is invoked when using Haddock 2, but if it is, it would solve this
 problem.

 Yes, against my better judgement the code in Cabal for haddock-2.x does
 not run cpp or unliting like it does for haddock-0.x. Instead it assumes
 that haddock-2.x will do all the cpp and unliting itself. Obviously this
 mean the special unliting mode that Cabal provides is not usable with
 haddock-2.x.

 The solution is to do the pre-processing the same for haddock-0.x and
 2.x. Generally the haddock code in Cabal is a horrible inconsistent
 mess. I believe Andrea Vezzosi has been looking at rewriting it, which
 is good news.

 Duncan


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: haddock-2.3.0 literate comments discarded from .lhs input

2009-02-08 Thread Duncan Coutts
On Sun, 2009-02-08 at 19:18 +0100, Andrea Vezzosi wrote:
 I did work on this and i simplified the code a lot fixing
 inconsistencies and making more explicit what how each component
 contributes to the arguments to haddock.

Much appreciated.

 Aside from this, should we also do the unliting and cpp from Cabal on
 the sources passed to HsColour?

Hmm. I thought it did already :-) Well, I know it runs happy, hsc2hs
etc. Someone was complaining the other day that the hscolour output run
on the result of happy is not really readable, but then it's not clear
if running it on the happy input would be any better.

For the particular case of .lhs and cpp, I hope we'd get better hscolour
output by not running unlit or cpp first. Malcolm says it'll at least do
something. So it seems worth checking which ends up looking more useful.

Duncan

 On Fri, Feb 6, 2009 at 11:27 PM, Duncan Coutts
  Yes, against my better judgement the code in Cabal for haddock-2.x does
  not run cpp or unliting like it does for haddock-0.x. Instead it assumes
  that haddock-2.x will do all the cpp and unliting itself. Obviously this
  mean the special unliting mode that Cabal provides is not usable with
  haddock-2.x.
 
  The solution is to do the pre-processing the same for haddock-0.x and
  2.x. Generally the haddock code in Cabal is a horrible inconsistent
  mess. I believe Andrea Vezzosi has been looking at rewriting it, which
  is good news.


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: haddock-2.3.0 literate comments discarded from .lhs input

2009-02-07 Thread Alistair Bayley
2009/2/6 Duncan Coutts duncan.cou...@worc.ox.ac.uk:

 Yes, against my better judgement the code in Cabal for haddock-2.x does
 not run cpp or unliting like it does for haddock-0.x. Instead it assumes
 that haddock-2.x will do all the cpp and unliting itself. Obviously this
 mean the special unliting mode that Cabal provides is not usable with
 haddock-2.x.

 The solution is to do the pre-processing the same for haddock-0.x and
 2.x. Generally the haddock code in Cabal is a horrible inconsistent
 mess. I believe Andrea Vezzosi has been looking at rewriting it, which
 is good news.

In Distribution.Simple.Haddock, in the haddock function we have:

withLib pkg_descr () $ \lib - do
let bi = libBuildInfo lib
modules = PD.exposedModules lib ++ otherModules bi
inFiles - getLibSourceFiles lbi lib
unless isVersion2 $ mockAll bi inFiles

So I guess the easiest thing to do right now is remove the unless
isVersion2 $ . I'm testing this at the moment, so when I get it
working (or not) I'll let you know, and maybe send a patch.

Alistair
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: haddock-2.3.0 literate comments discarded from .lhs input

2009-02-06 Thread David Waern
2009/2/6 Alistair Bayley alist...@abayley.org:
 [1 of 1] Compiling Test.Fail( Test\Fail.hs, Test\Fail.o )

 Test\Fail.hs:11:26:
Can't make a derived instance of `Typeable Fail'
  (You need -XDeriveDataTypeable to derive an instance for this class)
In the data type declaration for `Fail'

 Are you processing the above module but it is called Test.Fail in
 reality? Have you stripped out a deriving statement from the example
 above? I'm very confused by this message :)


 Sorry, my mistake. I pasted the error message from a different
 problem. This is the error I get from haddock:

 C:\bayleya\eclipse\workspace\takusen\srchaddock -h --odir=doc 
 Test/Haddock.lhs
 Cannot find documentation for: $named_block

Okay, then I understand.

My guess is (without looking at ghc code) that ghc just throws the
literate comments away before lexing the file. This means that the
Haddock comments won't be recognized.

As you say, there is also an unlitter in Cabal. I don't remember if it
is invoked when using Haddock 2, but if it is, it would solve this
problem.

David
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: haddock-2.3.0 literate comments discarded from .lhs input

2009-02-06 Thread Alistair Bayley
 [1 of 1] Compiling Test.Fail( Test\Fail.hs, Test\Fail.o )

 Test\Fail.hs:11:26:
Can't make a derived instance of `Typeable Fail'
  (You need -XDeriveDataTypeable to derive an instance for this class)
In the data type declaration for `Fail'

 Are you processing the above module but it is called Test.Fail in
 reality? Have you stripped out a deriving statement from the example
 above? I'm very confused by this message :)


Sorry, my mistake. I pasted the error message from a different
problem. This is the error I get from haddock:

C:\bayleya\eclipse\workspace\takusen\srchaddock -h --odir=doc Test/Haddock.lhs
Cannot find documentation for: $named_block

Alistair
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: haddock-2.3.0 literate comments discarded from .lhs input

2009-02-06 Thread David Waern
2009/2/6 Alistair Bayley alist...@abayley.org:
 I have this test case for Haddock (2.3.0):

 --

 |
 Module  :  Test.Haddock
 Copyright   :  (c) 2009 Alistair Bayley
 License :  BSD-style
 Maintainer  :  alist...@abayley.org
 Stability   :  stable
 Portability :  portable

 Test case for Haddock.


 module Test.Haddock
   (
   -- $named_block
   Fail(..)
   )
 where
 data Fail = Fail | Succeed

 $named_block

 This is some hadock documentation.

 --

 This fails with:

 [1 of 1] Compiling Test.Fail( Test\Fail.hs, Test\Fail.o )

 Test\Fail.hs:11:26:
Can't make a derived instance of `Typeable Fail'
  (You need -XDeriveDataTypeable to derive an instance for this class)
In the data type declaration for `Fail'

Are you processing the above module but it is called Test.Fail in
reality? Have you stripped out a deriving statement from the example
above? I'm very confused by this message :)

David
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: haddock-2.3.0 literate comments discarded from .lhs input

2009-02-06 Thread Duncan Coutts
On Fri, 2009-02-06 at 11:48 +0100, David Waern wrote:
 2009/2/6 Alistair Bayley alist...@abayley.org:
  [1 of 1] Compiling Test.Fail( Test\Fail.hs, Test\Fail.o )
 
  Test\Fail.hs:11:26:
 Can't make a derived instance of `Typeable Fail'
   (You need -XDeriveDataTypeable to derive an instance for this class)
 In the data type declaration for `Fail'
 
  Are you processing the above module but it is called Test.Fail in
  reality? Have you stripped out a deriving statement from the example
  above? I'm very confused by this message :)
 
 
  Sorry, my mistake. I pasted the error message from a different
  problem. This is the error I get from haddock:
 
  C:\bayleya\eclipse\workspace\takusen\srchaddock -h --odir=doc 
  Test/Haddock.lhs
  Cannot find documentation for: $named_block
 
 Okay, then I understand.
 
 My guess is (without looking at ghc code) that ghc just throws the
 literate comments away before lexing the file. This means that the
 Haddock comments won't be recognized.
 
 As you say, there is also an unlitter in Cabal. I don't remember if it
 is invoked when using Haddock 2, but if it is, it would solve this
 problem.

Yes, against my better judgement the code in Cabal for haddock-2.x does
not run cpp or unliting like it does for haddock-0.x. Instead it assumes
that haddock-2.x will do all the cpp and unliting itself. Obviously this
mean the special unliting mode that Cabal provides is not usable with
haddock-2.x.

The solution is to do the pre-processing the same for haddock-0.x and
2.x. Generally the haddock code in Cabal is a horrible inconsistent
mess. I believe Andrea Vezzosi has been looking at rewriting it, which
is good news.

Duncan

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe