aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Many LaTeX backend fixesAlec Theriault2019-03-0929-732/+253
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | After this commit, we can run with `--latex` on all boot libraries without crashing (although the generated LaTeX still fails to compile in a handful of larger packages like `ghc` and `base`). * Add newlines after all block elements in LaTeX. This is important to prevent the final output from being more an more indented. See the `latext-test/src/Example` test case for a sample of this. * Support associated types in class declarations (but not yet defaults) * Several small issues for producing compiling LaTeX; - avoid empy `\haddockbeginargs` lists (ex: `type family Any`) - properly escape identifiers depending on context (ex: `Int#`) - add `vbox` around `itemize`/`enumerate` (so they can be in tables) * Several spacing fixes: - limit the width of `Pretty`-arranged monospaced code - cut out extra space characters in export lists - only escape spaces if there are _multiple_ spaces - allow type signatures to be multiline (even without docs) * Remove uninteresting and repetitive `main.tex`/`haddock.sty` files from `latex-test` test reference output. Fixes #935, #929 (LaTeX docs for `text` build & compile) Fixes #727, #930 (I think both are really about type families...)
* Avoid multi-line `emph` in LaTeX backendAlec Theriault2019-03-095-1/+93
| | | | | | | | `markupWarning` often processes inputs which span across paragraphs. Unfortunately, LaTeX's `emph` is not made to handle this (and will crash). Fixes #936.
* Better support for default methods in classesAlec Theriault2019-03-0913-51/+606
| | | | | | | | | | * default methods now get rendered differently * default associated types get rendered * fix a forgotten `s/TypeSig/ClassOpSig/` refactor in LaTeX backend * LaTeX backend now renders default method signatures NB: there is still no way to document default class members and the NB: LaTeX backend still crashes on associated types
* Add .hi, .dyn_hi, etc files to .gitignoreAlec Theriault2019-03-091-0/+6
| | | | Fixes #1030.
* Merge branch 'ghc-8.6' into ghc-8.8Alec Theriault2019-03-03141-553/+3574
|\
| * Increase contrast of Linuwal theme (#1037)gbaz2019-03-011-4/+6
| | | | | | | | | | | | | | | | | | | | This is to address the concern that, on less nice and older screens, some of the shades of grey blend in too easily with the white background. * darken the font slightly * darken slightly the grey behind type signatures and such * add a border and round the corners on code blocks * knock the font down by one point
| * `--show-interface` should output to stdout. (#1040)Alec Theriault2019-02-281-1/+2
| | | | | | Fixes #864.
| * Menu item controlling which instances are expanded/collapsed (#1007)Xia Li-yao2019-02-278-229/+635
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds a menu item (like "Quick Jump") for options related to displaying instances. This provides functionality for: * expanding/collapsing all instances on the currently opened page * controlling whether instances are expanded/collapsed by default * controlling whether the state of instances should be "remembered" This new functionality is implemented in Typescript in `details-helper`. The built-in-themes style switcher also got a revamp so that all three of QuickJump, the style switcher, and instance preferences now have the same style and implementation structure. See also: https://mail.haskell.org/pipermail/haskell-cafe/2019-January/130495.html Fixes #698. Co-authored-by: Lysxia <lysxia@gmail.com> Co-authored-by: Nathan Collins <conathan@galois.com>
| * Fix standalone deriving docsAlec Theriault2019-02-253-2/+235
| | | | | | | | | | | | | | | | Docs on standalone deriving decls for classes with associated types should be associated with the class instance, not the associated type instance. Fixes #1033
| * Make a fixture of weird parsing of lists (#997)Oleg Grenrus2019-02-045-1/+47
| | | | | | | | | | | | | | | | | | | | | | | | The second example is interesting. If there's a list directly after the header, and that list has deeper structure, the parser is confused: It finds two lists: - One with the first nested element, - everything after it I'm not trying to fix this, as I'm not even sure this is a bug, and not a feature.
| * Update README instructions for StackNathan Collins2019-02-021-2/+2
| | | | | | No need to `stack install` Haddock to test it. Indeed, `stack install` changes the `haddock` on user's `PATH` if `~/.local/bin` is on user's `PATH` which may not be desirable when hacking on Haddock.
| * Loosen 'QuickCheck' and 'hspec' boundsAlec Theriault2019-01-282-5/+5
| | | | | | | | | | It looks like the new versions don't cause any breakage and loosening the bounds helps deps fit in one stack resolver.
| * Fix #1004 with a pinch of dropForAllsRyan Scott2019-01-273-1/+2076
| |
| * Keep forall on H98 existential data constructors (#1003)Alec Theriault2019-01-234-11/+27
| | | | | | | | | | | | | | The information about whether or not there is a source-level `forall` is already available on a `ConDecl` (as `con_forall`), so we should use it instead of always assuming `False`! Fixes #1002.
| * Print kinded tyvars in constructors for Hoogle (#993)Alec Theriault2019-01-073-2/+22
| | | | | | Fixes #992
| * Load plugins when compiling each module (#983)Alec Theriault2018-12-202-6/+9
| | | | | | | | | | | | | | | | | | | | * WIP: Load (typechecker) plugins from language pragmas * Revert "Load plugins when starting a GHC session (#905)" This reverts commit 72d82e52f2a6225686d9668790ac33c1d1743193. * Simplify plugin initialization code
| * More uniform handling of `forall`'s in HTML/LaTeXAlec Theriault2018-11-267-72/+259
| | | | | | | | | | | | | | * don't forget to print explicit `forall`'s when there are arg docs * when printing an explicit `forall`, print all tyvars Fixes #973
| * Add blockquote stylingAlec Theriault2018-11-121-0/+7
| | | | | | | | | | | | Matches b71da1feabf33efbbc517ac376bb690b5a604c2f from hackage-server. Fixes #967.
| * Rename 'NewOcean' theme to 'Linuwial'Alec Theriault2018-11-11107-179/+179
| |
* | Fix bogus identifier defaultingAlec Theriault2019-02-263-9/+160
| | | | | | | | | | | | | | | | This avoids a situation in which an identifier would get defaulted to a completely different identifier. Prior to this commit, the 'Bug1035' test case would hyperlink 'Foo' into 'Bar'! Fixes #1035.
* | Better identifier parsingAlec Theriault2019-02-2521-135/+679
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * '(<|>)' and '`elem`' now get parsed and rendered properly as links * 'DbModule'/'DbUnitId' now properly get split apart into two links * tuple names now get parsed properly * some more small niceties... The identifier parsing code is more precise and more efficient (although to be fair: it is also longer and in its own module). On the rendering side, we need to pipe through information about backticks/parens/neither all the way through from renaming to the backends. In terms of impact: a total of 35 modules in the entirety of the bootlib + ghc lib docs change. The only "regression" is things like '\0'. These should be changed to @\\0@ (the path by which this previously worked seems accidental).
* | 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