Skip to content
Snippets Groups Projects
  1. Feb 02, 2019
  2. Jan 31, 2019
    • Alec Theriault's avatar
      Use `.hie` files for the Hyperlinker backend (#977) · 1b26460f
      Alec Theriault authored
      # 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
  3. Jan 22, 2019
  4. Jan 11, 2019
  5. Dec 31, 2018
  6. Dec 27, 2018
  7. Dec 23, 2018
  8. Dec 17, 2018
    • Alec Theriault's avatar
      Refactor names + unused functions (#982) · ed43757a
      Alec Theriault authored
      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
  9. Dec 14, 2018
  10. Dec 12, 2018
    • Alec Theriault's avatar
      Fix warnings, accept output · d66a17f3
      Alec Theriault authored
      * 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
      d66a17f3
  11. Nov 23, 2018
  12. Nov 15, 2018
  13. Nov 12, 2018
  14. Nov 11, 2018
  15. Nov 10, 2018
  16. Nov 09, 2018
  17. Nov 08, 2018
  18. Nov 07, 2018
  19. Nov 06, 2018
  20. Nov 05, 2018
  21. Oct 27, 2018
  22. Oct 26, 2018
    • Alec Theriault's avatar
      Avoid some partiality · 2b94a90a
      Alec Theriault authored
      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.
      2b94a90a
Loading