aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Drop Avails from export list"alexbiehl2017-08-221-1/+1
| | | | This reverts commit a850ba86d88a4fb9c0bd175453a2580e544e3def.
* Bump ghc version for haddock-api testsalexbiehl2017-08-221-1/+1
|
* Drop Avails from export listalexbiehl2017-08-211-1/+1
|
* Merge remote-tracking branch 'origin/master' into ghc-headalexbiehl2017-08-21222-1837/+5887
|\
| * Hyperlinker: Avoid linear lookup in enrichToken (#669)Alexander Biehl2017-08-192-41/+53
| | | | | | | | | | | | * Make Span strict in Position * Hyperlinker: Use a proper map to enrich tokens
| * Refactoring: Make doc renaming monadicalexbiehl2017-08-163-95/+116
| | | | | | | | This allows us to later throw warnings if can't find an identifier
| * Bifoldable and Bitraversable for DocH and MetaDocalexbiehl2017-08-162-1/+62
| |
| * Provide --show-interface option to dump interfaces (#645)Alexander Biehl2017-08-068-1/+167
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
| * Bump haddock-library in haddock-apiAlexander Biehl2017-08-061-1/+1
| |
| * Bump haddock-libraryAlexander Biehl2017-08-061-1/+1
| |
| * Fix: Generate pattern signatures for constructors exported as patterns (#663)Tim Baumann2017-08-068-109/+412
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-055-170/+418
| | | | | | | | | | | | | | | | | | | | * rework rename * Add regression test for Bug 613 * update tests * update changelog
| * Prepare haddock-library-1.4.5 releasealexbiehl2017-07-313-2/+15
| |
| * Changelog for haddock-libraryalexbiehl2017-07-311-0/+3
| |
| * Fixup haddockAlexander Biehl2017-07-311-1/+1
| |
| * Move `DocMarkup` from haddock-api to haddock-library (#659)Alexander Biehl2017-07-3111-101/+100
| | | | | | | | | | | | | | | | | | | | * Move `DocMarkup` from haddock-api to haddock-library * Move more markup related functions * Markup module * CHANGELOG
| * Bump haddock to 2.18.2, haddock-library to 1.4.5alexbiehl2017-07-274-4/+8
| |
| * Update READMEHerbert Valerio Riedel2017-07-201-42/+16
| | | | | | | | | | | | Also improves markup and removes/fixes redundant/obsolete parts [skip ci]
| * Mention new-build in READMEHerbert Valerio Riedel2017-07-201-0/+8
| |
| * Add cheatsheet to haddock.cabalHerbert Valerio Riedel2017-07-201-0/+2
| |
| * Import @aisamanra's Haddock cheatsheetHerbert Valerio Riedel2017-07-205-0/+1181
| | | | | | | | from https://github.com/aisamanra/haddock-cheatsheet
| * Beef up haddock description (#658)Alexander Biehl2017-07-201-2/+20
| | | | | | | | | | | | * Beef up haddock description * Handle empty lines
| * Drop obsolete/misleading `stability: experimental`Herbert Valerio Riedel2017-07-203-3/+0
| | | | | | | | This .cabal property has long been considered obsolete
| * haddock-api: add changelog pointing to haddock's changelogHerbert Valerio Riedel2017-07-202-0/+4
| | | | | | | | | | This addresses https://github.com/haskell/haddock/issues/638#issuecomment-309283297
| * Refactor .cabal to use sub-lib for vendored libHerbert Valerio Riedel2017-07-201-21/+42
| | | | | | | | | | A practical benefit is that we can control the build-depends and also avoid some recompilation between library and test-suite.
| * Avoid trivial use of LambdaCaseHerbert Valerio Riedel2017-07-201-2/+1
| | | | | | | | otherwise we can't test w/ e.g. GHC 7.4.2
| * Tweak haddock-api.cabal for pending releaseHerbert Valerio Riedel2017-07-201-10/+23
| |
| * Prepare 2.18.1 release (#657)Alexander Biehl2017-07-204-6/+6
| |
| * Fix compilation of lib:haddock-library w/ GHC < 8Herbert Valerio Riedel2017-07-201-0/+6
| |
| * Fix #249 (#655)Bryn Edwards2017-07-172-0/+2
| |
| * Avoid missing home module warning (#652)Alex Biehl2017-07-083-2/+26
| | | | | | | | | | | | * Avoid missing home module warning * Update haddock-library.cabal
| * 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)
| * Fix test failures on Windows (#564)Yuji Yamamoto2017-07-036-4/+25
| | | | | | | | | | | | | | | | | | | | * Ignore .stack-work * Fix for windows: use nul instead of /dev/null * Fix for windows: canonicalize line separator * Also normalize osx line endings
| * Document record fields when DuplicateRecordFields is enabled (#649)Alex Biehl2017-07-033-1/+186
| |
| * 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-294-4/+127
| | | | | | | | | | | | * Make per-argument docs for class methods work again * Test case
| * Don't include names with empty subordinates in maps (#644)Alex Biehl2017-06-234-1/+99
| | | | | | 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-0915-113/+1329
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-035-0/+42
| |
| * Include `driver-test/*.hs` sdist (#630)Alex Biehl2017-06-011-0/+1
| | | | | | This lead to #629.
| * Make haddock-library and haddock-api warning free (#626)Alex Biehl2017-05-304-12/+9
| |
| * 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.
| * Consequently use inClass and notInClass in haddock-library (#617)Alex Biehl2017-05-132-11/+19
| | | | | | These allow attoparsec to do some clever lookup optimization
| * Haddock: Fix broken lazy IO in prologue reading (#615)Alex Biehl2017-05-121-2/+3
| | | | | | | | | | 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.
| * Improve documenation of Haddock markup (#614)Nathan Collins2017-05-111-93/+357
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.