<feed xmlns='http://www.w3.org/2005/Atom'>
<title>haddock.git/hypsrc-test/ref/src/ClangCppBug.html, branch ghc-gitlab-ghc-9.4.1</title>
<subtitle>Haddock with an org backend (haddorg).
</subtitle>
<id>https://g.ypei.me/haddock.git/atom?h=ghc-gitlab-ghc-9.4.1</id>
<link rel='self' href='https://g.ypei.me/haddock.git/atom?h=ghc-gitlab-ghc-9.4.1'/>
<link rel='alternate' type='text/html' href='https://g.ypei.me/haddock.git/'/>
<updated>2019-02-11T17:27:41+00:00</updated>
<entry>
<title>Remove workaround for now-fixed Clang CPP bug (#1028)</title>
<updated>2019-02-11T17:27:41+00:00</updated>
<author>
<name>Alec Theriault</name>
<email>alec.theriault@gmail.com</email>
</author>
<published>2019-02-11T17:27:41+00:00</published>
<link rel='alternate' type='text/html' href='https://g.ypei.me/haddock.git/commit/?id=9790200cb854b75e00afaf2eea49a22b7223b200'/>
<id>urn:sha1:9790200cb854b75e00afaf2eea49a22b7223b200</id>
<content type='text'>
Before LLVM 6.0.1 (or 10.0 on Apple LLVM), there was a bug where
lines that started with an octothorpe but turned out not
to lex like pragmas would have an extra line added after them.

Since this bug has been fixed upstream and that it doesn't have dire
consequences anyways, the workaround is not really worth it
anymore - we can just tell people to update their clang version (or re-structure
their pragma code).</content>
</entry>
<entry>
<title>Removes `haddock-test`s dependency on `xml`/`xhtml` (#1027)</title>
<updated>2019-02-10T11:32:52+00:00</updated>
<author>
<name>Alec Theriault</name>
<email>alec.theriault@gmail.com</email>
</author>
<published>2019-02-10T11:32:52+00:00</published>
<link rel='alternate' type='text/html' href='https://g.ypei.me/haddock.git/commit/?id=4e8321de13225f1f5bdec8f39993e9b1aa0831a8'/>
<id>urn:sha1:4e8321de13225f1f5bdec8f39993e9b1aa0831a8</id>
<content type='text'>
This means that `html-test`, `latex-test`, `hoogle-test`, and
`hypsrc-test` now only depend on GHC boot libs. So we should
now be able to build and run these as part of GHC's testsuite. \o/

The reference output has changed very slightly, in three ways:

  * we don't convert quotes back into `&amp;quot;` as the `xml` lib did
  * we don't add extra `&amp;nbsp;` as the `xml` lib did
  * we now remove the entire footer `div` (instead of just emptying it)</content>
</entry>
<entry>
<title>Fix some Hyperlinker test suite fallout</title>
<updated>2019-02-03T02:06:12+00:00</updated>
<author>
<name>Alec Theriault</name>
<email>alec.theriault@gmail.com</email>
</author>
<published>2019-01-31T20:43:39+00:00</published>
<link rel='alternate' type='text/html' href='https://g.ypei.me/haddock.git/commit/?id=bf07847e45356024e10d1a325f015ac53544ea85'/>
<id>urn:sha1:bf07847e45356024e10d1a325f015ac53544ea85</id>
<content type='text'>
* Amend `ParserSpec` to match new Hyperlinker API
    - pass in compiler info
    - strip out null tokens

* Make `hypsrc-test` pass reliably
    - strip out `local-*` ids
    - strip out `line-*` ids from the `ClangCppBug` test
    - re-accept output
</content>
</entry>
<entry>
<title>Use `.hie` files for the Hyperlinker backend (#977)</title>
<updated>2019-01-31T09:37:25+00:00</updated>
<author>
<name>Alec Theriault</name>
<email>alec.theriault@gmail.com</email>
</author>
<published>2019-01-31T09:37:25+00:00</published>
<link rel='alternate' type='text/html' href='https://g.ypei.me/haddock.git/commit/?id=1b26460fb3b5df5215cc1e6715661cbc7c950085'/>
<id>urn:sha1:1b26460fb3b5df5215cc1e6715661cbc7c950085</id>
<content type='text'>
# 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</content>
</entry>
</feed>
