aboutsummaryrefslogtreecommitdiff
path: root/haddock-api/src/Haddock
Commit message (Collapse)AuthorAgeFilesLines
* Provide --show-interface option to dump interfaces (#645)Alexander Biehl2017-08-062-0/+115
| | | | | | | | | | | | | | | | | | | | | | * 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.
* Fix: Generate pattern signatures for constructors exported as patterns (#663)Tim Baumann2017-08-063-108/+174
| | | | | | | | | | | | | | | | | | | | | | | | * 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
* Fix renaming after instance signature specializing (#660)Moritz Drexl2017-08-051-81/+51
| | | | | | | | | | * rework rename * Add regression test for Bug 613 * update tests * update changelog
* Move `DocMarkup` from haddock-api to haddock-library (#659)Alexander Biehl2017-07-315-96/+6
| | | | | | | | | | * Move `DocMarkup` from haddock-api to haddock-library * Move more markup related functions * Markup module * CHANGELOG
* Remove redudant import warning (#651)Alex Biehl2017-07-071-4/+5
|
* Avoid errors on non UTF-8 Windows (#566)Yuji Yamamoto2017-07-041-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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)
* Document record fields when DuplicateRecordFields is enabled (#649)Alex Biehl2017-07-031-1/+1
|
* Fix haddock: internal error: links: UnhelpfulSpan (#561)Bartosz Nitka2017-07-022-4/+6
| | | | | | | | | * 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
* Make per-argument docs for class methods work again (#648)Alex Biehl2017-06-291-2/+3
| | | | | | * Make per-argument docs for class methods work again * Test case
* Don't include names with empty subordinates in maps (#644)Alex Biehl2017-06-231-1/+9
| | | These are unecessary anyway and just blow up interface size
* Lookup fixities for reexports without subordinates (#642)Alex Biehl2017-06-231-1/+2
| | | | | 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.
* Use new function getNameToInstancesIndex instead of tcRnGetInfo (#639)Doug Wilson2017-06-221-42/+40
| | | | | | | | | | | | * 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
* Haddock support for bundled pattern synonyms (#627)Christiaan Baaij2017-06-0910-113/+261
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Use NameSet for isExported check (#632)Alex Biehl2017-06-041-3/+3
|
* Allow user defined signatures for pattern synonyms (#631)Alex Biehl2017-06-032-0/+6
|
* Make haddock-library and haddock-api warning free (#626)Alex Biehl2017-05-302-5/+0
|
* Clear fixme comment (#625)Alex Biehl2017-05-301-3/+2
|
* Improve Syb code (#621)Doug Wilson2017-05-273-53/+88
| | | | | | | | | | | | 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.
* Fix Binary instance for InstalledInterface (#611)Alex Biehl2017-05-011-2/+0
| | | | (#610) introduced lazy decoding for docs from InstalledInterface but forgot to remove the original calls to get and put_
* Lazily decode docMap and argMap (#610)Alex Biehl2017-05-011-3/+3
| | | | These are only used in case of a doc reexport so most of the time decoding these is wasted work.
* Cherry-picked remaining commits from haddock-2.17.4-release (#603)Alex Biehl2017-04-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | * Release haddock/haddock-api 2.17.4 and haddock-library 1.4.3 * Set version bounds for haddock-library NB: This allows GHC 8.2.1's base * Set version bounds for haddock & haddock-api The version bounds support GHC 8.2 * Merge (temporary) v2.17.3 branch into v2.17 This allows us to delete the v2.17.3 branch * Fixup changelog * Pin down haddock-api to a single version as otherwise `haddock`'s package version has no proper meaning * fix source-repo spec for haddock-api
* Remove anything related to obsolete frames modealexbiehl2017-04-261-62/+8
|
* Render (signature) only if it actually is a signature!Edward Z. Yang2017-04-251-2/+5
| | | | | | | I forgot a conditional, oops! Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> (cherry picked from commit a0c4790e15a2d3fab8d830eee8fcd639fe6d39c9)
* Hoogle: Correctly print classes with associated data typesAlexander Biehl2017-04-251-1/+4
|
* Expand signatures for class declarationsAlexander Biehl2017-04-251-7/+17
|
* Explicit import list ofr Control.DeepSeq in Haddock.Interface.Createalexbiehl2017-04-111-1/+1
|
* Read files for hyperlinker eagerlyalexbiehl2017-04-111-4/+8
| | | | This also exposes Documentation.Haddock.Utf8
* Update MathJax URLPhil Ruffwind2017-04-031-1/+1
| | | | | | | MathJax is shutting down their CDN: https://www.mathjax.org/cdn-shutting-down/ They recommend migrating to cdnjs.
* Render help documentation link next to (signature) in title.Edward Z. Yang2017-03-231-1/+8
| | | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> (cherry picked from commit 4eb765ca4205c79539d60b7afa9b7e261a4a49fe)
* Annotate signature docs with (signature)Edward Z. Yang2017-03-231-2/+5
| | | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> (cherry picked from commit 07b88c5d4e79b87a319fbb08f8ea01dbb41063c1)
* Better Backpack support with signature merging.Edward Z. Yang2017-03-231-12/+34
| | | | | | | | | | | | | | | | | | | | When we merge signatures, we gain exports that don't necessarily have a source-level declaration corresponding to them. This meant Haddock dropped them. There are two big limitations: * If there's no export list, we won't report inherited signatures. * If the type has a subordinate, the current hiDecl implementation doesn't reconstitute them. These are probably worth fixing eventually, but this gets us to minimum viable functionality. Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> (cherry picked from commit 6cc832dfb1de6088a4abcaae62b25a7e944d55c3)
* TODO on moduleExports.Edward Z. Yang2017-03-231-1/+5
| | | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> (cherry picked from commit 94610e9b446324f4231fa6ad4c6ac51e4eba8c0e)
* More docs.Edward Z. Yang2017-03-231-0/+5
| | | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> (cherry picked from commit 3d77b373dd5807d5d956719dd7c849a11534fa6a)
* Documentation.Edward Z. Yang2017-03-231-5/+22
| | | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> (cherry picked from commit 0671abfe7e8ceae2269467a30b77ed9d9656e2cc)
* Render signature module tree separately from modules.Edward Z. Yang2017-03-231-1/+14
| | | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> (cherry picked from commit 2067a2d0afa9cef381d26fb7140b67c62f433fc0)
* Add a field marking if interface is a signature or not.Edward Z. Yang2017-03-233-2/+12
| | | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> (cherry picked from commit 930cfbe58e2e87f5a4d431d89a3c204934e6e858)
* Correctly handle Backpack identity/semantic modules.Edward Z. Yang2017-03-231-21/+54
| | | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> (cherry picked from commit 26d6c150b31bc4580ab17cfd07b6e7f9afe10737)
* Print any user-supplied kind signatures on type parameters.Brian Huffman2017-03-231-23/+14
| | | | | This applies to type parameters on data, newtype, type, and class declarations, and also to forall-bound type vars in type signatures.
* Update Haddock w.r.t. new HsImplicitBndrsRichard Eisenberg2017-03-142-3/+5
|
* Merge branch 'ghc-head'Ben Gamari2017-03-1018-140/+213
|\
| * Bump for GHC 8.2Ben Gamari2017-03-091-2/+2
| |
| * Changes to match #13163 in GHCAlan Zimmerman2017-01-262-8/+8
| |
| * Upstream changes re levity polymorphismRichard Eisenberg2017-01-191-7/+3
| |
| * HsIParamTy now has a Located nameAlan Zimmerman2017-01-103-3/+3
| |
| * Matching changes for GHC wip/T12942Alan Zimmerman2016-12-128-18/+34
| |
| * Match changes in GHC wip/T3384 branchAlan Zimmerman2016-12-0710-37/+40
| |
| * Update for refactoring of NameCacheBen Gamari2016-10-131-0/+2
| |
| * Haddock changes for T10598Ryan Scott2016-09-304-6/+10
| | | | | | | | See https://ghc.haskell.org/trac/ghc/ticket/10598
| * Fix rendering of class methods for Eq and OrdBartosz Nitka2016-09-201-1/+3
| | | | | | | | See #549 and GHC issue #12519
| * Disable NFData instances for GHC types when GHC >= 8.2Simon Marlow2016-07-221-2/+4
| |