| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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)
|
|
|
|
|
|
|
|
|
|
| |
* Ignore .stack-work
* Fix for windows: use nul instead of /dev/null
* Fix for windows: canonicalize line separator
* Also normalize osx line endings
|
| |
|
|
|
|
|
|
|
|
|
| |
* Fix haddock: internal error: links: UnhelpfulSpan
This fixes #554 for me. I believe this is another fall out
of `wildcard-refactor`, like #549.
* Comment to clarify why we take the methods name location
|
|
|
|
|
|
| |
* Make per-argument docs for class methods work again
* Test case
|
|
|
| |
These are unecessary anyway and just blow up interface size
|
|
|
|
|
| |
So we agree that reexported declarations which do not have subordinates (for example top-level functions) shouldn't have gotten fixities reexported according to the current logic. I wondered why for example Prelude.($) which is obviously reexported from GHC.Base has fixities attached (c.f. http://hackage.haskell.org/package/base-4.9.1.0/docs/Prelude.html#v:-36-).
The reason is this: In mkMaps we lookup all the subordinates of top-level declarations, of course top-level functions don't have subordinates so for them the resulting list is empty. In #644 I established the invariant that there won't be any empty lists in the subordinate map. Without the patch from #642 top-level functions now started to fail reexporting their fixities.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Use new function getNameToInstancesIndex instead of tcRnGetInfo
There is some significant performance improvement in the ghc testsuite.
haddock.base: -23.3%
haddock.Cabal: -16.7%
haddock.compiler: -19.8%
* Remove unused imports
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
| |
|
|
|
| |
This lead to #629.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
| |
These allow attoparsec to do some clever lookup optimization
|
|
|
|
|
| |
We previously used withFile in conjunction with hGetContents. The list returned
by the latter wasn't completely forced by the time we left the withFile block,
meaning that we would try to read from a closed handle.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
(#610) introduced lazy decoding for docs from InstalledInterface but
forgot to remove the original calls to get and put_
|
|
|
|
| |
These are only used in case of a doc reexport so most of the time
decoding these is wasted work.
|
|
|
| |
Now the "collapsed" cookie stores which sections have changed state instead of which are collapsed.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Release haddock/haddock-api 2.17.4 and haddock-library 1.4.3
* Set version bounds for haddock-library
NB: This allows GHC 8.2.1's base
* Set version bounds for haddock & haddock-api
The version bounds support GHC 8.2
* Merge (temporary) v2.17.3 branch into v2.17
This allows us to delete the v2.17.3 branch
* Fixup changelog
* Pin down haddock-api to a single version
as otherwise `haddock`'s package version has no proper meaning
* fix source-repo spec for haddock-api
|
| |
|
| |
|
|
|
|
|
|
|
| |
I forgot a conditional, oops!
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
(cherry picked from commit a0c4790e15a2d3fab8d830eee8fcd639fe6d39c9)
|
| |
|
| |
|
|
|
|
|
| |
18ed871afb82560d5433b2f53e31b4db9353a74e switched to a new MathJax URL
but didn't update the tests.
|
| |
|
|
|
| |
cf. https://travis-ci.org/haskell/haddock/jobs/225512194#L377
|
| |
|
|
|
| |
Currently doctest doesn't support ghc-head
|
| |
|
| |
|
| |
|
|
|
|
| |
This also exposes Documentation.Haddock.Utf8
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
MathJax is shutting down their CDN:
https://www.mathjax.org/cdn-shutting-down/
They recommend migrating to cdnjs.
|
|
|
|
|
| |
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
(cherry picked from commit 4eb765ca4205c79539d60b7afa9b7e261a4a49fe)
|
|
|
|
|
| |
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
(cherry picked from commit 07b88c5d4e79b87a319fbb08f8ea01dbb41063c1)
|
|
|
|
|
| |
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
(cherry picked from commit bf3c4d72a0fda38561376eac7eda216158783267)
|