haddock.git
15 months agoDon't barf on 'HsSpliceTy' (#745) master
Alec Theriault [Tue, 6 Feb 2018 06:59:09 +0000 (22:59 -0800)] 
Don't barf on 'HsSpliceTy' (#745)

This handles 'HsSpliceTy's by replacing them with what they expand to.
IIUC everything that is happening, 'renameHsSpliceTy' should not be
able to fail for the inputs we feed it from GHC.

This fixes #574.

15 months agoDon't warn about missing '~' (#746)
Alec Theriault [Tue, 6 Feb 2018 06:57:22 +0000 (22:57 -0800)] 
Don't warn about missing '~' (#746)

This manually filters out '~' from the list of things to warn about. It truly
makes no sense to warn on this since '~' has nothing it could link to - it is
magical.

This fixes #532.

15 months agoHyperlink pattern synonyms and 'module' imports (#744)
Alec Theriault [Mon, 5 Feb 2018 18:15:39 +0000 (10:15 -0800)] 
Hyperlink pattern synonyms and 'module' imports (#744)

Links to pattern synonyms are now generated, as well as links from
modules in import lists.

Fixes #731.

15 months agoAdd `SPDX-License-Identifier` as alised for "license" module header tokens
Herbert Valerio Riedel [Mon, 5 Feb 2018 06:36:03 +0000 (07:36 +0100)] 
Add `SPDX-License-Identifier` as alised for "license" module header tokens

C.f. SPDX 2.1 - Appendix V
 https://spdx.org/spdx-specification-21-web-version#h.twlc0ztnng3b

    The tag should appear on its own line in the source file, generally as part of a comment.

    SPDX-License-Identifier: <SPDX License Expression>

15 months agoQuickJump: Mitigate encoding problems on Windows
alexbiehl [Sat, 3 Feb 2018 10:47:10 +0000 (11:47 +0100)] 
QuickJump: Mitigate encoding problems on Windows

16 months agoQuickjump Scrollable overlay ghc-8.-4
Alexander Biehl [Mon, 15 Jan 2018 10:30:55 +0000 (11:30 +0100)] 
Quickjump Scrollable overlay

16 months agoFilter RTS arguments from 'ghc-options' arguments (#725)
Alec Theriault [Sun, 7 Jan 2018 11:59:14 +0000 (03:59 -0800)] 
Filter RTS arguments from 'ghc-options' arguments (#725)

This fixes #666.

16 months agoFix infinite loop when specializing instance heads (#723)
Alec Theriault [Fri, 5 Jan 2018 17:59:59 +0000 (09:59 -0800)] 
Fix infinite loop when specializing instance heads (#723)

* Fix infinite loop when specializing instance heads

The bug can only be triggered from TH, hence why it went un-noticed for
so long.

* Add test for #679 and #710

16 months agoAdd grid table example to cheatsheet
Alexander Biehl [Fri, 5 Jan 2018 09:43:15 +0000 (10:43 +0100)] 
Add grid table example to cheatsheet

(pdf and svg need to be regenerated thought)

16 months agoGrid Tables (#718)
Oleg Grenrus [Tue, 26 Dec 2017 15:13:14 +0000 (17:13 +0200)] 
Grid Tables (#718)

* Add table examples

* Add table types and adopt simple parser

Simple parser is done by Giovanni Cappellotto (@potomak)
in https://github.com/haskell/haddock/pull/577
It seems to support single fine full tables, so far from full
RST-grid tables, but it's good start.

Table type support row- and colspans, but obviously parser is lacking.

Still TODO:
- Latex backend. Should we use multirow package
  https://ctan.org/pkg/multirow?lang=en?
- Hoogle backend: ?

* Implement grid-tables

* Refactor table parser

* Add two ill-examples

* Update CHANGES.md

* Basic documentation for tables

* Fix documentation example

16 months agoInclude secondary LICENSE file in source dist
Herbert Valerio Riedel [Mon, 25 Dec 2017 09:18:10 +0000 (10:18 +0100)] 
Include secondary LICENSE file in source dist

16 months agoPatch flaky parser test (#720)
Alec Theriault [Sun, 24 Dec 2017 17:49:47 +0000 (09:49 -0800)] 
Patch flaky parser test (#720)

* Patch flaky parser test

This test was a great idea, but it doesn't port over too well to using
the GHC lexer. GHC rewrites its input a bit - nothing surprising, but
we need to guard against those cases for the test.

* Change instance head

* Change use site

17 months agoAdd simple framework for running parser fixtures (#668)
Oleg Grenrus [Wed, 20 Dec 2017 15:17:26 +0000 (17:17 +0200)] 
Add simple framework for running parser fixtures (#668)

* Add simple framework for running parser fixtures

* Compatible with tree-diff-0.0.0.1

* Use parseParas to parse fixtures

This allows to test all syntactic constructs available in haddock
markup.

17 months agoTake until line feed
alexbiehl [Sun, 17 Dec 2017 10:53:59 +0000 (11:53 +0100)] 
Take until line feed

17 months agoRemove scanner, takeWhile1_ already takes care of escaping
alexbiehl [Sun, 17 Dec 2017 10:50:27 +0000 (11:50 +0100)] 
Remove scanner, takeWhile1_ already takes care of escaping

17 months agoTreat escaped \] better in definition lists (#717)
Alexander Biehl [Sun, 17 Dec 2017 10:40:03 +0000 (11:40 +0100)] 
Treat escaped \] better in definition lists (#717)

This fixes #546.

17 months agoQuickjump: Matches on function names weight more than matches in ...
alexbiehl [Sat, 16 Dec 2017 10:59:42 +0000 (11:59 +0100)] 
Quickjump: Matches on function names weight more than matches in ...

module names.

17 months agoClickable anchors for headings (#716)
Alec Theriault [Thu, 14 Dec 2017 09:32:53 +0000 (01:32 -0800)] 
Clickable anchors for headings (#716)

See #579. This just adds an <a> tag around the heading, pointing to the
heading itself.

17 months agoUse the GHC lexer for the Hyperlinker backend (#714)
Alec Theriault [Sun, 10 Dec 2017 20:22:21 +0000 (12:22 -0800)] 
Use the GHC lexer for the Hyperlinker backend (#714)

* Start changing to use GHC lexer

* better cpp

* Change SrcSpan to RealSrcSpan

* Remove error

* Try to stop too many open files

* wip

* wip

* Revert "wip"

This reverts commit b605510a195f26315e3d8ca90e6d95a6737553e1.

Conflicts:
haddock-api/haddock-api.cabal
haddock-api/src/Haddock/Interface.hs

* Remove pointless 'caching'

* Use dlist rather than lists when finding vars

* Use a map rather than list

* Delete bogus comment

* Rebase followup

Things now run using the GHC lexer. There are still

  - stray debug statements
  - unnecessary changes w.r.t. master

* Cleaned up differences w.r.t. current Haddock HEAD

Things are looking good. quasiquotes in particular look beautiful: the
TH ones (with Haskell source inside) colour/link their contents too!

Haven't yet begun to check for possible performance problems.

* Support CPP and top-level pragmas

The support for these is hackier - but no more hacky than the existing
support.

* Tests pass, CPP is better recognized

The tests were in some cases altered: I consider the new output to be more
correct than the old one....

* Fix shrinking of source without tabs in test

* Replace 'Position'/'Span' with GHC counterparts

Replaces 'Position' -> 'GHC.RealSrcLoc' and 'Span' -> 'GHC.RealSrcSpan'.

* Nits

* Forgot entry in .cabal

* Update changelog

18 months agoDeclare use of `Paths_haddock` module in other-modules (#705)
Moritz Angermann [Mon, 20 Nov 2017 06:03:43 +0000 (14:03 +0800)] 
Declare use of `Paths_haddock` module in other-modules (#705)

This was detected by `-Wmissing-home-modules`

18 months agoFix #548 by rendering datatype kinds more carefully (#702)
Ryan Scott [Tue, 14 Nov 2017 14:21:30 +0000 (09:21 -0500)] 
Fix #548 by rendering datatype kinds more carefully (#702)

18 months agoRemote tab
alexbiehl [Tue, 31 Oct 2017 20:46:52 +0000 (21:46 +0100)] 
Remote tab

18 months agoMore general type for nameCacheFromGhc. (#539)
Carlo Hamalainen [Tue, 31 Oct 2017 20:43:14 +0000 (04:43 +0800)] 
More general type for nameCacheFromGhc. (#539)

18 months agoReexported modules: Report warnings if argument cannot be parsed or
alexbiehl [Tue, 31 Oct 2017 20:31:18 +0000 (21:31 +0100)] 
Reexported modules: Report warnings if argument cannot be parsed or

... module cannot be found

18 months agoCopy quickjump.css for nicer error messages
alexbiehl [Tue, 31 Oct 2017 19:59:07 +0000 (20:59 +0100)] 
Copy quickjump.css for nicer error messages

18 months agoCorrect missing title in changelog
alexbiehl [Tue, 31 Oct 2017 19:37:56 +0000 (20:37 +0100)] 
Correct missing title in changelog

18 months agoSupported reexported-modules via --reexport flag.
Edward Z. Yang [Thu, 11 Aug 2016 06:43:55 +0000 (23:43 -0700)] 
Supported reexported-modules via --reexport flag.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
18 months agoDecrease threshold for fuzzy matching
alexbiehl [Mon, 30 Oct 2017 18:10:11 +0000 (19:10 +0100)] 
Decrease threshold for fuzzy matching

18 months agoAdd build command to package.json
alexbiehl [Mon, 30 Oct 2017 18:07:44 +0000 (19:07 +0100)] 
Add build command to package.json

18 months agoPut Quickjump behind --quickjump flag (#697)
Alexander Biehl [Mon, 30 Oct 2017 09:15:49 +0000 (10:15 +0100)] 
Put Quickjump behind --quickjump flag (#697)

18 months agoAdd QuickJump version to meta.json (#696)
Alexander Biehl [Mon, 30 Oct 2017 07:45:51 +0000 (08:45 +0100)] 
Add QuickJump version to meta.json (#696)

18 months agoFix tiny typo in docs (#693)
Veronika Romashkina [Tue, 24 Oct 2017 05:36:20 +0000 (09:36 +0400)] 
Fix tiny typo in docs (#693)

19 months agoQuick Jump: Show error when loading 'doc-index.json' failed (#691)
Tim Baumann [Tue, 10 Oct 2017 07:50:59 +0000 (09:50 +0200)] 
Quick Jump: Show error when loading 'doc-index.json' failed (#691)

19 months agoUse <details> element for collapsibles (#690)
Tim Baumann [Mon, 9 Oct 2017 16:33:09 +0000 (18:33 +0200)] 
Use <details> element for collapsibles (#690)

* Remove unnecessary call to 'collapseSection'

The call is unnecessary since there is no corresponding toggle for hiding the
section of orphan instances.

* Use <details> for collapsibles

This makes them work even when JS is disabled. Closes #560.

19 months agoInhibit output of coverage information for hidden modules. (#687)
Merijn Verstraaten [Wed, 4 Oct 2017 14:03:13 +0000 (16:03 +0200)] 
Inhibit output of coverage information for hidden modules. (#687)

* Inhibit output of coverage information for hidden modules.

* Add changelog entry.

19 months agoAdd compile step that bundles and compresses JS files (#684)
Tim Baumann [Sat, 23 Sep 2017 20:02:01 +0000 (22:02 +0200)] 
Add compile step that bundles and compresses JS files (#684)

* Add compile step that bundles and compresses JS files

Also, manage dependencies on third-party JS libraries using NPM.

* Compile JS from TypeScript

* Enable 'noImplicitAny' in TypeScript

* QuickJump: use JSX syntax

* Generate source maps from TypeScript for easier debugging

* TypeScript: more accurate type

* Separate quick jump css file from ocean theme

20 months agoMake trigger link configurable (#678)
Alexander Biehl [Fri, 1 Sep 2017 11:03:49 +0000 (13:03 +0200)] 
Make trigger link configurable (#678)

QuickNav: Configurable show/hide trigger

20 months agoRename "Search" tab to "Quick Jump"
Alexander Biehl [Fri, 1 Sep 2017 09:01:36 +0000 (11:01 +0200)] 
Rename "Search" tab to "Quick Jump"

20 months agoAdd missing js files to data-files (#677)
Alexander Biehl [Fri, 1 Sep 2017 07:35:19 +0000 (09:35 +0200)] 
Add missing js files to data-files (#677)

20 months agoUse relative URL when no docBaseUrl given
Alexander Biehl [Fri, 1 Sep 2017 07:20:34 +0000 (09:20 +0200)] 
Use relative URL when no docBaseUrl given

20 months agoWrite meta.json when generating html output (#676)
Alexander Biehl [Wed, 30 Aug 2017 07:24:56 +0000 (09:24 +0200)] 
Write meta.json when generating html output (#676)

20 months agoFix test fallout (again)
alexbiehl [Tue, 29 Aug 2017 15:56:47 +0000 (17:56 +0200)] 
Fix test fallout (again)

20 months agoQuickNav: Also use baseUrl for doc-index.json request
Alexander Biehl [Tue, 29 Aug 2017 09:48:36 +0000 (11:48 +0200)] 
QuickNav: Also use baseUrl for doc-index.json request

20 months agoQuickNav: Make docbase configurable
Alexander Biehl [Tue, 29 Aug 2017 09:40:19 +0000 (11:40 +0200)] 
QuickNav: Make docbase configurable

20 months agoInclude subordinates in content index
alexbiehl [Tue, 29 Aug 2017 05:55:38 +0000 (07:55 +0200)] 
Include subordinates in content index

20 months agoRemoved `nowrap` for interface method sigs (#674)
Paolo Veronelli [Tue, 29 Aug 2017 05:42:13 +0000 (07:42 +0200)] 
Removed `nowrap` for interface method sigs (#674)

with nowrap the interfaces method sigs would expand at libitum

20 months agoContent search css
alexbiehl [Mon, 28 Aug 2017 17:14:55 +0000 (19:14 +0200)] 
Content search css

20 months agoAccept tests
alexbiehl [Mon, 28 Aug 2017 16:49:22 +0000 (18:49 +0200)] 
Accept tests

20 months agoLoad javascript below the fold
alexbiehl [Mon, 28 Aug 2017 16:47:43 +0000 (18:47 +0200)] 
Load javascript below the fold

20 months agoAdd search button to #page-menu
alexbiehl [Mon, 28 Aug 2017 16:44:08 +0000 (18:44 +0200)] 
Add search button to #page-menu

20 months agoFix tests for content search
alexbiehl [Mon, 28 Aug 2017 16:39:58 +0000 (18:39 +0200)] 
Fix tests for content search

20 months agoContent search for haddock html doc
alexbiehl [Sun, 27 Aug 2017 16:50:16 +0000 (18:50 +0200)] 
Content search for haddock html doc

20 months agoGenerate an index for package content search (#662)
Florian Eggenhofer [Sun, 27 Aug 2017 16:21:56 +0000 (18:21 +0200)] 
Generate an index for package content search (#662)

Generate an index for package content search

20 months agohaddock: Add Documentation.Haddock.Markup to other-modules
Ben Gamari [Tue, 22 Aug 2017 13:15:03 +0000 (09:15 -0400)] 
haddock: Add Documentation.Haddock.Markup to other-modules

21 months agoHyperlinker: Avoid linear lookup in enrichToken (#669)
Alexander Biehl [Sat, 19 Aug 2017 18:35:27 +0000 (20:35 +0200)] 
Hyperlinker: Avoid linear lookup in enrichToken (#669)

* Make Span strict in Position

* Hyperlinker: Use a proper map to enrich tokens

21 months agoRefactoring: Make doc renaming monadic
alexbiehl [Wed, 16 Aug 2017 07:06:40 +0000 (09:06 +0200)] 
Refactoring: Make doc renaming monadic

This allows us to later throw warnings if can't find an identifier

21 months agoBifoldable and Bitraversable for DocH and MetaDoc
alexbiehl [Wed, 16 Aug 2017 06:20:01 +0000 (08:20 +0200)] 
Bifoldable and Bitraversable for DocH and MetaDoc

21 months agoProvide --show-interface option to dump interfaces (#645)
Alexander Biehl [Sun, 6 Aug 2017 11:18:02 +0000 (13:18 +0200)] 
Provide --show-interface option to dump interfaces (#645)

* WIP: Provide --show-interface option to dump interfaces

Like ghcs own --show-iface this flag dumps a binary interface file to
stdout in a human (and machine) readable fashion. Currently it uses
json as output format.

* Fill all the jsonNull stubs

* Rework Bifunctor instance of DocH, update changelog and documentation

* replace changelog, bring DocMarkupH doc back

* Update CHANGES.md

* Update CHANGES.md

* Move Control.Arrow up

It would result in unused import if the Bifunctor instance is not generated.

21 months agoBump haddock-library in haddock-api
Alexander Biehl [Sun, 6 Aug 2017 10:44:07 +0000 (12:44 +0200)] 
Bump haddock-library in haddock-api

21 months agoBump haddock-library
Alexander Biehl [Sun, 6 Aug 2017 10:43:25 +0000 (12:43 +0200)] 
Bump haddock-library

21 months agoFix: Generate pattern signatures for constructors exported as patterns (#663)
Tim Baumann [Sun, 6 Aug 2017 09:33:38 +0000 (11:33 +0200)] 
Fix: Generate pattern signatures for constructors exported as patterns (#663)

* Fix pretty-printing of pattern signatures

Pattern synonyms can have up to two contexts, both having a
different semantic meaning: The first holds the constraints
required to perform the matching, the second contains the
constraints provided by a successful pattern match. When the
first context is empty but the second is not it is necessary
to render the first, empty context.

* Generate pattern synonym signatures for ctors exported as patterns

This fixes #653.

* Simplify extractPatternSyn

It is not necessary to generate the simplest type signature since
it will be simplified when pretty-printed.

* Add changelog entries for PR #663

* Fix extractPatternSyn error message

21 months agoFix renaming after instance signature specializing (#660)
Moritz Drexl [Sat, 5 Aug 2017 14:44:40 +0000 (16:44 +0200)] 
Fix renaming after instance signature specializing (#660)

* rework rename

* Add regression test for Bug 613

* update tests

* update changelog

21 months agoPrepare haddock-library-1.4.5 release headdock-library-1.4.5
alexbiehl [Mon, 31 Jul 2017 19:50:24 +0000 (21:50 +0200)] 
Prepare haddock-library-1.4.5 release

21 months agoChangelog for haddock-library
alexbiehl [Mon, 31 Jul 2017 19:19:15 +0000 (21:19 +0200)] 
Changelog for haddock-library

21 months agoFixup haddock
Alexander Biehl [Mon, 31 Jul 2017 18:35:49 +0000 (20:35 +0200)] 
Fixup haddock

21 months agoMove `DocMarkup` from haddock-api to haddock-library (#659)
Alexander Biehl [Mon, 31 Jul 2017 18:15:32 +0000 (20:15 +0200)] 
Move `DocMarkup` from haddock-api to haddock-library (#659)

* Move `DocMarkup` from haddock-api to haddock-library

* Move more markup related functions

* Markup module

* CHANGELOG

21 months agoBump haddock to 2.18.2, haddock-library to 1.4.5
alexbiehl [Thu, 27 Jul 2017 05:28:57 +0000 (07:28 +0200)] 
Bump haddock to 2.18.2, haddock-library to 1.4.5

22 months agoUpdate README ghc-8.2 v2.18
Herbert Valerio Riedel [Thu, 20 Jul 2017 10:32:16 +0000 (12:32 +0200)] 
Update README

Also improves markup and removes/fixes redundant/obsolete parts

[skip ci]

22 months agoMention new-build in README
Herbert Valerio Riedel [Thu, 20 Jul 2017 10:18:38 +0000 (12:18 +0200)] 
Mention new-build in README

22 months agoAdd cheatsheet to haddock.cabal
Herbert Valerio Riedel [Thu, 20 Jul 2017 10:12:55 +0000 (12:12 +0200)] 
Add cheatsheet to haddock.cabal

22 months agoImport @aisamanra's Haddock cheatsheet
Herbert Valerio Riedel [Thu, 20 Jul 2017 10:08:53 +0000 (12:08 +0200)] 
Import @aisamanra's Haddock cheatsheet

from https://github.com/aisamanra/haddock-cheatsheet

22 months agoBeef up haddock description (#658)
Alexander Biehl [Thu, 20 Jul 2017 09:25:54 +0000 (11:25 +0200)] 
Beef up haddock description (#658)

* Beef up haddock description

* Handle empty lines

22 months agoDrop obsolete/misleading `stability: experimental`
Herbert Valerio Riedel [Thu, 20 Jul 2017 08:19:56 +0000 (10:19 +0200)] 
Drop obsolete/misleading `stability: experimental`

This .cabal property has long been considered obsolete

22 months agohaddock-api: add changelog pointing to haddock's changelog
Herbert Valerio Riedel [Thu, 20 Jul 2017 08:17:48 +0000 (10:17 +0200)] 
haddock-api: add changelog pointing to haddock's changelog

This addresses
https://github.com/haskell/haddock/issues/638#issuecomment-309283297

22 months agoRefactor .cabal to use sub-lib for vendored lib
Herbert Valerio Riedel [Thu, 20 Jul 2017 08:02:06 +0000 (10:02 +0200)] 
Refactor .cabal to use sub-lib for vendored lib

A practical benefit is that we can control the build-depends and also
avoid some recompilation between library and test-suite.

22 months agoAvoid trivial use of LambdaCase
Herbert Valerio Riedel [Thu, 20 Jul 2017 08:00:34 +0000 (10:00 +0200)] 
Avoid trivial use of LambdaCase

otherwise we can't test w/ e.g. GHC 7.4.2

22 months agoTweak haddock-api.cabal for pending release
Herbert Valerio Riedel [Thu, 20 Jul 2017 07:43:55 +0000 (09:43 +0200)] 
Tweak haddock-api.cabal for pending release

22 months agoPrepare 2.18.1 release (#657)
Alexander Biehl [Thu, 20 Jul 2017 07:20:38 +0000 (09:20 +0200)] 
Prepare 2.18.1 release (#657)

22 months agoFix compilation of lib:haddock-library w/ GHC < 8
Herbert Valerio Riedel [Thu, 20 Jul 2017 07:08:47 +0000 (09:08 +0200)] 
Fix compilation of lib:haddock-library w/ GHC < 8

22 months agoFix #249 (#655)
Bryn Edwards [Mon, 17 Jul 2017 05:51:20 +0000 (06:51 +0100)] 
Fix #249 (#655)

22 months agoAvoid missing home module warning (#652)
Alex Biehl [Fri, 7 Jul 2017 22:33:12 +0000 (00:33 +0200)] 
Avoid missing home module warning (#652)

* Avoid missing home module warning

* Update haddock-library.cabal

22 months agoRemove redudant import warning (#651)
Alex Biehl [Fri, 7 Jul 2017 17:17:15 +0000 (19:17 +0200)] 
Remove redudant import warning (#651)

22 months agoAvoid errors on non UTF-8 Windows (#566)
Yuji Yamamoto [Tue, 4 Jul 2017 14:13:12 +0000 (23:13 +0900)] 
Avoid errors on non UTF-8 Windows (#566)

* Avoid errors on non UTF-8 Windows

Problem
====

haddock exits with errors like below:

`(1)`

```
haddock: internal error: <stderr>: hPutChar: invalid argument (invalid character)
```

`(2)`

```
haddock: internal error: Language\Haskell\HsColour\Anchors.hs: hGetContents: invalid argument (invalid byte sequence)
```

`(1)` is caused by printing [the "bullet" character](http://www.fileformat.info/info/unicode/char/2022/index.htm) onto stderr.
For example, this warning contains it:

```
Language\Haskell\HsColour\ANSI.hs:62:10: warning: [-Wmissing-methods]
    • No explicit implementation for
        ‘toEnum’
    • In the instance declaration for ‘Enum Highlight’
```

`(2)` is caused when the input file of `readFile` contains some Unicode characters.
In the case above, '⇒' is the cause.

Environment
----

OS: Windows 10
haddock: 2.17.3
GHC: 8.0.1

Solution
====

Add `hSetEncoding handle utf8` to avoid the errors.

Note
====

- I found the detailed causes by these changes for debugging:
    - https://github.com/haskell/haddock/commit/8f29edb6b02691c1cf4c479f6c6f3f922b35a55b
    - https://github.com/haskell/haddock/commit/1dd23bf2065a1e1f2c14d0f4abd847c906b4ecb4
- These errors happen even after executing `chcp 65001` on the console.
  According to the debug code, `hGetEncoding stderr` returns `CP932` regardless of the console encoding.

* Avoid 'internal error: <stderr>: hPutChar: invalid argument (invalid character)' non UTF-8 Windows

Better solution for 59411754a6db41d17820733c076e6a72bcdbd82b's (1)

22 months agoFix test failures on Windows (#564)
Yuji Yamamoto [Mon, 3 Jul 2017 20:37:58 +0000 (05:37 +0900)] 
Fix test failures on Windows (#564)

* Ignore .stack-work

* Fix for windows: use nul instead of /dev/null

* Fix for windows: canonicalize line separator

* Also normalize osx line endings

22 months agoDocument record fields when DuplicateRecordFields is enabled (#649)
Alex Biehl [Mon, 3 Jul 2017 17:43:04 +0000 (19:43 +0200)] 
Document record fields when DuplicateRecordFields is enabled (#649)

22 months agoFix haddock: internal error: links: UnhelpfulSpan (#561)
Bartosz Nitka [Sun, 2 Jul 2017 10:12:01 +0000 (11:12 +0100)] 
Fix haddock: internal error: links: UnhelpfulSpan (#561)

* Fix haddock: internal error: links: UnhelpfulSpan

This fixes #554 for me. I believe this is another fall out
of `wildcard-refactor`, like #549.

* Comment to clarify why we take the methods name location

22 months agoMake per-argument docs for class methods work again (#648)
Alex Biehl [Thu, 29 Jun 2017 17:54:49 +0000 (19:54 +0200)] 
Make per-argument docs for class methods work again (#648)

* Make per-argument docs for class methods work again

* Test case

22 months agoDon't include names with empty subordinates in maps (#644)
Alex Biehl [Fri, 23 Jun 2017 16:30:45 +0000 (18:30 +0200)] 
Don't include names with empty subordinates in maps (#644)

These are unecessary anyway and just blow up interface size

22 months agoLookup fixities for reexports without subordinates (#642)
Alex Biehl [Fri, 23 Jun 2017 12:44:41 +0000 (14:44 +0200)] 
Lookup fixities for reexports without subordinates (#642)

So we agree that reexported declarations which do not have subordinates (for example top-level functions) shouldn't have gotten fixities reexported according to the current logic. I wondered why for example Prelude.($) which is obviously reexported from GHC.Base has fixities attached (c.f. http://hackage.haskell.org/package/base-4.9.1.0/docs/Prelude.html#v:-36-).

The reason is this: In mkMaps we lookup all the subordinates of top-level declarations, of course top-level functions don't have subordinates so for them the resulting list is empty. In #644 I established the invariant that there won't be any empty lists in the subordinate map. Without the patch from #642 top-level functions now started to fail reexporting their fixities.

23 months agoUse new function getNameToInstancesIndex instead of tcRnGetInfo (#639)
Doug Wilson [Thu, 22 Jun 2017 18:23:29 +0000 (06:23 +1200)] 
Use new function getNameToInstancesIndex instead of tcRnGetInfo (#639)

* Use new function getNameToInstancesIndex instead of tcRnGetInfo

There is some significant performance improvement in the ghc testsuite.

haddock.base: -23.3%
haddock.Cabal: -16.7%
haddock.compiler: -19.8%

* Remove unused imports

23 months agoHaddock support for bundled pattern synonyms (#627)
Christiaan Baaij [Fri, 9 Jun 2017 06:26:43 +0000 (08:26 +0200)] 
Haddock support for bundled pattern synonyms (#627)

* Haddock support for bundled pattern synonyms

* Add fixities to bundled pattern synonyms

* Add bundled pattern synonyms to the synopsis

* Store bundled pattern fixities in expItemFixities

* Add test for bundled pattern synonyms

* Stop threading fixities

* Include bundled pattern synonyms for re-exported data types

Sadly, fixity information isn't found for re-exported data types

* Support for pattern synonyms

* Modify tests after #631

* Test some reexport variations

* Also lookup bundled pattern synonyms from `InstalledInterface`s

* Check isExported for bundled pattern synonyms

* Pattern synonym is exported check

* Always look for pattern synonyms in the current module

Another overlooked cornercase

* Account for types named twice in export lists

Also introduce a fast function for nubbing on a `Name` and use it
throughout the code base.

* correct fixities for reexported pattern synonyms

* Fuse concatMap and map

* Remove obsolete import

* Add pattern synonyms to visible exports

* Fix test

* Remove corner case

23 months agoUse NameSet for isExported check (#632)
Alex Biehl [Sun, 4 Jun 2017 09:56:38 +0000 (11:56 +0200)] 
Use NameSet for isExported check (#632)

23 months agoAllow user defined signatures for pattern synonyms (#631)
Alex Biehl [Sat, 3 Jun 2017 18:37:28 +0000 (20:37 +0200)] 
Allow user defined signatures for pattern synonyms (#631)

23 months agoInclude `driver-test/*.hs` sdist (#630)
Alex Biehl [Thu, 1 Jun 2017 08:40:33 +0000 (10:40 +0200)] 
Include `driver-test/*.hs` sdist (#630)

This lead to #629.

23 months agoMake haddock-library and haddock-api warning free (#626)
Alex Biehl [Tue, 30 May 2017 17:02:12 +0000 (19:02 +0200)] 
Make haddock-library and haddock-api warning free (#626)

23 months agoClear fixme comment (#625)
Alex Biehl [Tue, 30 May 2017 17:01:37 +0000 (19:01 +0200)] 
Clear fixme comment (#625)

23 months agoImprove Syb code (#621)
Doug Wilson [Sat, 27 May 2017 17:54:53 +0000 (05:54 +1200)] 
Improve Syb code (#621)

Specialize.hs and Ast.hs are modified to have their Syb code not recurse into
Name or Id in HsSyn types.

Specialize.hs is refactored to have fewer calls to Syb functions.

Syb.hs has some foldl calls replaced with foldl' calls.

There is still a lot of performance on the floor of Ast.hs. The RenamedSource
is traversed many times, and lookupBySpan is very inefficient. everywhereBut and
lookupBySpan dominate the runtime whenever --hyperlinked-source is passed.

2 years agoConsequently use inClass and notInClass in haddock-library (#617)
Alex Biehl [Sat, 13 May 2017 10:48:10 +0000 (12:48 +0200)] 
Consequently use inClass and notInClass in haddock-library (#617)

These allow attoparsec to do some clever lookup optimization

2 years agoHaddock: Fix broken lazy IO in prologue reading (#615)
Alex Biehl [Fri, 12 May 2017 19:02:33 +0000 (21:02 +0200)] 
Haddock: Fix broken lazy IO in prologue reading (#615)

We previously used withFile in conjunction with hGetContents. The list returned
by the latter wasn't completely forced by the time we left the withFile block,
meaning that we would try to read from a closed handle.

2 years agoImprove documenation of Haddock markup (#614)
Nathan Collins [Thu, 11 May 2017 09:47:55 +0000 (02:47 -0700)] 
Improve documenation of Haddock markup (#614)

* Improve documentation of Haddock markup.

- document that Haddock supports inferring types top-level functions
  with without type signatures, but also explain why using this
  feature is discouraged. Looks like this feature has been around
  since version 2.0.0.0 in 2008!

- rework the "Module description" section:

  - move the general discussion of field formatting to the section
    intro and add examples illustrating the prose for multiline
    fields.

  - mention that newlines are preserved in some multiline fields, but
    not in others (I also noticed that commas in the `Copyright` field
    are not preserved; I'll look into this bug later).

  - add a subsection for the module description fields documentation,
    and put the field keywords in code formatting (double back ticks)
    instead of double quotes, to be consistent with the typesetting of
    keywords in other parts of the documentation.

  - mention that "Named chunks" are not supported in the long-form
    "Module description" documentation.

- fix formatting of keywords in the "Module attributes"
  section. Perhaps these errors were left over from an automatic
  translation to ReST from some other format as part of the transition
  to using Sphinx for Haddock documentation? Also, add a missing
  reference here; it just said "See ?"!

- update footnote about special treatment for re-exporting partially
  imported modules not being implemented. In my tests it's not
  implemented at all -- I tried re-exporting both `import B
  hiding (f)` and `import B (a, b)` style partial imports, and in both
  cases got the same result as with full imports `import B`: I only
  get a module reference.

* Rework the `Controlling the documentation structure` section.

My main goal was to better explain how to use Haddock without an
export list, since that's my most common use case, but I hope I
improved the section overall:

- remove the incomplete `Omitting the export list` section and fold it
  into the other sections. In particular, summarize the differences
  between using and not using an export list -- i.e. control over what
  and in what order is documented -- in the section lead.

- add "realistic" examples that use the structure markup, both with
  and without an export list. I wanted a realistic example here to
  capture how it can be useful to explain the relationship between a
  group of functions in a section, in addition to documenting their
  individual APIs.

- make it clear that you can associate documentation chunks with
  documentation sections when you aren't using an export list, and
  that doing it in the most obvious way -- i.e. with `-- |`, as you
  can in the export list -- doesn't work without an export list. It
  took me a while to figure this out the first time, since the docs
  didn't explain it at all before.

- add a "no export list" example to the section header section.

- add more cross references.

* Add examples of gotchas for markup in `@...@`.

I'm not sure this will help anyone, since I think most people first
learn about `@...@` by reading other people's Haddocks, but I've
documented the mistakes which I've made and then gotten confused by.

* Use consistent Capitalization of Titles.

Some titles were in usual title caps, and others only had the first
word capitalized. I chose making them all use title caps because that
seems to make the cross references look better.