Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/haskell/haddock. Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
  1. Jul 14, 2022
    • Zubin's avatar
      fixes · 6a9278e1
      Zubin authored
      6a9278e1
    • Zubin's avatar
      Replace SYB traversals · 8030115d
      Zubin authored
      8030115d
    • Zubin's avatar
      Strictness and Text · 4a815cf9
      Zubin authored
      4a815cf9
    • Alec Theriault's avatar
      Haddock interfaces produced from `.hi` files · dfab819b
      Alec Theriault authored and Zubin's avatar Zubin committed
      = Summary
      
      This is a large architectural change to how Haddock interfaces are
      computed. This is a rebased variant of the second half of Simon Jakobi's
      (@sjakobi) Hi Haddock GSOC project.
      
      The idea is to work over top of the contents of `.hi` files
      instead of over the internal compiler representations of ASTs.
      This has a wide array of benefits, but two main ones are:
      
        * Haddock doesn't necessarily need to recompile modules to generate
          docs - if the right `.hi` files already exist, it'll automatically
          load them. Even better: this is nothing more that the existing
          recompilation avoidance logic in GHC.
      
        * Haddock no longer operates over concrete syntax - all declarations
          in the final docs are the result of reifying a `TyThing`. This means
          that the docs can be somewhat agnostic of users' particular choice
          to add certain kind annotations, use certain  special syntax, etc.
      
      == Before
      
      Very roughly the previous way this worked was:
      
        1. A plugin is installed that saves GHCs renamed and typechecked sources
      
        2. `GhcMake.load'` is used to load `.hi`-files into GHC
      
        3. The parsed and renamed sources in the typechecked module are
           traversed in various ways accumulating all the right info
      
      == After
      
      Now, the process
      
        1. `GhcMake.load'` is used to load `.hi`-files into GHC
      
        2. The loaded interfaces are traversed in dependency order to get the information
           required to generate documentation
      
      (cherry picked from commit 41ed9c36)
      (cherry picked from commit 9cc652cc2d989617c02dc3db14b7c2b768276baf)
      
      Don't write iface
      
      Perf and updates
      dfab819b
  2. Jul 06, 2022
  3. Jun 02, 2022
  4. May 31, 2022
  5. May 25, 2022
  6. May 04, 2022
  7. May 02, 2022
  8. Apr 28, 2022
  9. Apr 25, 2022
  10. Apr 07, 2022
  11. Apr 06, 2022
  12. Apr 01, 2022
  13. Mar 24, 2022
  14. Mar 22, 2022
  15. Mar 16, 2022
  16. Mar 14, 2022
  17. Mar 11, 2022
  18. Mar 07, 2022
  19. Mar 04, 2022
  20. Feb 25, 2022
  21. Jan 04, 2022
  22. Dec 28, 2021
  23. Dec 17, 2021
  24. Dec 16, 2021
  25. Dec 15, 2021
  26. Dec 02, 2021
  27. Nov 27, 2021
  28. Nov 04, 2021
  29. Oct 28, 2021
Loading