aboutsummaryrefslogtreecommitdiff
path: root/haddock-api/src/Haddock.hs
Commit message (Collapse)AuthorAgeFilesLines
* Allow to hide interfaces when rendering multiple components (#1487)Marcin Szamotulski2022-05-211-18/+19
| | | | | This is useful when one wishes to `--gen-contents` when rendering multiple components, but one does not want to render all modules. This is in particular useful when adding base package.
* coot/multiple packages (ghc-9.2) (#1418)Marcin Szamotulski2021-08-081-23/+58
|
* Fix to build with HEADSylvain Henry2021-02-091-1/+0
|
* Update for LoggerSylvain Henry2021-02-081-17/+19
|
* Merge remote-tracking branch 'origin/ghc-head' into wip/ghc-head-mergeBen Gamari2021-02-061-1/+6
|\
| * Add -j[n] CLI param to Haddock executableAlex Biehl2021-01-091-1/+6
| | | | | | | | It translates to `--ghcopt=-j[n]`
* | Merge remote-tracking branch 'origin/ghc-9.0' into ghc-headBen Gamari2021-01-131-9/+8
|\ \ | |/ |/|
| * Merge remote-tracking branch 'origin/ghc-8.10' into ghc-9.0Ben Gamari2021-01-051-9/+8
| |\
| | * Remove unused `Haddock.Utils` functionsAlec Theriault2020-03-281-0/+1
| | | | | | | | | | | | | | | | | | | | | * removed functions in `Haddock.Utils` that were not used anywhere (or exported from the `haddock-api` package) * moved GHC-specific utils from `Haddock.Utils` to `Haddock.GhcUtils`
| | * Merge branch 'ghc-8.8' into ghc-8.10Alec Theriault2020-03-201-8/+6
| | |\
| | | * Fix crash when there are no srcspans in the file due to CPPZubin Duggal2019-10-071-1/+1
| | | |
| | | * Merge branch 'ghc-8.6' into ghc-8.8Alec Theriault2019-03-031-6/+3
| | | |\
| | | | * `--show-interface` should output to stdout. (#1040)Alec Theriault2019-02-281-1/+2
| | | | | | | | | | | | | | | Fixes #864.
| | | | * Load plugins when compiling each module (#983)Alec Theriault2018-12-201-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * WIP: Load (typechecker) plugins from language pragmas * Revert "Load plugins when starting a GHC session (#905)" This reverts commit 72d82e52f2a6225686d9668790ac33c1d1743193. * Simplify plugin initialization code
| | | * | Better identifier parsingAlec Theriault2019-02-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * '(<|>)' 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-251-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* | | | | DynFlags's unit fields moved to HscEnvSylvain Henry2020-11-301-13/+13
| | | | |
* | | | | Fix after Plugins moved into HscEnvSylvain Henry2020-11-161-4/+5
| | | | |
* | | | | Fix after HomeUnitSylvain Henry2020-08-121-1/+0
| | | | |
* | | | | Rename hsctarget into backendSylvain Henry2020-07-021-3/+4
|/ / / /
* | | | Fix after unit refactoringSylvain Henry2020-06-081-3/+4
| | | |
* | | | Fix after Config module renamingSylvain Henry2020-05-141-1/+1
| | | |
* | | | Fix for GHC.Unit.* modulesSylvain Henry2020-04-271-2/+1
| | | |
* | | | UnitId has been renamed into UnitSylvain Henry2020-04-271-5/+5
| | | |
* | | | Module structureSylvain Henry2020-04-241-3/+3
| | | |
* | | | Module renamingSylvain Henry2020-04-101-1/+0
| | | |
* | | | Modules: TypesSylvain Henry2020-03-181-1/+1
| | | |
* | | | Modules: Driver (#13009)Sylvain Henry2020-02-191-2/+2
| | | |
* | | | Module hierarchy: runtime (cf #13009)Sylvain Henry2020-02-101-2/+2
|/ / /
* | | Refactor for withTiming changes.Andreas Klebinger2019-10-211-5/+5
| | |
* | | Remove reference to Opt_SplitObjs flagBen Gamari2019-03-041-2/+1
| | | | | | | | | | | | Split-objects has been removed.
* | | Clean up logic for guessing `-B` and `--lib` (#1026)Alec Theriault2019-02-131-76/+71
|/ / | | | | | | | | | | | | | | | | | | Haddock built with the `in-ghc-tree` flag tries harder to find the GHC lib folder and its own resources. This should make it possible to use `in-ghc-tree`-built Haddock without having to specify the `-B` and `--lib` options (just how you can use in-tree GHC without always specifying the `-B` option). The logic to do this relies on `getExecutablePath`, so we only get this auto-detection on platforms where this function works.
* | Use `.hie` files for the Hyperlinker backend (#977)Alec Theriault2019-01-311-13/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # 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
* | Merge branch 'ghc-8.6' into ghc-headAlec Theriault2018-11-101-10/+17
|\|
| * Avoid some partialityAlec Theriault2018-10-261-10/+17
| | | | | | | | | | | | | | | | 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.
* | Merge branch 'ghc-8.6' into ghc-headAlec Theriault2018-10-161-3/+8
|\|
| * Merge branch 'ghc-8.4' into ghc-8.6Alec Theriault2018-10-161-3/+8
| |\
| | * Make --package-version optional for --hoogle generation (#899)Alexander Biehl2018-08-061-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | * Make --package-version optional for --hoogle generation * Import mkVersion * It's makeVersion not mkVersion
| * | Load plugins when starting a GHC session (#905)Matthew Pickering2018-08-211-1/+5
| |/ | | | | | | | | | | Fixes #900 (cherry picked from commit e6aa8fb47b9477cc5ef5e46097524fe83e080f6d)
* | Load plugins when starting a GHC session (#905)Matthew Pickering2018-08-211-1/+5
| | | | | | Fixes #900
* | Let `haddock-test` bypass interface version check (#890)Alec Theriault2018-07-201-5/+16
|/ | | | | | | | | This means `haddock-test` might * crash during deserialization * deserialize incorrectly Still - it means things _might_ work where they were previously sure not to.
* @since includes package name (#749)Alec Theriault2018-03-271-43/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Metadoc stores a package name This means that '@since' annotations can be package aware. * Get the package name the right way This should extract the package name for `@since` annotations the right way. I had to move `modulePackageInfo` around to do this and, in the process, I took the liberty to update it. Since it appears that finding the package name is something that can fail, I added a warning for this case. * Silence warnings * Hide package for local 'since' annotations As discussed, this is still the usual case (and we should avoid being noisy for it). Although this commit is large, it is basically only about threading a 'Maybe Package' from 'Haddock.render' all the way to 'Haddock.Backends.Xhtml.DocMarkup.renderMeta'. * Bump binary interface version * Add a '--since-qual' option This controls when to qualify since annotations with the package they come from. The default is always, but I've left an 'external' variant where only those annotations coming from outside of the current package are qualified. * Make ParserSpec work * Make Fixtures work * Use package name even if package version is not available The @since stuff needs only the package name passed in, so it makes sense to not be forced to pass in a version too.
* Useful cost centres, timers and allocation counters (#785)Alexander Biehl2018-03-231-20/+39
| | | | | | | | | * Add some useful cost-centres for profiling * Add withTiming for each haddock phase Invoking haddock with `--optghc=-ddump-timings` now shows the amount of time spent and the number of allocated bytes for each phase.
* Filter RTS arguments from 'ghc-options' arguments (#725)Alec Theriault2018-02-011-2/+15
| | | This fixes #666.
* Use the GHC lexer for the Hyperlinker backend (#714)Alec Theriault2018-02-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Merge remote-tracking branch 'origin/master' into ghc-headalexbiehl2017-10-311-7/+30
|\
| * Reexported modules: Report warnings if argument cannot be parsed oralexbiehl2017-10-311-7/+10
| | | | | | | | ... module cannot be found
| * Supported reexported-modules via --reexport flag.Edward Z. Yang2017-10-311-1/+19
| | | | | | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
| * Put Quickjump behind --quickjump flag (#697)Alexander Biehl2017-10-301-5/+7
| |
| * Add QuickJump version to meta.json (#696)Alexander Biehl2017-10-301-1/+1
| |