Skip to content
Snippets Groups Projects
  1. Jul 20, 2017
  2. Jul 17, 2017
  3. Jul 07, 2017
  4. Jul 04, 2017
    • Yuji Yamamoto's avatar
      Avoid errors on non UTF-8 Windows (#566) · 22cbf4d9
      Yuji Yamamoto authored and Alex Biehl's avatar Alex Biehl committed
      * Avoid errors on non UTF-8 Windows
      
      Problem
      ====
      
      haddock exits with errors like below:
      
      `(1)`
      
      ```
      haddock: internal error: <stderr>: hPutChar: invalid argument (invalid character)
      ```
      
      `(2)`
      
      ```
      haddock: internal error: Language\Haskell\HsColour\Anchors.hs: hGetContents: invalid argument (invalid byte sequence)
      ```
      
      `(1)` is caused by printing [the "bullet" character](http://www.fileformat.info/info/unicode/char/2022/index.htm) onto stderr.
      For example, this warning contains it:
      
      ```
      Language\Haskell\HsColour\ANSI.hs:62:10: warning: [-Wmissing-methods]
          • No explicit implementation for
              ‘toEnum’
          • In the instance declaration for ‘Enum Highlight’
      ```
      
      `(2)` is caused when the input file of `readFile` contains some Unicode characters.
      In the case above, '⇒' is the cause.
      
      Environment
      ----
      
      OS: Windows 10
      haddock: 2.17.3
      GHC: 8.0.1
      
      Solution
      ====
      
      Add `hSetEncoding handle utf8` to avoid the errors.
      
      Note
      ====
      
      - I found the detailed causes by these changes for debugging:
          - https://github.com/haskell/haddock/commit/8f29edb6b02691c1cf4c479f6c6f3f922b35a55b
          - https://github.com/haskell/haddock/commit/1dd23bf2065a1e1f2c14d0f4abd847c906b4ecb4
      - These errors happen even after executing `chcp 65001` on the console.
        According to the debug code, `hGetEncoding stderr` returns `CP932` regardless of the console encoding.
      
      * Avoid 'internal error: <stderr>: hPutChar: invalid argument (invalid character)' non UTF-8 Windows
      
      Better solution for 59411754a6db41d17820733c076e6a72bcdbd82b's (1)
      22cbf4d9
  5. Jul 03, 2017
  6. Jul 02, 2017
  7. Jun 29, 2017
  8. Jun 23, 2017
  9. Jun 22, 2017
  10. Jun 09, 2017
    • Christiaan Baaij's avatar
      Haddock support for bundled pattern synonyms (#627) · 87c551fc
      Christiaan Baaij authored and Alex Biehl's avatar Alex Biehl committed
      * Haddock support for bundled pattern synonyms
      
      * Add fixities to bundled pattern synonyms
      
      * Add bundled pattern synonyms to the synopsis
      
      * Store bundled pattern fixities in expItemFixities
      
      * Add test for bundled pattern synonyms
      
      * Stop threading fixities
      
      * Include bundled pattern synonyms for re-exported data types
      
      Sadly, fixity information isn't found for re-exported data types
      
      * Support for pattern synonyms
      
      * Modify tests after #631
      
      * Test some reexport variations
      
      * Also lookup bundled pattern synonyms from `InstalledInterface`s
      
      * Check isExported for bundled pattern synonyms
      
      * Pattern synonym is exported check
      
      * Always look for pattern synonyms in the current module
      
      Another overlooked cornercase
      
      * Account for types named twice in export lists
      
      Also introduce a fast function for nubbing on a `Name` and use it
      throughout the code base.
      
      * correct fixities for reexported pattern synonyms
      
      * Fuse concatMap and map
      
      * Remove obsolete import
      
      * Add pattern synonyms to visible exports
      
      * Fix test
      
      * Remove corner case
      87c551fc
  11. Jun 04, 2017
  12. Jun 03, 2017
  13. Jun 01, 2017
  14. May 30, 2017
  15. May 27, 2017
    • Doug Wilson's avatar
      Improve Syb code (#621) · 506f6144
      Doug Wilson authored and Alex Biehl's avatar Alex Biehl committed
      Specialize.hs and Ast.hs are modified to have their Syb code not recurse into
      Name or Id in HsSyn types.
      
      Specialize.hs is refactored to have fewer calls to Syb functions.
      
      Syb.hs has some foldl calls replaced with foldl' calls.
      
      There is still a lot of performance on the floor of Ast.hs. The RenamedSource
      is traversed many times, and lookupBySpan is very inefficient. everywhereBut and
      lookupBySpan dominate the runtime whenever --hyperlinked-source is passed.
      506f6144
  16. May 13, 2017
  17. May 12, 2017
  18. May 11, 2017
    • Nathan Collins's avatar
      Improve documenation of Haddock markup (#614) · d300632c
      Nathan Collins authored and Alex Biehl's avatar Alex Biehl committed
      * Improve documentation of Haddock markup.
      
      - document that Haddock supports inferring types top-level functions
        with without type signatures, but also explain why using this
        feature is discouraged. Looks like this feature has been around
        since version 2.0.0.0 in 2008!
      
      - rework the "Module description" section:
      
        - move the general discussion of field formatting to the section
          intro and add examples illustrating the prose for multiline
          fields.
      
        - mention that newlines are preserved in some multiline fields, but
          not in others (I also noticed that commas in the `Copyright` field
          are not preserved; I'll look into this bug later).
      
        - add a subsection for the module description fields documentation,
          and put the field keywords in code formatting (double back ticks)
          instead of double quotes, to be consistent with the typesetting of
          keywords in other parts of the documentation.
      
        - mention that "Named chunks" are not supported in the long-form
          "Module description" documentation.
      
      - fix formatting of keywords in the "Module attributes"
        section. Perhaps these errors were left over from an automatic
        translation to ReST from some other format as part of the transition
        to using Sphinx for Haddock documentation? Also, add a missing
        reference here; it just said "See ?"!
      
      - update footnote about special treatment for re-exporting partially
        imported modules not being implemented. In my tests it's not
        implemented at all -- I tried re-exporting both `import B
        hiding (f)` and `import B (a, b)` style partial imports, and in both
        cases got the same result as with full imports `import B`: I only
        get a module reference.
      
      * Rework the `Controlling the documentation structure` section.
      
      My main goal was to better explain how to use Haddock without an
      export list, since that's my most common use case, but I hope I
      improved the section overall:
      
      - remove the incomplete `Omitting the export list` section and fold it
        into the other sections. In particular, summarize the differences
        between using and not using an export list -- i.e. control over what
        and in what order is documented -- in the section lead.
      
      - add "realistic" examples that use the structure markup, both with
        and without an export list. I wanted a realistic example here to
        capture how it can be useful to explain the relationship between a
        group of functions in a section, in addition to documenting their
        individual APIs.
      
      - make it clear that you can associate documentation chunks with
        documentation sections when you aren't using an export list, and
        that doing it in the most obvious way -- i.e. with `-- |`, as you
        can in the export list -- doesn't work without an export list. It
        took me a while to figure this out the first time, since the docs
        didn't explain it at all before.
      
      - add a "no export list" example to the section header section.
      
      - add more cross references.
      
      * Add examples of gotchas for markup in `@...@`.
      
      I'm not sure this will help anyone, since I think most people first
      learn about `@...@` by reading other people's Haddocks, but I've
      documented the mistakes which I've made and then gotten confused by.
      
      * Use consistent Capitalization of Titles.
      
      Some titles were in usual title caps, and others only had the first
      word capitalized. I chose making them all use title caps because that
      seems to make the cross references look better.
      d300632c
  19. May 01, 2017
  20. Apr 30, 2017
  21. Apr 29, 2017
  22. Apr 26, 2017
Loading