aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | Support value/type namespaces on identifier linksAlec Theriault2019-02-2517-39/+388
| | | | | | | | | | | | | | | | | | | | | | Identifier links can be prefixed with a 'v' or 't' to indicate the value or type namespace of the desired identifier. For example: -- | Some link to a value: v'Data.Functor.Identity' -- -- Some link to a type: t'Data.Functor.Identity' The default is still the type (with a warning about the ambiguity)
* | Fix #1015 with dataConUserTyVars (#1022)Ryan Scott2019-02-041-3/+4
| | | | | | | | | | | | | | The central trick in this patch is to use `dataConUserTyVars` instead of `univ_tvs ++ ex_tvs`, which displays the foralls in a GADT constructor in a way that's more faithful to how the user originally wrote it. Fixes #1015.
* | Miscellaneous improvements to `Convert` (#1020)Alec Theriault2019-02-0311-240/+472
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that Haddock is moving towards working entirely over `.hi` and `.hie` files, all declarations and types are going to be synthesized via the `Convert` module. In preparation for this change, here are a bunch of fixes to this module: * Add kind annotations to type variables in `forall`'s whose kind is not `Type`, unless the kind can be inferred from some later use of the variable. See `implicitForAll` and `noKindTyVars` in particular if you wish to dive into this. * Properly detect `HsQualTy` in `synifyType`. This is done by following suit with what GHC's `toIfaceTypeX` does and checking the first argument of `FunTy{} :: Type` to see if it classified as a given/wanted in the typechecker (see `isPredTy`). * Beef up the logic around figuring out when an explicit `forall` is needed. This includes: observing if any of the type variables will need kind signatures, if the inferred type variable order _without_ a forall will still match the one GHC claims, and some other small things. * Add some (not yet used) functionality for default levity polymorphic type signatures. This functionality similar to `fprint-explicit-runtime-reps`. Couple other smaller fixes only worth mentioning: * Show the family result signature only when it isn't `Type` * Fix rendering of implicit parameters in the LaTeX and Hoogle backends * Better handling of the return kind of polykinded H98 data declarations * Class decls produced by `tyThingToLHsDecl` now contain associated type defaults and default method signatures when appropriate * Filter out more `forall`'s in pattern synonyms
* | Remove `Documentation.Haddock.Utf8`Alec Theriault2019-02-036-96/+7
| | | | | | | | | | | | | | | | | | | | | | | | The circumstances under which this module appeared are completely gone. The Hyperlinker backend no longer needs this module (it uses the more efficient `Encoding` module from `ghc`). Why no deprecation? Because this module really shouldn't exist! - It isn't used in `haddock-library`/`haddock-api` anymore - It was copy pasted directly from `utf8-string` - Folks seeking a boot-lib only solution can use `ghc`'s `Encoding`
* | Fix some Hyperlinker test suite falloutAlec Theriault2019-02-0213-186/+226
| | | | | | | | | | | | | | | | | | | | | | * Amend `ParserSpec` to match new Hyperlinker API - pass in compiler info - strip out null tokens * Make `hypsrc-test` pass reliably - strip out `local-*` ids - strip out `line-*` ids from the `ClangCppBug` test - re-accept output
* | CI: fetch GHC from validate artifactAlec Theriault2019-02-021-25/+32
| | | | | | | | Should help make CI be less broken
* | Tentatively declare support for unreleased base-4.13/ghc-8.8Herbert Valerio Riedel2019-02-021-1/+2
| |
* | Update/modernise haddock-library.cabal fileHerbert Valerio Riedel2019-02-021-40/+45
| |
* | Use `.hie` files for the Hyperlinker backend (#977)Alec Theriault2019-01-3131-5129/+9402
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # Summary This is a large architectural change to the Hyperlinker. * extract link (and now also type) information from `.hie` instead of doing ad-hoc SYB traversals of the `RenamedSource`. Also adds a superb type-on-hover feature (#715). * re-engineer the lexer to avoid needless string conversions. By going directly through GHC's `P` monad and taking bytestring slices, we avoid a ton of allocation and have better handling of position pragmas and CPP. In terms of performance, the Haddock side of things has gotten _much_ more efficient. Unfortunately, much of this is cancelled out by the increased GHC workload for generating `.hie` files. For the full set of boot libs (including `ghc`-the-library) * the sum of total time went down by 9-10% overall * the sum of total allocations went down by 6-7% # Motivation Haddock is moving towards working entirely over `.hi` and `.hie` files. This change means we no longer need the `RenamedSource` from `TypecheckedModule` (something which is _not_ in `.hi` files). # Details Along the way a bunch of things were fixed: * Cross package (and other) links are now more reliable (#496) * The lexer tries to recover from errors on every line (instead of at CPP boundaries) * `LINE`/`COLUMN` pragmas are taken into account * filter out zero length tokens before rendering * avoid recomputing the `ModuleName`-based `SrcMap` * remove the last use of `Documentation.Haddock.Utf8` (see #998) * restructure temporary folder logic for `.hi`/`.hie` model
* | Lone typofixGabor Greif2019-01-221-1/+1
| |
* | Accept new output `GHC.Maybe` -> `Data.Maybe` (#996)Alec Theriault2019-01-106-52/+52
| | | | | | | | Since 53874834b779ad0dfbcde6650069c37926da1b79 in GHC, "GHC.Maybe" is marked as `not-home`. That changes around some test output.
* | Visible kind application haddock updatemynguyen2018-12-3010-24/+76
| |
* | Address deprecation warnings in `haddock-test` (#988)Alec Theriault2018-12-271-1/+1
| | | | | | Fixes #885.
* | Remove `haddock-test`'s dep. on `syb` (#987)Alec Theriault2018-12-272-7/+13
| | | | | | | | The functionality is easily inlined into one short function: `gmapEverywhere`. This doesn't warrant pulling in another package.
* | Properly synify and render promoted type variables (#985)Alec Theriault2018-12-237-43/+256
| | | | | | | | | | | | | | | | * Synify and render properly promoted type variables Fixes #923. * Accept output
* | Refactor names + unused functions (#982)Alec Theriault2018-12-177-62/+26
| | | | | | | | | | | | | | This commit should not introduce any change in functionality! * consistently use `getOccString` to convert `Name`s to strings * compare names directly when possible (instead of comparing strings) * get rid of unused utility functions
* | Output better debug infromation on internal error in extractDeclZejun Wu2018-12-141-1/+3
| | | | | | | | This will make investigation of #979 easier
* | Fix warnings, accept outputAlec Theriault2018-12-1210-13/+7
| | | | | | | | | | | | | | * remove redundant imports (only brought to light due to recent work for improving redundant import detection) * fix a bug that was casuing exports to appear in reverse order * fix something in haddock-library that prevented compilation on old GHC's
* | [TTG: Handling Source Locations] Foundation and PatShayan-Najd2018-11-237-36/+75
| | | | | | | | | | | | | | | | | | | | | | Trac Issues #15495 This patch removes the ping-pong style from HsPat (only, for now), using the plan laid out at https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow/HandlingSourceLocations (solution A). - the class `HasSrcSpan`, and its functions (e.g., `cL` and `dL`), are introduced - some instances of `HasSrcSpan` are introduced - some constructors `L` are replaced with `cL` - some patterns `L` are replaced with `dL->L` view pattern - some type annotation are necessarily updated (e.g., `Pat p` --> `Pat (GhcPass p)`)
* | Merge pull request #970 from alpmestan/alp/fix-promotionflagAlec Theriault2018-11-157-10/+15
|\ \ | | | | | | Follow GHC HEAD's HsTypes.Promoted -> BasicTypes.PromotionFlag change
| * | Follow GHC HEAD's HsTypes.Promoted -> BasicTypes.PromotionFlag changeAlp Mestanogullari2018-11-157-10/+15
|/ / | | | | | | It got introduced in ghc/ghc@ae2c9b40f5b6bf272251d1f4107c60003f541b62.
* | Fix some broken links (#15733)Fangyi Zhou2018-11-122-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: For links in subpackages as well. https://phabricator.haskell.org/D5257 Test Plan: Manually verify links Reviewers: mpickering, bgamari, osa1 Reviewed By: osa1 GHC Trac Issues: #15733 Differential Revision: https://phabricator.haskell.org/D5262
* | Merge branch 'ghc-8.6' into ghc-headAlec Theriault2018-11-10138-2826/+6141
|\|
| * Merge pull request #949 from haskell/wip/new-oceanAlec Theriault2018-11-10124-2659/+5530
| |\ | | | | | | Introduce NewOcean theme.
| | * Replace oplus/ominus expander/collapser icons with trianglesAlec Theriault2018-11-101-3/+3
| | |
| | * Update changelogAlec Theriault2018-11-101-1/+3
| | |
| | * Merge branch 'ghc-8.6' into wip/new-oceanAlec Theriault2018-11-09107-137/+365
| | |\ | | |/ | |/|
| * | Only run MathJax on entities with "mathjax" class (#960)Alec Theriault2018-11-05102-118/+334
| | | | | | | | | | | | | | | | | | | | | Correspondingly, we wrap all inline/diplay math in <span class="mathjax"> ... the math .... </span> This fixes #959.
| * | Fix documentation in `haddock-api` (#957)Alec Theriault2018-10-272-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix misplaced Haddocks in Haddock itself Haddock should be able to generate documentation for 'haddock-api' again. * Make CI check that documentation can be built. * Add back a doc that is OK
| * | Avoid some partialityAlec Theriault2018-10-263-13/+21
| | | | | | | | | | | | | | | | | | | | | | | | AFAICT this wasn't causing any crashes, but that's mostly because we happen not to be forcing `pkgStr` when it would diverge. We come dangerously close to doing that in `ppHtmlIndex`. Fixes #569.
| | * Space out functions moreAlec Theriault2018-11-081-6/+2
| | | | | | | | | | | | | | | Also, functions and data decls now have the same space before and after them.
| | * Clicking on "Contents" navigates to top of pageAlec Theriault2018-11-087-7/+7
| | |
| | * overflow-y 'scroll' -> 'auto'Alec Theriault2018-11-071-2/+2
| | |
| | * Accept HTML output changesAlec Theriault2018-11-0722-283/+381
| | |
| | * Allow "Contents" summary to scroll in a fixed divAlec Theriault2018-11-073-14/+13
| | | | | | | | | | | | | | | In the unfortunate event that the "Contents" summary doesn't fit vertically (like in the "Prelude"), it will be scrollable.
| | * Fix issues around plus/minusAlec Theriault2018-11-077-17/+11
| | | | | | | | | | | | | | | | | | * swap the minimize unicode to something more intuitive * use new unicode expander/collapser for instance lists * address some alignment issues in the "index" page
| | * Revert "Make 'Contents' in NewOcean scrollable"Alec Theriault2018-10-261-2/+0
| | | | | | | | | | | | | | | | | | | | | This reverts commit f909ffd8353d6463fd5dd184998a32aa98d5c922. I missed the fact this also forces the 'Contents' to always go down to the bottom of the page.
| | * Make 'Contents' in NewOcean scrollableAlec Theriault2018-10-261-0/+2
| | | | | | | | | | | | | | | | | | This only happens if the contents block on the left is so big that it doesn't fit (vertically) on the page. If that happens, we want it to be scrollable.
| | * User manual + stuff for building GHC docsAlec Theriault2018-10-262-8/+13
| | |
| | * Accept HTML outputAlec Theriault2018-10-251-5/+7
| | |
| | * Merge branch 'ghc-8.6' into wip/new-oceanAlec Theriault2018-10-254-8/+174
| | |\ | | |/ | |/|
| * | Avoid more conflicts in generated ids (#954)Alec Theriault2018-10-253-6/+173
| | | | | | | | | | | | | | | This fixes #953 by passing more names into the generated ids.
| * | Fix typo in a warningSimon Jakobi2018-10-231-2/+1
| | |
| | * Indent more things + slightly smaller fontAlec Theriault2018-10-251-2/+2
| | |
| | * Don't hide bullets in method docsAlec Theriault2018-10-252-4/+4
| | | | | | | | | | | | | | | | | | | | | I think thst CSS was meant only to deal with fields and the effect on bullets was accidental. Fixes #926.
| | * Fix the synopsis buttonAlec Theriault2018-10-241-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Here's these changes are supposed to do: * put the synopsis back on the right side * properly have it on the edge of the screen on wide screens * adjust the background of the synopsis to match the button (otherwise the grey blends in with what is underneath) * get rid of the dotted purple line * the synopsis contents are now scrollable even when in wide screens (this has been a long-standing bug)
| | * Fix copy-pasta error in data-filesAlec Theriault2018-10-242-5/+5
| | |
| | * Resurrect the style-switcherAlec Theriault2018-10-245-30/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes #810. Looks like things were broken during the quickjump refactor of the JS. For the (git) record: I do not think the style switcher is a good idea. I'm fixing it for the same reason @mzero added it; as an answer to "rumblings from some that they didn't want their pixels changed on bit"
| | * Update JS dependenciesAlec Theriault2018-10-244-1860/+3510
| | | | | | | | | | | | | | | This was done via `npm audit fix`. I think this fixes #903 along with some more serious vulnerabilities that nobody seems to have noticed.
| | * Update 'data-files' to include NewOcean stuffAlec Theriault2018-10-211-0/+5
| | |