diff options
| author | Alec Theriault <alec.theriault@gmail.com> | 2019-01-31 01:37:25 -0800 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-01-31 01:37:25 -0800 | 
| commit | 1b26460fb3b5df5215cc1e6715661cbc7c950085 (patch) | |
| tree | 0b5ac6285ecf432021e8365567d48eeb6249f44b /hypsrc-test/ref/src/Literals.html | |
| parent | 4c02498a24e6ceb775528bed043b66340296ad06 (diff) | |
Use `.hie` files for the Hyperlinker backend (#977)
# 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
Diffstat (limited to 'hypsrc-test/ref/src/Literals.html')
| -rw-r--r-- | hypsrc-test/ref/src/Literals.html | 433 | 
1 files changed, 269 insertions, 164 deletions
diff --git a/hypsrc-test/ref/src/Literals.html b/hypsrc-test/ref/src/Literals.html index dfcefc97..62ea32dd 100644 --- a/hypsrc-test/ref/src/Literals.html +++ b/hypsrc-test/ref/src/Literals.html @@ -19,238 +19,334 @@        ><span        >  </span -      ><a name="line-2" -      ></a +      ><span id="line-2" +      ></span        ><span        >  </span -      ><a name="line-3" -      ></a +      ><span id="line-3" +      ></span        ><span        >  </span -      ><a name="line-4" -      ></a -      ><span class="hs-identifier" -      >str</span +      ><span id="line-4" +      ></span +      ><span class="annot" +      ><a href="Literals.html#str" +	><span class="hs-identifier hs-type" +	  >str</span +	  ></a +	></span        ><span        > </span        ><span class="hs-glyph"        >::</span        ><span        > </span +      ><span class="annot"        ><span class="hs-identifier hs-type" -      >String</span +	>String</span +	></span        ><span        >  </span -      ><a name="line-5" -      ></a -      ><a name="str" -      ><a href="Literals.html#str" -	><span class="hs-identifier" -	  >str</span -	  ></a -	></a +      ><span id="line-5" +      ></span +      ><span id="str" +      ><span class="annot" +	><span class="annottext" +	  >str :: String +</span +	  ><a href="Literals.html#str" +	  ><span class="hs-identifier hs-var hs-var" +	    >str</span +	    ></a +	  ></span +	></span        ><span        > </span        ><span class="hs-glyph"        >=</span        ><span        > </span +      ><span class="annot"        ><span class="hs-string" -      >"str literal"</span +	>"str literal"</span +	></span        ><span        >  </span -      ><a name="line-6" -      ></a +      ><span id="line-6" +      ></span        ><span        >  </span -      ><a name="line-7" -      ></a -      ><span class="hs-identifier" -      >num</span -      ><span -      > </span -      ><span class="hs-glyph" -      >::</span -      ><span -      > </span -      ><span class="hs-identifier hs-type" -      >Num</span -      ><span -      > </span -      ><a href="#" -      ><span class="hs-identifier hs-type" -	>a</span -	></a -      ><span -      > </span -      ><span class="hs-glyph" -      >=></span -      ><span -      > </span -      ><a href="#" -      ><span class="hs-identifier hs-type" -	>a</span -	></a +      ><span id="line-7" +      ></span +      ><span id="local-6989586621679043622" +      ><span class="annot" +	><a href="Literals.html#num" +	  ><span class="hs-identifier hs-type" +	    >num</span +	    ></a +	  ></span +	><span +	> </span +	><span class="hs-glyph" +	>::</span +	><span +	> </span +	><span class="annot" +	><span class="hs-identifier hs-type" +	  >Num</span +	  ></span +	><span +	> </span +	><span class="annot" +	><a href="#" +	  ><span class="hs-identifier hs-type" +	    >a</span +	    ></a +	  ></span +	><span +	> </span +	><span class="hs-glyph" +	>=></span +	><span +	> </span +	><span class="annot" +	><a href="#" +	  ><span class="hs-identifier hs-type" +	    >a</span +	    ></a +	  ></span +	></span        ><span        >  </span -      ><a name="line-8" -      ></a -      ><a name="num" -      ><a href="Literals.html#num" -	><span class="hs-identifier" -	  >num</span -	  ></a -	></a +      ><span id="line-8" +      ></span +      ><span id="num" +      ><span class="annot" +	><span class="annottext" +	  >num :: a +</span +	  ><a href="Literals.html#num" +	  ><span class="hs-identifier hs-var hs-var" +	    >num</span +	    ></a +	  ></span +	></span        ><span        > </span        ><span class="hs-glyph"        >=</span        ><span        > </span +      ><span class="annot"        ><span class="hs-number" -      >0</span +	>0</span +	></span        ><span        > </span -      ><span class="hs-operator hs-var" -      >+</span +      ><span class="annot" +      ><span class="annottext" +	>a -> a -> a +forall a. Num a => a -> a -> a +</span +	><span class="hs-operator hs-var" +	>+</span +	></span        ><span        > </span +      ><span class="annot"        ><span class="hs-number" -      >1</span +	>1</span +	></span        ><span        > </span -      ><span class="hs-operator hs-var" -      >+</span +      ><span class="annot" +      ><span class="annottext" +	>a -> a -> a +forall a. Num a => a -> a -> a +</span +	><span class="hs-operator hs-var" +	>+</span +	></span        ><span        > </span +      ><span class="annot"        ><span class="hs-number" -      >1010011</span +	>1010011</span +	></span        ><span        > </span -      ><span class="hs-operator hs-var" -      >*</span +      ><span class="annot" +      ><span class="annottext" +	>a -> a -> a +forall a. Num a => a -> a -> a +</span +	><span class="hs-operator hs-var" +	>*</span +	></span        ><span        > </span +      ><span class="annot"        ><span class="hs-number" -      >41231</span +	>41231</span +	></span        ><span        > </span -      ><span class="hs-operator hs-var" -      >+</span +      ><span class="annot" +      ><span class="annottext" +	>a -> a -> a +forall a. Num a => a -> a -> a +</span +	><span class="hs-operator hs-var" +	>+</span +	></span        ><span        > </span +      ><span class="annot"        ><span class="hs-number" -      >12131</span +	>12131</span +	></span        ><span        >  </span -      ><a name="line-9" -      ></a +      ><span id="line-9" +      ></span        ><span        >  </span -      ><a name="line-10" -      ></a -      ><span class="hs-identifier" -      >frac</span -      ><span -      > </span -      ><span class="hs-glyph" -      >::</span -      ><span -      > </span -      ><span class="hs-identifier hs-type" -      >Fractional</span -      ><span -      > </span -      ><a href="#" -      ><span class="hs-identifier hs-type" -	>a</span -	></a -      ><span -      > </span -      ><span class="hs-glyph" -      >=></span -      ><span -      > </span -      ><a href="#" -      ><span class="hs-identifier hs-type" -	>a</span -	></a +      ><span id="line-10" +      ></span +      ><span id="local-6989586621679043618" +      ><span class="annot" +	><a href="Literals.html#frac" +	  ><span class="hs-identifier hs-type" +	    >frac</span +	    ></a +	  ></span +	><span +	> </span +	><span class="hs-glyph" +	>::</span +	><span +	> </span +	><span class="annot" +	><span class="hs-identifier hs-type" +	  >Fractional</span +	  ></span +	><span +	> </span +	><span class="annot" +	><a href="#" +	  ><span class="hs-identifier hs-type" +	    >a</span +	    ></a +	  ></span +	><span +	> </span +	><span class="hs-glyph" +	>=></span +	><span +	> </span +	><span class="annot" +	><a href="#" +	  ><span class="hs-identifier hs-type" +	    >a</span +	    ></a +	  ></span +	></span        ><span        >  </span -      ><a name="line-11" -      ></a -      ><a name="frac" -      ><a href="Literals.html#frac" -	><span class="hs-identifier" -	  >frac</span -	  ></a -	></a +      ><span id="line-11" +      ></span +      ><span id="frac" +      ><span class="annot" +	><span class="annottext" +	  >frac :: a +</span +	  ><a href="Literals.html#frac" +	  ><span class="hs-identifier hs-var hs-var" +	    >frac</span +	    ></a +	  ></span +	></span        ><span        > </span        ><span class="hs-glyph"        >=</span        ><span        > </span +      ><span class="annot"        ><span class="hs-number" -      >42.0000001</span +	>42.0000001</span +	></span        ><span        >  </span -      ><a name="line-12" -      ></a +      ><span id="line-12" +      ></span        ><span        >  </span -      ><a name="line-13" -      ></a -      ><span class="hs-identifier" -      >list</span -      ><span -      > </span -      ><span class="hs-glyph" -      >::</span -      ><span -      > </span -      ><span class="hs-special" -      >[</span -      ><span class="hs-special" -      >[</span -      ><span class="hs-special" -      >[</span -      ><span class="hs-special" -      >[</span -      ><a href="#" -      ><span class="hs-identifier hs-type" -	>a</span -	></a -      ><span class="hs-special" -      >]</span -      ><span class="hs-special" -      >]</span -      ><span class="hs-special" -      >]</span -      ><span class="hs-special" -      >]</span +      ><span id="line-13" +      ></span +      ><span id="local-6989586621679043616" +      ><span class="annot" +	><a href="Literals.html#list" +	  ><span class="hs-identifier hs-type" +	    >list</span +	    ></a +	  ></span +	><span +	> </span +	><span class="hs-glyph" +	>::</span +	><span +	> </span +	><span class="hs-special" +	>[</span +	><span class="hs-special" +	>[</span +	><span class="hs-special" +	>[</span +	><span class="hs-special" +	>[</span +	><span class="annot" +	><a href="#" +	  ><span class="hs-identifier hs-type" +	    >a</span +	    ></a +	  ></span +	><span class="hs-special" +	>]</span +	><span class="hs-special" +	>]</span +	><span class="hs-special" +	>]</span +	><span class="hs-special" +	>]</span +	></span        ><span        >  </span -      ><a name="line-14" -      ></a -      ><a name="list" -      ><a href="Literals.html#list" -	><span class="hs-identifier" -	  >list</span -	  ></a -	></a +      ><span id="line-14" +      ></span +      ><span id="list" +      ><span class="annot" +	><span class="annottext" +	  >list :: [[[[a]]]] +</span +	  ><a href="Literals.html#list" +	  ><span class="hs-identifier hs-var hs-var" +	    >list</span +	    ></a +	  ></span +	></span        ><span        > </span        ><span class="hs-glyph" @@ -296,15 +392,19 @@        ><span        >  </span -      ><a name="line-15" -      ></a +      ><span id="line-15" +      ></span        ><span        >  </span -      ><a name="line-16" -      ></a -      ><span class="hs-identifier" -      >pair</span +      ><span id="line-16" +      ></span +      ><span class="annot" +      ><a href="Literals.html#pair" +	><span class="hs-identifier hs-type" +	  >pair</span +	  ></a +	></span        ><span        > </span        ><span class="hs-glyph" @@ -358,14 +458,19 @@        ><span        >  </span -      ><a name="line-17" -      ></a -      ><a name="pair" -      ><a href="Literals.html#pair" -	><span class="hs-identifier" -	  >pair</span -	  ></a -	></a +      ><span id="line-17" +      ></span +      ><span id="pair" +      ><span class="annot" +	><span class="annottext" +	  >pair :: ((), ((), (), ()), ()) +</span +	  ><a href="Literals.html#pair" +	  ><span class="hs-identifier hs-var hs-var" +	    >pair</span +	    ></a +	  ></span +	></span        ><span        > </span        ><span class="hs-glyph" @@ -419,8 +524,8 @@        ><span        >  </span -      ><a name="line-18" -      ></a +      ><span id="line-18" +      ></span        ></pre      ></body    ></html  | 
