Пикша: не удалось создать граф зависимостей (при добавлении разделов с * или заголовком модуля) - PullRequest
1 голос
/ 20 августа 2009

Я скомпилировал и установил haddock-2.4.2 из исходного кода tarball.

Добавление нескольких простых комментариев к коду здесь:

и бегущая пикша

$ haddock -h -o doc Data/DualMap.hs
Warning: Data.DualMap: could not find link destinations for:
    Data.Typeable.Typeable2 GHC.Base.Eq GHC.Show.Show GHC.Base.Ord GHC.Base.Bool Data.Set.Set

Выходы:

Все выглядит хорошо. (Обратите внимание, что этот модуль зависит только от библиотек, поставляемых с GHC, и без других исходных модулей.)

Однако, когда я пытаюсь добавить разделы (а-ля http://www.haskell.org/haddock/doc/html/ch03s04.html#id289234) в комментарии с "- * test", я получаю:

$ haddock -h -o doc Data/DualMap.hs
Data/DualMap.hs:20:0: parse error on input `-- * test'
haddock: Failed to create dependency graph

Я понятия не имею, с чего начать, чтобы это работало, так как это сообщение об ошибке говорит мне только о том, что Haddock.Interface.depanal ничего не возвратил (в соответствии с grep источников пикши), но не о том, как остановить анализ зависимостей от сбоя. Возможно, мне нужны дополнительные аргументы командной строки или ссылки на отсутствующие места назначения ссылок в документации GHC / base / Containers или в файле конфигурации haddock?

Поиск в Google привел к множеству ошибок сборки cabal того же рода для пакетов на hackage, но ничего о том, как их исправить.

Как мне добавить разделы (со звездочками) и заставить Хэддок генерировать мои документы? Что (возможно, простая вещь) мне не хватает?

1 Ответ

0 голосов
/ 20 августа 2009

Простое исправление (ужасное сообщение об ошибке):

Переместить (до строки с именем модуля. Предыдущий неверный код:

module Data.DualMap
   -- * The @DualMap@ abstract type
   ( DualMap ()
   -- * (?) internal? -- exposed for testing purposes, for now...
   , dmFlip
   -- * converting to and from DualMap
   , toList, fromList, map
   -- * constructing a DualMap
   , empty, null, insert, union

Счастливый код выглядит так:

module Data.DualMap (
   -- * The @DualMap@ abstract type                                                                                                                                 
     DualMap ()
   -- * (?) internal? -- exposed for testing purposes, for now...                                                                                                   
   , dmFlip
   -- * converting to and from DualMap                                                                                                                              
   , toList, fromList, map
   -- * constructing a DualMap                                                                                                                                      
   , empty, null, insert, union

Достаточно просто. Я выяснил это, загрузив DList из hacakge , потрошив его и заменив код своим собственным кодом. Когда DList работал с 'cabal haddock', а мой - нет (когда я пытался добавить несколько звездочек), я посмотрел на разницу между файлами и убедился, что мои скобки были в неправильной строке.

Кстати, я настоятельно рекомендую DList в качестве отправной точки для нового проекта на Haskell вместо hnop .

...