[Git][ghc/ghc][master] hadrian: build in-tree gmp with -fvisibility=hidden
by Marge Bot (@marge-bot) 15 Sep '25
by Marge Bot (@marge-bot) 15 Sep '25
15 Sep '25
Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC
Commits:
77deaa7a by Cheng Shao at 2025-09-14T21:29:45-04:00
hadrian: build in-tree gmp with -fvisibility=hidden
When hadrian builds in-tree gmp, it should build the shared objects
with -fvisibility=hidden. The gmp symbols are only used by bignum
logic in ghc-internal and shouldn't be exported by the ghc-internal
shared library. We should always strive to keep shared library symbol
table lean, which benefits platforms with slow dynamic linker or even
hard limits about how many symbols can be exported (e.g. macos dyld,
win32 dll and wasm dyld).
- - - - -
1 changed file:
- hadrian/src/Rules/Gmp.hs
Changes:
=====================================
hadrian/src/Rules/Gmp.hs
=====================================
@@ -12,7 +12,6 @@ import Utilities
import Hadrian.BuildPath
import Hadrian.Expression
import Settings.Builders.Common (cArgs, getStagedCCFlags)
-import GHC.Platform.ArchOS
-- | Build in-tree GMP library objects (if GmpInTree flag is set) and return
-- their paths.
@@ -128,7 +127,10 @@ gmpRules = do
mconcat
[ cArgs
, getStagedCCFlags
- , anyTargetArch [ArchWasm32] ? arg "-fvisibility=default"
+ -- gmp symbols are only used by bignum logic in
+ -- ghc-internal and shouldn't be exported by the
+ -- ghc-internal shared library.
+ , arg "-fvisibility=hidden"
]
env <- sequence
[ builderEnvironment "CC" $ Cc CompileC (stage ctx)
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/77deaa7ad9c880410b7d0a967b03739…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/77deaa7ad9c880410b7d0a967b03739…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/shorter-this-module-links] Use showUnique in internalAnchorIdent
by Oleg Grenrus (@phadej) 14 Sep '25
by Oleg Grenrus (@phadej) 14 Sep '25
14 Sep '25
Oleg Grenrus pushed to branch wip/shorter-this-module-links at Glasgow Haskell Compiler / GHC
Commits:
9861b13e by Oleg Grenrus at 2025-09-14T23:50:20+03:00
Use showUnique in internalAnchorIdent
Showing the key of Unique as a number is generally not a great idea.
GHC Unique has a tag in high bits, so the raw number is unnecessarily
big.
So now we have
```html
<a href="#l-rvgK"><span class="hs-identifier hs-var hs-var">bar</span></a>
```
instead of
```html
<a href="#local-6989586621679015689"><span class="hs-identifier hs-var hs-var">bar</span></a>
```
Together with previous changes of shorter intra-module links the effect
on compressed files is not huge, that is expected as we simply remove
repetitive contents which pack well.
```
12_694_206 Agda-2.9.0-docs-orig.tar.gz
12_566_065 Agda-2.9.0-docs.tar.gz
```
However when unpacked, the difference can be significant,
e.g. Agda's largest module source got 5% reduction:
```
14_230_117 Agda.Syntax.Parser.Parser.html
13_422_109 Agda.Syntax.Parser.Parser.html
```
The whole hyperlinked source code directory got similar reduction
```
121M Agda-2.9.0-docs-orig/src
114M Agda-2.9.0-docs/src
```
For the reference, sources are about 2/3 of the generated haddocks
```
178M Agda-2.9.0-docs-old
172M Agda-2.9.0-docs
```
so we get around 3.5% size reduction overall. Not bad for a small local
changes.
- - - - -
17 changed files:
- utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Renderer.hs
- utils/haddock/hypsrc-test/Main.hs
- utils/haddock/hypsrc-test/ref/src/CPP.html
- utils/haddock/hypsrc-test/ref/src/Classes.html
- utils/haddock/hypsrc-test/ref/src/Constructors.html
- utils/haddock/hypsrc-test/ref/src/Identifiers.html
- utils/haddock/hypsrc-test/ref/src/LinkingIdentifiers.html
- utils/haddock/hypsrc-test/ref/src/Literals.html
- utils/haddock/hypsrc-test/ref/src/Operators.html
- utils/haddock/hypsrc-test/ref/src/Polymorphism.html
- utils/haddock/hypsrc-test/ref/src/PositionPragmas.html
- utils/haddock/hypsrc-test/ref/src/Quasiquoter.html
- utils/haddock/hypsrc-test/ref/src/Records.html
- utils/haddock/hypsrc-test/ref/src/TemplateHaskellQuasiquotes.html
- utils/haddock/hypsrc-test/ref/src/TemplateHaskellSplices.html
- utils/haddock/hypsrc-test/ref/src/Types.html
- utils/haddock/hypsrc-test/ref/src/UsingQuasiquotes.html
Changes:
=====================================
utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Renderer.hs
=====================================
@@ -14,7 +14,7 @@ import GHC.Iface.Ext.Types
import GHC.Iface.Ext.Utils (emptyNodeInfo, isEvidenceContext)
import GHC.Types.Name (Name, getOccString, isInternalName, nameModule, nameUnique)
import GHC.Types.SrcLoc
-import GHC.Types.Unique (getKey)
+import GHC.Types.Unique (showUnique)
import GHC.Unit.Module (Module, ModuleName, moduleNameString)
import GHC.Utils.Encoding (utf8DecodeByteString)
import System.FilePath.Posix ((</>))
@@ -254,7 +254,7 @@ externalAnchorIdent :: Name -> String
externalAnchorIdent = hypSrcNameUrl
internalAnchorIdent :: Name -> String
-internalAnchorIdent = ("local-" ++) . show . getKey . nameUnique
+internalAnchorIdent = ("l-" ++) . showUnique . nameUnique
-- | Generate the HTML hyperlink for an identifier
hyperlink :: Module -> SrcMaps -> Identifier -> Html -> Html
=====================================
utils/haddock/hypsrc-test/Main.hs
=====================================
@@ -22,9 +22,9 @@ checkConfig = CheckConfig
where
strip _ = fixPaths . stripAnchors' . stripLinks' . stripIds' . stripFooter
- stripLinks' = stripLinksWhen $ \href -> "#local-" `isPrefixOf` href
- stripAnchors' = stripAnchorsWhen $ \name -> "local-" `isPrefixOf` name
- stripIds' = stripIdsWhen $ \name -> "local-" `isPrefixOf` name
+ stripLinks' = stripLinksWhen $ \href -> "#l-" `isPrefixOf` href
+ stripAnchors' = stripAnchorsWhen $ \name -> "l-" `isPrefixOf` name
+ stripIds' = stripIdsWhen $ \name -> "l-" `isPrefixOf` name
-- One-shot hyperlinked source links to other modules as if they are in another package
fixPaths = fixAttrValueWhen "href" (drop 7) ("../src/" `isPrefixOf`)
=====================================
utils/haddock/hypsrc-test/ref/src/CPP.html
=====================================
@@ -45,7 +45,7 @@
><span id="line-7"
></span
><span class="annot"
- ><a href="CPP.html#foo"
+ ><a href="#foo"
><span class="hs-identifier hs-type"
>foo</span
></a
@@ -70,7 +70,7 @@
><span class="annottext"
>foo :: String
</span
- ><a href="CPP.html#foo"
+ ><a href="#foo"
><span class="hs-identifier hs-var hs-var"
>foo</span
></a
@@ -106,7 +106,7 @@
><span id="line-14"
></span
><span class="annot"
- ><a href="CPP.html#bar"
+ ><a href="#bar"
><span class="hs-identifier hs-type"
>bar</span
></a
@@ -131,7 +131,7 @@
><span class="annottext"
>bar :: String
</span
- ><a href="CPP.html#bar"
+ ><a href="#bar"
><span class="hs-identifier hs-var hs-var"
>bar</span
></a
@@ -192,7 +192,7 @@
><span id="line-26"
></span
><span class="annot"
- ><a href="CPP.html#baz"
+ ><a href="#baz"
><span class="hs-identifier hs-type"
>baz</span
></a
@@ -217,7 +217,7 @@
><span class="annottext"
>baz :: String
</span
- ><a href="CPP.html#baz"
+ ><a href="#baz"
><span class="hs-identifier hs-var hs-var"
>baz</span
></a
=====================================
utils/haddock/hypsrc-test/ref/src/Classes.html
=====================================
@@ -48,7 +48,7 @@
> </span
><span id="Foo"
><span class="annot"
- ><a href="Classes.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-var"
>Foo</span
></a
@@ -77,7 +77,7 @@
> </span
><span id="bar"
><span class="annot"
- ><a href="Classes.html#bar"
+ ><a href="#bar"
><span class="hs-identifier hs-type"
>bar</span
></a
@@ -114,7 +114,7 @@
> </span
><span id="baz"
><span class="annot"
- ><a href="Classes.html#baz"
+ ><a href="#baz"
><span class="hs-identifier hs-type"
>baz</span
></a
@@ -171,7 +171,7 @@
><span
> </span
><span class="annot"
- ><a href="Classes.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -198,7 +198,7 @@
><span class="annottext"
>bar :: Int -> Int
</span
- ><a href="Classes.html#bar"
+ ><a href="#bar"
><span class="hs-identifier hs-var hs-var hs-var"
>bar</span
></a
@@ -230,7 +230,7 @@ forall a. a -> a
><span class="annottext"
>baz :: Int -> (Int, Int)
</span
- ><a href="Classes.html#baz"
+ ><a href="#baz"
><span class="hs-identifier hs-var hs-var hs-var"
>baz</span
></a
@@ -297,7 +297,7 @@ forall a. a -> a
> </span
><span id=""
><span class="annot"
- ><a href="Classes.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -331,7 +331,7 @@ forall a. a -> a
><span class="annottext"
>bar :: [a] -> Int
</span
- ><a href="Classes.html#bar"
+ ><a href="#bar"
><span class="hs-identifier hs-var hs-var hs-var"
>bar</span
></a
@@ -364,7 +364,7 @@ forall (t :: * -> *) a. Foldable t => t a -> Int
><span class="annottext"
>baz :: Int -> ([a], [a])
</span
- ><a href="Classes.html#baz"
+ ><a href="#baz"
><span class="hs-identifier hs-var hs-var hs-var"
>baz</span
></a
@@ -421,7 +421,7 @@ forall (t :: * -> *) a. Foldable t => t a -> Int
><span
> </span
><span class="annot"
- ><a href="Classes.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -442,7 +442,7 @@ forall (t :: * -> *) a. Foldable t => t a -> Int
> </span
><span id="Foo%27"
><span class="annot"
- ><a href="Classes.html#Foo%27"
+ ><a href="#Foo%27"
><span class="hs-identifier hs-var"
>Foo'</span
></a
@@ -471,7 +471,7 @@ forall (t :: * -> *) a. Foldable t => t a -> Int
> </span
><span id="quux"
><span class="annot"
- ><a href="Classes.html#quux"
+ ><a href="#quux"
><span class="hs-identifier hs-type"
>quux</span
></a
@@ -524,7 +524,7 @@ forall (t :: * -> *) a. Foldable t => t a -> Int
> </span
><span id=""
><span class="annot"
- ><a href="Classes.html#quux"
+ ><a href="#quux"
><span class="hs-identifier hs-var hs-var"
>quux</span
></a
@@ -572,7 +572,7 @@ forall (t :: * -> *) a. Foldable t => t a -> Int
>[a] -> a
forall a. Foo' a => [a] -> a
</span
- ><a href="Classes.html#norf"
+ ><a href="#norf"
><span class="hs-identifier hs-var"
>norf</span
></a
@@ -620,7 +620,7 @@ forall a. Foo' a => [a] -> a
> </span
><span id="norf"
><span class="annot"
- ><a href="Classes.html#norf"
+ ><a href="#norf"
><span class="hs-identifier hs-type"
>norf</span
></a
@@ -663,7 +663,7 @@ forall a. Foo' a => [a] -> a
> </span
><span id=""
><span class="annot"
- ><a href="Classes.html#norf"
+ ><a href="#norf"
><span class="hs-identifier hs-var hs-var"
>norf</span
></a
@@ -679,7 +679,7 @@ forall a. Foo' a => [a] -> a
>(a, a) -> a
forall a. Foo' a => (a, a) -> a
</span
- ><a href="Classes.html#quux"
+ ><a href="#quux"
><span class="hs-identifier hs-var"
>quux</span
></a
@@ -701,7 +701,7 @@ forall b c a. (b -> c) -> (a -> b) -> a -> c
>Int -> (a, a)
forall a. Foo a => Int -> (a, a)
</span
- ><a href="Classes.html#baz"
+ ><a href="#baz"
><span class="hs-identifier hs-var"
>baz</span
></a
@@ -754,7 +754,7 @@ forall a b. (a -> b) -> [a] -> [b]
>a -> Int
forall a. Foo a => a -> Int
</span
- ><a href="Classes.html#bar"
+ ><a href="#bar"
><span class="hs-identifier hs-var"
>bar</span
></a
@@ -776,7 +776,7 @@ forall a. Foo a => a -> Int
> </span
><span id=""
><span class="annot"
- ><a href="Classes.html#Foo%27"
+ ><a href="#Foo%27"
><span class="hs-identifier hs-type"
>Foo'</span
></a
@@ -804,7 +804,7 @@ forall a. Foo a => a -> Int
><span class="annottext"
>norf :: [Int] -> Int
</span
- ><a href="Classes.html#norf"
+ ><a href="#norf"
><span class="hs-identifier hs-var hs-var hs-var"
>norf</span
></a
@@ -842,7 +842,7 @@ forall (t :: * -> *) a. (Foldable t, Num a) => t a -> a
><span id=""
><span id=""
><span class="annot"
- ><a href="Classes.html#Foo%27"
+ ><a href="#Foo%27"
><span class="hs-identifier hs-type"
>Foo'</span
></a
@@ -877,7 +877,7 @@ forall (t :: * -> *) a. (Foldable t, Num a) => t a -> a
><span class="annottext"
>quux :: ([a], [a]) -> [a]
</span
- ><a href="Classes.html#quux"
+ ><a href="#quux"
><span class="hs-identifier hs-var hs-var hs-var"
>quux</span
></a
@@ -928,7 +928,7 @@ forall a. [a] -> [a] -> [a]
> </span
><span id="Plugh"
><span class="annot"
- ><a href="Classes.html#Plugh"
+ ><a href="#Plugh"
><span class="hs-identifier hs-var"
>Plugh</span
></a
@@ -957,7 +957,7 @@ forall a. [a] -> [a] -> [a]
> </span
><span id="plugh"
><span class="annot"
- ><a href="Classes.html#plugh"
+ ><a href="#plugh"
><span class="hs-identifier hs-type"
>plugh</span
></a
@@ -1098,7 +1098,7 @@ forall a. [a] -> [a] -> [a]
><span
> </span
><span class="annot"
- ><a href="Classes.html#Plugh"
+ ><a href="#Plugh"
><span class="hs-identifier hs-type"
>Plugh</span
></a
@@ -1125,7 +1125,7 @@ forall a. [a] -> [a] -> [a]
><span class="annottext"
>plugh :: forall a b. Either a a -> Either b b -> Either (a -> b) (b -> a)
</span
- ><a href="Classes.html#plugh"
+ ><a href="#plugh"
><span class="hs-identifier hs-var hs-var hs-var"
>plugh</span
></a
@@ -1217,7 +1217,7 @@ forall a b. a -> b -> a
><span
> </span
><span class="annot"
- ><a href="Classes.html#plugh"
+ ><a href="#plugh"
><span class="hs-identifier hs-var"
>plugh</span
></a
@@ -1308,7 +1308,7 @@ forall a b. a -> b -> a
><span
> </span
><span class="annot"
- ><a href="Classes.html#plugh"
+ ><a href="#plugh"
><span class="hs-identifier hs-var"
>plugh</span
></a
@@ -1399,7 +1399,7 @@ forall a b. a -> b -> a
><span
> </span
><span class="annot"
- ><a href="Classes.html#plugh"
+ ><a href="#plugh"
><span class="hs-identifier hs-var"
>plugh</span
></a
=====================================
utils/haddock/hypsrc-test/ref/src/Constructors.html
=====================================
@@ -48,7 +48,7 @@
> </span
><span id="Foo"
><span class="annot"
- ><a href="Constructors.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-var"
>Foo</span
></a
@@ -67,7 +67,7 @@
> </span
><span id="Bar"
><span class="annot"
- ><a href="Constructors.html#Bar"
+ ><a href="#Bar"
><span class="hs-identifier hs-var"
>Bar</span
></a
@@ -86,7 +86,7 @@
> </span
><span id="Baz"
><span class="annot"
- ><a href="Constructors.html#Baz"
+ ><a href="#Baz"
><span class="hs-identifier hs-var"
>Baz</span
></a
@@ -105,7 +105,7 @@
> </span
><span id="Quux"
><span class="annot"
- ><a href="Constructors.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-var"
>Quux</span
></a
@@ -114,7 +114,7 @@
><span
> </span
><span class="annot"
- ><a href="Constructors.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -141,7 +141,7 @@
> </span
><span id="Norf"
><span class="annot"
- ><a href="Constructors.html#Norf"
+ ><a href="#Norf"
><span class="hs-identifier hs-var"
>Norf</span
></a
@@ -155,7 +155,7 @@
> </span
><span id="Norf"
><span class="annot"
- ><a href="Constructors.html#Norf"
+ ><a href="#Norf"
><span class="hs-identifier hs-var"
>Norf</span
></a
@@ -166,7 +166,7 @@
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Constructors.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -178,7 +178,7 @@
><span class="hs-special"
>[</span
><span class="annot"
- ><a href="Constructors.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -190,7 +190,7 @@
><span
> </span
><span class="annot"
- ><a href="Constructors.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -213,7 +213,7 @@
><span id="line-13"
></span
><span class="annot"
- ><a href="Constructors.html#bar"
+ ><a href="#bar"
><span class="hs-identifier hs-type"
>bar</span
></a
@@ -223,7 +223,7 @@
><span
> </span
><span class="annot"
- ><a href="Constructors.html#baz"
+ ><a href="#baz"
><span class="hs-identifier hs-type"
>baz</span
></a
@@ -233,7 +233,7 @@
><span
> </span
><span class="annot"
- ><a href="Constructors.html#quux"
+ ><a href="#quux"
><span class="hs-identifier hs-type"
>quux</span
></a
@@ -245,7 +245,7 @@
><span
> </span
><span class="annot"
- ><a href="Constructors.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -260,7 +260,7 @@
><span class="annottext"
>bar :: Foo
</span
- ><a href="Constructors.html#bar"
+ ><a href="#bar"
><span class="hs-identifier hs-var hs-var"
>bar</span
></a
@@ -276,7 +276,7 @@
><span class="annottext"
>Foo
</span
- ><a href="Constructors.html#Bar"
+ ><a href="#Bar"
><span class="hs-identifier hs-var"
>Bar</span
></a
@@ -291,7 +291,7 @@
><span class="annottext"
>baz :: Foo
</span
- ><a href="Constructors.html#baz"
+ ><a href="#baz"
><span class="hs-identifier hs-var hs-var"
>baz</span
></a
@@ -307,7 +307,7 @@
><span class="annottext"
>Foo
</span
- ><a href="Constructors.html#Baz"
+ ><a href="#Baz"
><span class="hs-identifier hs-var"
>Baz</span
></a
@@ -322,7 +322,7 @@
><span class="annottext"
>quux :: Foo
</span
- ><a href="Constructors.html#quux"
+ ><a href="#quux"
><span class="hs-identifier hs-var hs-var"
>quux</span
></a
@@ -338,7 +338,7 @@
><span class="annottext"
>Foo -> Int -> Foo
</span
- ><a href="Constructors.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-var"
>Quux</span
></a
@@ -349,7 +349,7 @@
><span class="annottext"
>Foo
</span
- ><a href="Constructors.html#quux"
+ ><a href="#quux"
><span class="hs-identifier hs-var"
>quux</span
></a
@@ -379,7 +379,7 @@
><span id="line-19"
></span
><span class="annot"
- ><a href="Constructors.html#unfoo"
+ ><a href="#unfoo"
><span class="hs-identifier hs-type"
>unfoo</span
></a
@@ -391,7 +391,7 @@
><span
> </span
><span class="annot"
- ><a href="Constructors.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -416,7 +416,7 @@
><span class="annottext"
>unfoo :: Foo -> Int
</span
- ><a href="Constructors.html#unfoo"
+ ><a href="#unfoo"
><span class="hs-identifier hs-var hs-var"
>unfoo</span
></a
@@ -428,7 +428,7 @@
><span class="annottext"
>Foo
</span
- ><a href="Constructors.html#Bar"
+ ><a href="#Bar"
><span class="hs-identifier hs-var"
>Bar</span
></a
@@ -452,7 +452,7 @@
><span id="line-21"
></span
><span class="annot"
- ><a href="Constructors.html#unfoo"
+ ><a href="#unfoo"
><span class="hs-identifier hs-var"
>unfoo</span
></a
@@ -463,7 +463,7 @@
><span class="annottext"
>Foo
</span
- ><a href="Constructors.html#Baz"
+ ><a href="#Baz"
><span class="hs-identifier hs-var"
>Baz</span
></a
@@ -487,7 +487,7 @@
><span id="line-22"
></span
><span class="annot"
- ><a href="Constructors.html#unfoo"
+ ><a href="#unfoo"
><span class="hs-identifier hs-var"
>unfoo</span
></a
@@ -497,7 +497,7 @@
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Constructors.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
@@ -580,7 +580,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Foo -> Int
</span
- ><a href="Constructors.html#unfoo"
+ ><a href="#unfoo"
><span class="hs-identifier hs-var"
>unfoo</span
></a
@@ -612,7 +612,7 @@ forall a. Num a => a -> a -> a
><span id="line-25"
></span
><span class="annot"
- ><a href="Constructors.html#unnorf"
+ ><a href="#unnorf"
><span class="hs-identifier hs-type"
>unnorf</span
></a
@@ -624,7 +624,7 @@ forall a. Num a => a -> a -> a
><span
> </span
><span class="annot"
- ><a href="Constructors.html#Norf"
+ ><a href="#Norf"
><span class="hs-identifier hs-type"
>Norf</span
></a
@@ -638,7 +638,7 @@ forall a. Num a => a -> a -> a
><span class="hs-special"
>[</span
><span class="annot"
- ><a href="Constructors.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -655,7 +655,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>unnorf :: Norf -> [Foo]
</span
- ><a href="Constructors.html#unnorf"
+ ><a href="#unnorf"
><span class="hs-identifier hs-var hs-var"
>unnorf</span
></a
@@ -666,7 +666,7 @@ forall a. Num a => a -> a -> a
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Constructors.html#Norf"
+ ><a href="#Norf"
><span class="hs-identifier hs-type"
>Norf</span
></a
@@ -679,7 +679,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Foo
</span
- ><a href="Constructors.html#Bar"
+ ><a href="#Bar"
><span class="hs-identifier hs-var"
>Bar</span
></a
@@ -707,7 +707,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Foo
</span
- ><a href="Constructors.html#Bar"
+ ><a href="#Bar"
><span class="hs-identifier hs-var"
>Bar</span
></a
@@ -737,7 +737,7 @@ forall a. Num a => a -> a -> a
><span id="line-27"
></span
><span class="annot"
- ><a href="Constructors.html#unnorf"
+ ><a href="#unnorf"
><span class="hs-identifier hs-var"
>unnorf</span
></a
@@ -747,7 +747,7 @@ forall a. Num a => a -> a -> a
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Constructors.html#Norf"
+ ><a href="#Norf"
><span class="hs-identifier hs-type"
>Norf</span
></a
@@ -760,7 +760,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Foo
</span
- ><a href="Constructors.html#Baz"
+ ><a href="#Baz"
><span class="hs-identifier hs-var"
>Baz</span
></a
@@ -788,7 +788,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Foo
</span
- ><a href="Constructors.html#Baz"
+ ><a href="#Baz"
><span class="hs-identifier hs-var"
>Baz</span
></a
@@ -828,7 +828,7 @@ forall a. [a] -> [a]
><span id="line-28"
></span
><span class="annot"
- ><a href="Constructors.html#unnorf"
+ ><a href="#unnorf"
><span class="hs-identifier hs-var"
>unnorf</span
></a
@@ -872,7 +872,7 @@ forall a. HasCallStack => a
><span id="line-31"
></span
><span class="annot"
- ><a href="Constructors.html#unnorf%27"
+ ><a href="#unnorf%27"
><span class="hs-identifier hs-type"
>unnorf'</span
></a
@@ -884,7 +884,7 @@ forall a. HasCallStack => a
><span
> </span
><span class="annot"
- ><a href="Constructors.html#Norf"
+ ><a href="#Norf"
><span class="hs-identifier hs-type"
>Norf</span
></a
@@ -909,7 +909,7 @@ forall a. HasCallStack => a
><span class="annottext"
>unnorf' :: Norf -> Int
</span
- ><a href="Constructors.html#unnorf%27"
+ ><a href="#unnorf%27"
><span class="hs-identifier hs-var hs-var"
>unnorf'</span
></a
@@ -933,7 +933,7 @@ forall a. HasCallStack => a
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Constructors.html#Norf"
+ ><a href="#Norf"
><span class="hs-identifier hs-type"
>Norf</span
></a
@@ -958,7 +958,7 @@ forall a. HasCallStack => a
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Constructors.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
@@ -1018,7 +1018,7 @@ forall a. HasCallStack => a
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Constructors.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
@@ -1108,7 +1108,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Foo -> Int
</span
- ><a href="Constructors.html#unfoo"
+ ><a href="#unfoo"
><span class="hs-identifier hs-var"
>unfoo</span
></a
@@ -1206,7 +1206,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Foo -> Int
</span
- ><a href="Constructors.html#unfoo"
+ ><a href="#unfoo"
><span class="hs-identifier hs-var"
>unfoo</span
></a
@@ -1238,7 +1238,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Foo -> Int
</span
- ><a href="Constructors.html#unfoo"
+ ><a href="#unfoo"
><span class="hs-identifier hs-var"
>unfoo</span
></a
@@ -1270,7 +1270,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Foo -> Int
</span
- ><a href="Constructors.html#unfoo"
+ ><a href="#unfoo"
><span class="hs-identifier hs-var"
>unfoo</span
></a
@@ -1345,7 +1345,7 @@ forall a b. (a -> b) -> [a] -> [b]
><span class="annottext"
>Foo -> Int
</span
- ><a href="Constructors.html#unfoo"
+ ><a href="#unfoo"
><span class="hs-identifier hs-var"
>unfoo</span
></a
@@ -1366,7 +1366,7 @@ forall b c a. (b -> c) -> (a -> b) -> a -> c
><span class="annottext"
>Norf -> [Foo]
</span
- ><a href="Constructors.html#unnorf"
+ ><a href="#unnorf"
><span class="hs-identifier hs-var"
>unnorf</span
></a
=====================================
utils/haddock/hypsrc-test/ref/src/Identifiers.html
=====================================
@@ -43,7 +43,7 @@
><span id="line-5"
></span
><span class="annot"
- ><a href="Identifiers.html#foo"
+ ><a href="#foo"
><span class="hs-identifier hs-type"
>foo</span
></a
@@ -53,7 +53,7 @@
><span
> </span
><span class="annot"
- ><a href="Identifiers.html#bar"
+ ><a href="#bar"
><span class="hs-identifier hs-type"
>bar</span
></a
@@ -63,7 +63,7 @@
><span
> </span
><span class="annot"
- ><a href="Identifiers.html#baz"
+ ><a href="#baz"
><span class="hs-identifier hs-type"
>baz</span
></a
@@ -108,7 +108,7 @@
><span class="annottext"
>foo :: Int -> Int -> Int
</span
- ><a href="Identifiers.html#foo"
+ ><a href="#foo"
><span class="hs-identifier hs-var hs-var"
>foo</span
></a
@@ -192,7 +192,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Int -> Int -> Int
</span
- ><a href="Identifiers.html#bar"
+ ><a href="#bar"
><span class="hs-identifier hs-var"
>bar</span
></a
@@ -271,7 +271,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>bar :: Int -> Int -> Int
</span
- ><a href="Identifiers.html#bar"
+ ><a href="#bar"
><span class="hs-identifier hs-var hs-var"
>bar</span
></a
@@ -355,7 +355,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Int -> Int -> Int
</span
- ><a href="Identifiers.html#baz"
+ ><a href="#baz"
><span class="hs-identifier hs-var"
>baz</span
></a
@@ -434,7 +434,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>baz :: Int -> Int -> Int
</span
- ><a href="Identifiers.html#baz"
+ ><a href="#baz"
><span class="hs-identifier hs-var hs-var"
>baz</span
></a
@@ -576,7 +576,7 @@ forall a. Num a => a -> a -> a
><span id="line-10"
></span
><span class="annot"
- ><a href="Identifiers.html#quux"
+ ><a href="#quux"
><span class="hs-identifier hs-type"
>quux</span
></a
@@ -611,7 +611,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>quux :: Int -> Int
</span
- ><a href="Identifiers.html#quux"
+ ><a href="#quux"
><span class="hs-identifier hs-var hs-var"
>quux</span
></a
@@ -640,7 +640,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Int -> Int -> Int
</span
- ><a href="Identifiers.html#foo"
+ ><a href="#foo"
><span class="hs-identifier hs-var"
>foo</span
></a
@@ -653,7 +653,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Int -> Int -> Int
</span
- ><a href="Identifiers.html#bar"
+ ><a href="#bar"
><span class="hs-identifier hs-var"
>bar</span
></a
@@ -690,7 +690,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Int -> Int -> Int
</span
- ><a href="Identifiers.html#bar"
+ ><a href="#bar"
><span class="hs-identifier hs-var"
>bar</span
></a
@@ -730,7 +730,7 @@ forall a. Num a => a -> a -> a
><span id="line-13"
></span
><span class="annot"
- ><a href="Identifiers.html#norf"
+ ><a href="#norf"
><span class="hs-identifier hs-type"
>norf</span
></a
@@ -785,7 +785,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>norf :: Int -> Int -> Int -> Int
</span
- ><a href="Identifiers.html#norf"
+ ><a href="#norf"
><span class="hs-identifier hs-var hs-var"
>norf</span
></a
@@ -879,7 +879,7 @@ forall a. Ord a => a -> a -> Bool
><span class="annottext"
>Int -> Int
</span
- ><a href="Identifiers.html#quux"
+ ><a href="#quux"
><span class="hs-identifier hs-var"
>quux</span
></a
@@ -944,7 +944,7 @@ forall a. Ord a => a -> a -> Bool
><span class="annottext"
>Int -> Int
</span
- ><a href="Identifiers.html#quux"
+ ><a href="#quux"
><span class="hs-identifier hs-var"
>quux</span
></a
@@ -1009,7 +1009,7 @@ forall a. Ord a => a -> a -> Bool
><span class="annottext"
>Int -> Int
</span
- ><a href="Identifiers.html#quux"
+ ><a href="#quux"
><span class="hs-identifier hs-var"
>quux</span
></a
@@ -1053,7 +1053,7 @@ forall a. Ord a => a -> a -> Bool
><span class="annottext"
>Int -> Int -> Int -> Int
</span
- ><a href="Identifiers.html#norf"
+ ><a href="#norf"
><span class="hs-identifier hs-var"
>norf</span
></a
@@ -1125,7 +1125,7 @@ forall a. Ord a => a -> a -> Bool
><span id="line-21"
></span
><span class="annot"
- ><a href="Identifiers.html#main"
+ ><a href="#main"
><span class="hs-identifier hs-type"
>main</span
></a
@@ -1156,7 +1156,7 @@ forall a. Ord a => a -> a -> Bool
><span class="annottext"
>main :: IO ()
</span
- ><a href="Identifiers.html#main"
+ ><a href="#main"
><span class="hs-identifier hs-var hs-var"
>main</span
></a
@@ -1220,7 +1220,7 @@ forall a b. (a -> b) -> a -> b
><span class="annottext"
>Int -> Int -> Int
</span
- ><a href="Identifiers.html#foo"
+ ><a href="#foo"
><span class="hs-identifier hs-var"
>foo</span
></a
@@ -1297,7 +1297,7 @@ forall a b. (a -> b) -> a -> b
><span class="annottext"
>Int -> Int
</span
- ><a href="Identifiers.html#quux"
+ ><a href="#quux"
><span class="hs-identifier hs-var"
>quux</span
></a
@@ -1363,7 +1363,7 @@ forall a b. (a -> b) -> a -> b
><span class="annottext"
>Int -> Int -> Int -> Int
</span
- ><a href="Identifiers.html#norf"
+ ><a href="#norf"
><span class="hs-identifier hs-var"
>Identifiers.norf</span
></a
=====================================
utils/haddock/hypsrc-test/ref/src/LinkingIdentifiers.html
=====================================
@@ -73,7 +73,7 @@
><span id="line-9"
></span
><span class="annot"
- ><a href="LinkingIdentifiers.html#ident"
+ ><a href="#ident"
><span class="hs-identifier hs-type"
>ident</span
></a
@@ -131,7 +131,7 @@
><span class="annottext"
>ident :: Int -> Int -> Int
</span
- ><a href="LinkingIdentifiers.html#ident"
+ ><a href="#ident"
><span class="hs-operator hs-var hs-var"
>`ident`</span
></a
@@ -169,7 +169,7 @@
><span class="annottext"
>Int -> Int -> Int
</span
- ><a href="LinkingIdentifiers.html#ident"
+ ><a href="#ident"
><span class="hs-operator hs-var"
>`ident`</span
></a
@@ -214,7 +214,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Int -> Int -> Int
</span
- ><a href="LinkingIdentifiers.html#ident"
+ ><a href="#ident"
><span class="hs-operator hs-var"
>`LinkingIdentifiers.ident`</span
></a
@@ -236,7 +236,7 @@ forall a. Num a => a -> a -> a
><span id="line-11"
></span
><span class="annot"
- ><a href="LinkingIdentifiers.html#ident"
+ ><a href="#ident"
><span class="hs-identifier hs-var"
>ident</span
></a
@@ -273,7 +273,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Int -> Int -> Int
</span
- ><a href="LinkingIdentifiers.html#ident"
+ ><a href="#ident"
><span class="hs-identifier hs-var"
>ident</span
></a
@@ -314,7 +314,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Int -> Int -> Int
</span
- ><a href="LinkingIdentifiers.html#ident"
+ ><a href="#ident"
><span class="hs-identifier hs-var"
>LinkingIdentifiers.ident</span
></a
@@ -350,7 +350,7 @@ forall a. Num a => a -> a -> a
><span id="line-13"
></span
><span class="annot"
- ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B"
+ ><a href="#%2B%2B%3A%2B%2B"
><span class="hs-operator hs-type"
>(++:++)</span
></a
@@ -408,7 +408,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>++:++ :: Int -> Int -> Int
</span
- ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B"
+ ><a href="#%2B%2B%3A%2B%2B"
><span class="hs-operator hs-var hs-var"
>++:++</span
></a
@@ -446,7 +446,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Int -> Int -> Int
</span
- ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B"
+ ><a href="#%2B%2B%3A%2B%2B"
><span class="hs-operator hs-var"
>++:++</span
></a
@@ -491,7 +491,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Int -> Int -> Int
</span
- ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B"
+ ><a href="#%2B%2B%3A%2B%2B"
><span class="hs-operator hs-var"
>LinkingIdentifiers.++:++</span
></a
@@ -513,7 +513,7 @@ forall a. Num a => a -> a -> a
><span id="line-15"
></span
><span class="annot"
- ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B"
+ ><a href="#%2B%2B%3A%2B%2B"
><span class="hs-operator hs-var"
>(++:++)</span
></a
@@ -550,7 +550,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Int -> Int -> Int
</span
- ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B"
+ ><a href="#%2B%2B%3A%2B%2B"
><span class="hs-operator hs-var"
>(++:++)</span
></a
@@ -591,7 +591,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>Int -> Int -> Int
</span
- ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B"
+ ><a href="#%2B%2B%3A%2B%2B"
><span class="hs-operator hs-var"
>(LinkingIdentifiers.++:++)</span
></a
=====================================
utils/haddock/hypsrc-test/ref/src/Literals.html
=====================================
@@ -43,7 +43,7 @@
><span id="line-5"
></span
><span class="annot"
- ><a href="Literals.html#str"
+ ><a href="#str"
><span class="hs-identifier hs-type"
>str</span
></a
@@ -68,7 +68,7 @@
><span class="annottext"
>str :: String
</span
- ><a href="Literals.html#str"
+ ><a href="#str"
><span class="hs-identifier hs-var hs-var"
>str</span
></a
@@ -99,7 +99,7 @@
></span
><span id=""
><span class="annot"
- ><a href="Literals.html#num"
+ ><a href="#num"
><span class="hs-identifier hs-type"
>num</span
></a
@@ -145,7 +145,7 @@
><span class="annottext"
>num :: forall a. Num a => a
</span
- ><a href="Literals.html#num"
+ ><a href="#num"
><span class="hs-identifier hs-var hs-var"
>num</span
></a
@@ -252,7 +252,7 @@ forall a. Num a => a -> a -> a
></span
><span id=""
><span class="annot"
- ><a href="Literals.html#frac"
+ ><a href="#frac"
><span class="hs-identifier hs-type"
>frac</span
></a
@@ -298,7 +298,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>frac :: forall a. Fractional a => a
</span
- ><a href="Literals.html#frac"
+ ><a href="#frac"
><span class="hs-identifier hs-var hs-var"
>frac</span
></a
@@ -329,7 +329,7 @@ forall a. Num a => a -> a -> a
></span
><span id=""
><span class="annot"
- ><a href="Literals.html#list"
+ ><a href="#list"
><span class="hs-identifier hs-type"
>list</span
></a
@@ -373,7 +373,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>list :: forall a. [[[[a]]]]
</span
- ><a href="Literals.html#list"
+ ><a href="#list"
><span class="hs-identifier hs-var hs-var"
>list</span
></a
@@ -432,7 +432,7 @@ forall a. Num a => a -> a -> a
><span id="line-17"
></span
><span class="annot"
- ><a href="Literals.html#pair"
+ ><a href="#pair"
><span class="hs-identifier hs-type"
>pair</span
></a
@@ -497,7 +497,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>pair :: ((), ((), (), ()), ())
</span
- ><a href="Literals.html#pair"
+ ><a href="#pair"
><span class="hs-identifier hs-var hs-var"
>pair</span
></a
=====================================
utils/haddock/hypsrc-test/ref/src/Operators.html
=====================================
@@ -39,7 +39,7 @@
></span
><span id=""
><span class="annot"
- ><a href="Operators.html#%2B%2B%2B"
+ ><a href="#%2B%2B%2B"
><span class="hs-operator hs-type"
>(+++)</span
></a
@@ -116,7 +116,7 @@
><span class="annottext"
>+++ :: forall a. [a] -> [a] -> [a]
</span
- ><a href="Operators.html#%2B%2B%2B"
+ ><a href="#%2B%2B%2B"
><span class="hs-operator hs-var hs-var"
>+++</span
></a
@@ -204,7 +204,7 @@ forall a. [a] -> [a] -> [a]
></span
><span id=""
><span class="annot"
- ><a href="Operators.html#%24%24%24"
+ ><a href="#%24%24%24"
><span class="hs-operator hs-type"
>($$$)</span
></a
@@ -281,7 +281,7 @@ forall a. [a] -> [a] -> [a]
><span class="annottext"
>$$$ :: forall a. [a] -> [a] -> [a]
</span
- ><a href="Operators.html#%24%24%24"
+ ><a href="#%24%24%24"
><span class="hs-operator hs-var hs-var"
>$$$</span
></a
@@ -322,7 +322,7 @@ forall a. [a] -> [a] -> [a]
>[a] -> [a] -> [a]
forall a. [a] -> [a] -> [a]
</span
- ><a href="Operators.html#%2B%2B%2B"
+ ><a href="#%2B%2B%2B"
><span class="hs-operator hs-var"
>+++</span
></a
@@ -350,7 +350,7 @@ forall a. [a] -> [a] -> [a]
></span
><span id=""
><span class="annot"
- ><a href="Operators.html#%2A%2A%2A"
+ ><a href="#%2A%2A%2A"
><span class="hs-operator hs-type"
>(***)</span
></a
@@ -414,7 +414,7 @@ forall a. [a] -> [a] -> [a]
><span class="annottext"
>*** :: forall a. [a] -> [a] -> [a]
</span
- ><a href="Operators.html#%2A%2A%2A"
+ ><a href="#%2A%2A%2A"
><span class="hs-operator hs-var hs-var"
>(***)</span
></a
@@ -460,7 +460,7 @@ forall a. [a] -> [a] -> [a]
><span id="line-12"
></span
><span class="annot"
- ><a href="Operators.html#%2A%2A%2A"
+ ><a href="#%2A%2A%2A"
><span class="hs-operator hs-var"
>(***)</span
></a
@@ -528,7 +528,7 @@ forall a. [a] -> [a] -> [a]
>[a] -> [a] -> [a]
forall a. [a] -> [a] -> [a]
</span
- ><a href="Operators.html#%2B%2B%2B"
+ ><a href="#%2B%2B%2B"
><span class="hs-operator hs-var"
>+++</span
></a
@@ -553,7 +553,7 @@ forall a. [a] -> [a] -> [a]
>[a] -> [a] -> [a]
forall a. [a] -> [a] -> [a]
</span
- ><a href="Operators.html#%2A%2A%2A"
+ ><a href="#%2A%2A%2A"
><span class="hs-operator hs-var"
>***</span
></a
@@ -583,7 +583,7 @@ forall a. [a] -> [a] -> [a]
></span
><span id=""
><span class="annot"
- ><a href="Operators.html#%2A%2F%5C%2A"
+ ><a href="#%2A%2F%5C%2A"
><span class="hs-operator hs-type"
>(*/\*)</span
></a
@@ -664,7 +664,7 @@ forall a. [a] -> [a] -> [a]
><span class="annottext"
>*/\* :: forall a. [[a]] -> [a] -> [a]
</span
- ><a href="Operators.html#%2A%2F%5C%2A"
+ ><a href="#%2A%2F%5C%2A"
><span class="hs-operator hs-var hs-var"
>*/\*</span
></a
@@ -706,7 +706,7 @@ forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
>[a] -> [a] -> [a]
forall a. [a] -> [a] -> [a]
</span
- ><a href="Operators.html#%2A%2A%2A"
+ ><a href="#%2A%2A%2A"
><span class="hs-operator hs-var"
>***</span
></a
@@ -747,7 +747,7 @@ forall a. [a] -> [a] -> [a]
></span
><span id=""
><span class="annot"
- ><a href="Operators.html#%2A%2A%2F%5C%2A%2A"
+ ><a href="#%2A%2A%2F%5C%2A%2A"
><span class="hs-operator hs-type"
>(**/\**)</span
></a
@@ -836,7 +836,7 @@ forall a. [a] -> [a] -> [a]
><span class="annottext"
>**/\** :: forall a. [[a]] -> [[a]] -> [[a]]
</span
- ><a href="Operators.html#%2A%2A%2F%5C%2A%2A"
+ ><a href="#%2A%2A%2F%5C%2A%2A"
><span class="hs-operator hs-var hs-var"
>**/\**</span
></a
@@ -876,7 +876,7 @@ forall a b c. (a -> b -> c) -> [a] -> [b] -> [c]
>[[a]] -> [a] -> [a]
forall a. [[a]] -> [a] -> [a]
</span
- ><a href="Operators.html#%2A%2F%5C%2A"
+ ><a href="#%2A%2F%5C%2A"
><span class="hs-operator hs-var"
>(*/\*)</span
></a
@@ -901,7 +901,7 @@ forall a. [[a]] -> [a] -> [a]
>[[a]] -> [[a]] -> [[a]]
forall a. [a] -> [a] -> [a]
</span
- ><a href="Operators.html#%2B%2B%2B"
+ ><a href="#%2B%2B%2B"
><span class="hs-operator hs-var"
>+++</span
></a
@@ -939,7 +939,7 @@ forall a. [a] -> [a] -> [a]
>[[a]] -> [[a]] -> [[a]]
forall a. [a] -> [a] -> [a]
</span
- ><a href="Operators.html#%24%24%24"
+ ><a href="#%24%24%24"
><span class="hs-operator hs-var"
>$$$</span
></a
@@ -971,7 +971,7 @@ forall a. [a] -> [a] -> [a]
><span id=""
><span id=""
><span class="annot"
- ><a href="Operators.html#%23.%23"
+ ><a href="#%23.%23"
><span class="hs-operator hs-type"
>(#.#)</span
></a
@@ -1068,7 +1068,7 @@ forall a. [a] -> [a] -> [a]
><span class="annottext"
>#.# :: forall a b c. a -> b -> c -> (a, b)
</span
- ><a href="Operators.html#%23.%23"
+ ><a href="#%23.%23"
><span class="hs-operator hs-var hs-var"
>#.#</span
></a
=====================================
utils/haddock/hypsrc-test/ref/src/Polymorphism.html
=====================================
@@ -68,7 +68,7 @@
></span
><span id=""
><span class="annot"
- ><a href="Polymorphism.html#foo"
+ ><a href="#foo"
><span class="hs-identifier hs-type"
>foo</span
></a
@@ -120,7 +120,7 @@
><span class="annottext"
>foo :: forall a. a -> a -> a
</span
- ><a href="Polymorphism.html#foo"
+ ><a href="#foo"
><span class="hs-identifier hs-var hs-var"
>foo</span
></a
@@ -151,7 +151,7 @@ forall a. HasCallStack => a
><span id="line-12"
></span
><span class="annot"
- ><a href="Polymorphism.html#foo%27"
+ ><a href="#foo%27"
><span class="hs-identifier hs-type"
>foo'</span
></a
@@ -218,7 +218,7 @@ forall a. HasCallStack => a
><span class="annottext"
>foo' :: forall a. a -> a -> a
</span
- ><a href="Polymorphism.html#foo%27"
+ ><a href="#foo%27"
><span class="hs-identifier hs-var hs-var"
>foo'</span
></a
@@ -251,7 +251,7 @@ forall a. HasCallStack => a
><span id=""
><span id=""
><span class="annot"
- ><a href="Polymorphism.html#bar"
+ ><a href="#bar"
><span class="hs-identifier hs-type"
>bar</span
></a
@@ -318,7 +318,7 @@ forall a. HasCallStack => a
><span class="annottext"
>bar :: forall a b. a -> b -> (a, b)
</span
- ><a href="Polymorphism.html#bar"
+ ><a href="#bar"
><span class="hs-identifier hs-var hs-var"
>bar</span
></a
@@ -349,7 +349,7 @@ forall a. HasCallStack => a
><span id="line-18"
></span
><span class="annot"
- ><a href="Polymorphism.html#bar%27"
+ ><a href="#bar%27"
><span class="hs-identifier hs-type"
>bar'</span
></a
@@ -440,7 +440,7 @@ forall a. HasCallStack => a
><span class="annottext"
>bar' :: forall a b. a -> b -> (a, b)
</span
- ><a href="Polymorphism.html#bar%27"
+ ><a href="#bar%27"
><span class="hs-identifier hs-var hs-var"
>bar'</span
></a
@@ -473,7 +473,7 @@ forall a. HasCallStack => a
><span id=""
><span id=""
><span class="annot"
- ><a href="Polymorphism.html#baz"
+ ><a href="#baz"
><span class="hs-identifier hs-type"
>baz</span
></a
@@ -570,7 +570,7 @@ forall a. HasCallStack => a
><span class="annottext"
>baz :: forall a b. a -> (a -> [a -> a] -> b) -> b
</span
- ><a href="Polymorphism.html#baz"
+ ><a href="#baz"
><span class="hs-identifier hs-var hs-var"
>baz</span
></a
@@ -601,7 +601,7 @@ forall a. HasCallStack => a
><span id="line-24"
></span
><span class="annot"
- ><a href="Polymorphism.html#baz%27"
+ ><a href="#baz%27"
><span class="hs-identifier hs-type"
>baz'</span
></a
@@ -722,7 +722,7 @@ forall a. HasCallStack => a
><span class="annottext"
>baz' :: forall a b. a -> (a -> [a -> a] -> b) -> b
</span
- ><a href="Polymorphism.html#baz%27"
+ ><a href="#baz%27"
><span class="hs-identifier hs-var hs-var"
>baz'</span
></a
@@ -754,7 +754,7 @@ forall a. HasCallStack => a
></span
><span id=""
><span class="annot"
- ><a href="Polymorphism.html#quux"
+ ><a href="#quux"
><span class="hs-identifier hs-type"
>quux</span
></a
@@ -838,7 +838,7 @@ forall a. HasCallStack => a
><span class="annottext"
>quux :: forall a. a -> (forall a. a -> a) -> a
</span
- ><a href="Polymorphism.html#quux"
+ ><a href="#quux"
><span class="hs-identifier hs-var hs-var"
>quux</span
></a
@@ -908,7 +908,7 @@ forall a. a -> a
><span id="line-30"
></span
><span class="annot"
- ><a href="Polymorphism.html#quux%27"
+ ><a href="#quux%27"
><span class="hs-identifier hs-type"
>quux'</span
></a
@@ -1007,7 +1007,7 @@ forall a. a -> a
><span class="annottext"
>quux' :: forall a. a -> (forall a. a -> a) -> a
</span
- ><a href="Polymorphism.html#quux%27"
+ ><a href="#quux%27"
><span class="hs-identifier hs-var hs-var"
>quux'</span
></a
@@ -1083,7 +1083,7 @@ forall a. a -> a
></span
><span id=""
><span class="annot"
- ><a href="Polymorphism.html#num"
+ ><a href="#num"
><span class="hs-identifier hs-type"
>num</span
></a
@@ -1153,7 +1153,7 @@ forall a. a -> a
><span class="annottext"
>num :: forall a. Num a => a -> a -> a
</span
- ><a href="Polymorphism.html#num"
+ ><a href="#num"
><span class="hs-identifier hs-var hs-var"
>num</span
></a
@@ -1184,7 +1184,7 @@ forall a. HasCallStack => a
><span id="line-37"
></span
><span class="annot"
- ><a href="Polymorphism.html#num%27"
+ ><a href="#num%27"
><span class="hs-identifier hs-type"
>num'</span
></a
@@ -1269,7 +1269,7 @@ forall a. HasCallStack => a
><span class="annottext"
>num' :: forall a. Num a => a -> a -> a
</span
- ><a href="Polymorphism.html#num%27"
+ ><a href="#num%27"
><span class="hs-identifier hs-var hs-var"
>num'</span
></a
@@ -1302,7 +1302,7 @@ forall a. HasCallStack => a
><span id=""
><span id=""
><span class="annot"
- ><a href="Polymorphism.html#eq"
+ ><a href="#eq"
><span class="hs-identifier hs-type"
>eq</span
></a
@@ -1415,7 +1415,7 @@ forall a. HasCallStack => a
><span class="annottext"
>eq :: forall a b. (Eq a, Eq b) => [a] -> [b] -> (a, b)
</span
- ><a href="Polymorphism.html#eq"
+ ><a href="#eq"
><span class="hs-identifier hs-var hs-var"
>eq</span
></a
@@ -1446,7 +1446,7 @@ forall a. HasCallStack => a
><span id="line-43"
></span
><span class="annot"
- ><a href="Polymorphism.html#eq%27"
+ ><a href="#eq%27"
><span class="hs-identifier hs-type"
>eq'</span
></a
@@ -1583,7 +1583,7 @@ forall a. HasCallStack => a
><span class="annottext"
>eq' :: forall a b. (Eq a, Eq b) => [a] -> [b] -> (a, b)
</span
- ><a href="Polymorphism.html#eq%27"
+ ><a href="#eq%27"
><span class="hs-identifier hs-var hs-var"
>eq'</span
></a
@@ -1616,7 +1616,7 @@ forall a. HasCallStack => a
><span id=""
><span id=""
><span class="annot"
- ><a href="Polymorphism.html#mon"
+ ><a href="#mon"
><span class="hs-identifier hs-type"
>mon</span
></a
@@ -1707,7 +1707,7 @@ forall a. HasCallStack => a
><span class="annottext"
>mon :: forall (m :: * -> *) a. Monad m => (a -> m a) -> m a
</span
- ><a href="Polymorphism.html#mon"
+ ><a href="#mon"
><span class="hs-identifier hs-var hs-var"
>mon</span
></a
@@ -1738,7 +1738,7 @@ forall a. HasCallStack => a
><span id="line-49"
></span
><span class="annot"
- ><a href="Polymorphism.html#mon%27"
+ ><a href="#mon%27"
><span class="hs-identifier hs-type"
>mon'</span
></a
@@ -1853,7 +1853,7 @@ forall a. HasCallStack => a
><span class="annottext"
>mon' :: forall (m :: * -> *) a. Monad m => (a -> m a) -> m a
</span
- ><a href="Polymorphism.html#mon%27"
+ ><a href="#mon%27"
><span class="hs-identifier hs-var hs-var"
>mon'</span
></a
@@ -1890,7 +1890,7 @@ forall a. HasCallStack => a
></span
><span id=""
><span class="annot"
- ><a href="Polymorphism.html#norf"
+ ><a href="#norf"
><span class="hs-identifier hs-type"
>norf</span
></a
@@ -1992,7 +1992,7 @@ forall a. HasCallStack => a
><span class="annottext"
>norf :: forall a. a -> (forall a. Ord a => a -> a) -> a
</span
- ><a href="Polymorphism.html#norf"
+ ><a href="#norf"
><span class="hs-identifier hs-var hs-var"
>norf</span
></a
@@ -2050,7 +2050,7 @@ forall a. HasCallStack => a
><span id="line-56"
></span
><span class="annot"
- ><a href="Polymorphism.html#norf%27"
+ ><a href="#norf%27"
><span class="hs-identifier hs-type"
>norf'</span
></a
@@ -2167,7 +2167,7 @@ forall a. HasCallStack => a
><span class="annottext"
>norf' :: forall a. a -> (forall a. Ord a => a -> a) -> a
</span
- ><a href="Polymorphism.html#norf%27"
+ ><a href="#norf%27"
><span class="hs-identifier hs-var hs-var"
>norf'</span
></a
@@ -2230,7 +2230,7 @@ forall a. HasCallStack => a
><span id="line-60"
></span
><span class="annot"
- ><a href="Polymorphism.html#plugh"
+ ><a href="#plugh"
><span class="hs-identifier hs-type"
>plugh</span
></a
@@ -2285,7 +2285,7 @@ forall a. HasCallStack => a
><span class="annottext"
>plugh :: forall a. a -> a
</span
- ><a href="Polymorphism.html#plugh"
+ ><a href="#plugh"
><span class="hs-identifier hs-var hs-var"
>plugh</span
></a
@@ -2342,7 +2342,7 @@ forall a. HasCallStack => a
><span id="line-63"
></span
><span class="annot"
- ><a href="Polymorphism.html#thud"
+ ><a href="#thud"
><span class="hs-identifier hs-type"
>thud</span
></a
@@ -2449,7 +2449,7 @@ forall a. HasCallStack => a
><span class="annottext"
>thud :: forall a b. (a -> b) -> a -> (a, b)
</span
- ><a href="Polymorphism.html#thud"
+ ><a href="#thud"
><span class="hs-identifier hs-var hs-var"
>thud</span
></a
=====================================
utils/haddock/hypsrc-test/ref/src/PositionPragmas.html
=====================================
@@ -57,7 +57,7 @@
><span id="line-9"
></span
><span class="annot"
- ><a href="PositionPragmas.html#foo"
+ ><a href="#foo"
><span class="hs-identifier hs-type"
>foo</span
></a
@@ -82,7 +82,7 @@
><span class="annottext"
>foo :: String
</span
- ><a href="PositionPragmas.html#foo"
+ ><a href="#foo"
><span class="hs-identifier hs-var hs-var"
>foo</span
></a
@@ -98,7 +98,7 @@
><span class="annottext"
>String
</span
- ><a href="PositionPragmas.html#bar"
+ ><a href="#bar"
><span class="hs-identifier hs-var"
>bar</span
></a
@@ -126,7 +126,7 @@
><span id="line-24"
></span
><span class="annot"
- ><a href="PositionPragmas.html#bar"
+ ><a href="#bar"
><span class="hs-identifier hs-type"
>bar</span
></a
@@ -151,7 +151,7 @@
><span class="annottext"
>bar :: String
</span
- ><a href="PositionPragmas.html#bar"
+ ><a href="#bar"
><span class="hs-identifier hs-var hs-var"
>bar</span
></a
@@ -167,7 +167,7 @@
><span class="annottext"
>String
</span
- ><a href="PositionPragmas.html#foo"
+ ><a href="#foo"
><span class="hs-identifier hs-var"
>foo</span
></a
=====================================
utils/haddock/hypsrc-test/ref/src/Quasiquoter.html
=====================================
@@ -30,7 +30,7 @@
><span
> </span
><span class="annot"
- ><a href="Quasiquoter.html#string"
+ ><a href="#string"
><span class="hs-identifier"
>string</span
></a
@@ -94,7 +94,7 @@
><span id="line-8"
></span
><span class="annot"
- ><a href="Quasiquoter.html#string"
+ ><a href="#string"
><span class="hs-identifier hs-type"
>string</span
></a
@@ -119,7 +119,7 @@
><span class="annottext"
>string :: QuasiQuoter
</span
- ><a href="Quasiquoter.html#string"
+ ><a href="#string"
><span class="hs-identifier hs-var hs-var"
>string</span
></a
=====================================
utils/haddock/hypsrc-test/ref/src/Records.html
=====================================
@@ -72,7 +72,7 @@
> </span
><span id="Point"
><span class="annot"
- ><a href="Records.html#Point"
+ ><a href="#Point"
><span class="hs-identifier hs-var"
>Point</span
></a
@@ -86,7 +86,7 @@
> </span
><span id="Point"
><span class="annot"
- ><a href="Records.html#Point"
+ ><a href="#Point"
><span class="hs-identifier hs-var"
>Point</span
></a
@@ -108,7 +108,7 @@
><span class="annottext"
>Point -> Int
</span
- ><a href="Records.html#x"
+ ><a href="#x"
><span class="hs-identifier hs-var hs-var"
>x</span
></a
@@ -142,7 +142,7 @@
><span class="annottext"
>Point -> Int
</span
- ><a href="Records.html#y"
+ ><a href="#y"
><span class="hs-identifier hs-var hs-var"
>y</span
></a
@@ -185,7 +185,7 @@
><span id="line-15"
></span
><span class="annot"
- ><a href="Records.html#point"
+ ><a href="#point"
><span class="hs-identifier hs-type"
>point</span
></a
@@ -217,7 +217,7 @@
><span
> </span
><span class="annot"
- ><a href="Records.html#Point"
+ ><a href="#Point"
><span class="hs-identifier hs-type"
>Point</span
></a
@@ -232,7 +232,7 @@
><span class="annottext"
>point :: Int -> Int -> Point
</span
- ><a href="Records.html#point"
+ ><a href="#point"
><span class="hs-identifier hs-var hs-var"
>point</span
></a
@@ -271,7 +271,7 @@
><span
> </span
><span class="annot"
- ><a href="Records.html#Point"
+ ><a href="#Point"
><span class="hs-identifier hs-type"
>Point</span
></a
@@ -286,7 +286,7 @@
><span class="annottext"
>x :: Int
</span
- ><a href="Records.html#x"
+ ><a href="#x"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -314,7 +314,7 @@
><span class="annottext"
>y :: Int
</span
- ><a href="Records.html#y"
+ ><a href="#y"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -354,7 +354,7 @@
><span id="line-19"
></span
><span class="annot"
- ><a href="Records.html#lengthSqr"
+ ><a href="#lengthSqr"
><span class="hs-identifier hs-type"
>lengthSqr</span
></a
@@ -366,7 +366,7 @@
><span
> </span
><span class="annot"
- ><a href="Records.html#Point"
+ ><a href="#Point"
><span class="hs-identifier hs-type"
>Point</span
></a
@@ -391,7 +391,7 @@
><span class="annottext"
>lengthSqr :: Point -> Int
</span
- ><a href="Records.html#lengthSqr"
+ ><a href="#lengthSqr"
><span class="hs-identifier hs-var hs-var"
>lengthSqr</span
></a
@@ -402,7 +402,7 @@
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Records.html#Point"
+ ><a href="#Point"
><span class="hs-identifier hs-type"
>Point</span
></a
@@ -417,7 +417,7 @@
><span class="annottext"
>x :: Point -> Int
</span
- ><a href="Records.html#x"
+ ><a href="#x"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -447,7 +447,7 @@
><span class="annottext"
>y :: Point -> Int
</span
- ><a href="Records.html#y"
+ ><a href="#y"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -564,7 +564,7 @@ forall a. Num a => a -> a -> a
><span id="line-22"
></span
><span class="annot"
- ><a href="Records.html#lengthSqr%27"
+ ><a href="#lengthSqr%27"
><span class="hs-identifier hs-type"
>lengthSqr'</span
></a
@@ -576,7 +576,7 @@ forall a. Num a => a -> a -> a
><span
> </span
><span class="annot"
- ><a href="Records.html#Point"
+ ><a href="#Point"
><span class="hs-identifier hs-type"
>Point</span
></a
@@ -601,7 +601,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>lengthSqr' :: Point -> Int
</span
- ><a href="Records.html#lengthSqr%27"
+ ><a href="#lengthSqr%27"
><span class="hs-identifier hs-var hs-var"
>lengthSqr'</span
></a
@@ -612,7 +612,7 @@ forall a. Num a => a -> a -> a
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Records.html#Point"
+ ><a href="#Point"
><span class="hs-identifier hs-type"
>Point</span
></a
@@ -630,7 +630,7 @@ forall a. Num a => a -> a -> a
x :: Point -> Int
x :: Int
</span
- ><a href="Records.html#x"
+ ><a href="#x"
><span class="hs-identifier hs-var hs-var"
>x</span
></a
@@ -647,7 +647,7 @@ x :: Int
y :: Point -> Int
y :: Int
</span
- ><a href="Records.html#y"
+ ><a href="#y"
><span class="hs-identifier hs-var hs-var"
>y</span
></a
@@ -753,7 +753,7 @@ forall a. Num a => a -> a -> a
><span id="line-26"
></span
><span class="annot"
- ><a href="Records.html#translateX"
+ ><a href="#translateX"
><span class="hs-identifier hs-type"
>translateX</span
></a
@@ -763,7 +763,7 @@ forall a. Num a => a -> a -> a
><span
> </span
><span class="annot"
- ><a href="Records.html#translateY"
+ ><a href="#translateY"
><span class="hs-identifier hs-type"
>translateY</span
></a
@@ -775,7 +775,7 @@ forall a. Num a => a -> a -> a
><span
> </span
><span class="annot"
- ><a href="Records.html#Point"
+ ><a href="#Point"
><span class="hs-identifier hs-type"
>Point</span
></a
@@ -797,7 +797,7 @@ forall a. Num a => a -> a -> a
><span
> </span
><span class="annot"
- ><a href="Records.html#Point"
+ ><a href="#Point"
><span class="hs-identifier hs-type"
>Point</span
></a
@@ -812,7 +812,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>translateX :: Point -> Int -> Point
</span
- ><a href="Records.html#translateX"
+ ><a href="#translateX"
><span class="hs-identifier hs-var hs-var"
>translateX</span
></a
@@ -866,7 +866,7 @@ forall a. Num a => a -> a -> a
><span
> </span
><span class="annot"
- ><a href="Records.html#x"
+ ><a href="#x"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -878,7 +878,7 @@ forall a. Num a => a -> a -> a
><span
> </span
><span class="annot"
- ><a href="Records.html#x"
+ ><a href="#x"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -919,7 +919,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>translateY :: Point -> Int -> Point
</span
- ><a href="Records.html#translateY"
+ ><a href="#translateY"
><span class="hs-identifier hs-var hs-var"
>translateY</span
></a
@@ -973,7 +973,7 @@ forall a. Num a => a -> a -> a
><span
> </span
><span class="annot"
- ><a href="Records.html#y"
+ ><a href="#y"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -985,7 +985,7 @@ forall a. Num a => a -> a -> a
><span
> </span
><span class="annot"
- ><a href="Records.html#y"
+ ><a href="#y"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -1027,7 +1027,7 @@ forall a. Num a => a -> a -> a
><span id="line-30"
></span
><span class="annot"
- ><a href="Records.html#translate"
+ ><a href="#translate"
><span class="hs-identifier hs-type"
>translate</span
></a
@@ -1059,7 +1059,7 @@ forall a. Num a => a -> a -> a
><span
> </span
><span class="annot"
- ><a href="Records.html#Point"
+ ><a href="#Point"
><span class="hs-identifier hs-type"
>Point</span
></a
@@ -1071,7 +1071,7 @@ forall a. Num a => a -> a -> a
><span
> </span
><span class="annot"
- ><a href="Records.html#Point"
+ ><a href="#Point"
><span class="hs-identifier hs-type"
>Point</span
></a
@@ -1086,7 +1086,7 @@ forall a. Num a => a -> a -> a
><span class="annottext"
>translate :: Int -> Int -> Point -> Point
</span
- ><a href="Records.html#translate"
+ ><a href="#translate"
><span class="hs-identifier hs-var hs-var"
>translate</span
></a
@@ -1261,7 +1261,7 @@ forall a. Num a => a -> a -> a
><span
> </span
><span class="annot"
- ><a href="Records.html#Point"
+ ><a href="#Point"
><span class="hs-identifier hs-type"
>Point</span
></a
@@ -1278,7 +1278,7 @@ y :: Point -> Int
x :: Int
y :: Int
</span
- ><a href="Records.html#x"
+ ><a href="#x"
><span class="hs-glyph hs-var hs-var hs-var hs-var"
>..</span
></a
@@ -1309,7 +1309,7 @@ y :: Int
><span
> </span
><span class="annot"
- ><a href="Records.html#x"
+ ><a href="#x"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -1345,7 +1345,7 @@ y :: Int
><span
> </span
><span class="annot"
- ><a href="Records.html#y"
+ ><a href="#y"
><span class="hs-identifier hs-var"
>y</span
></a
=====================================
utils/haddock/hypsrc-test/ref/src/TemplateHaskellQuasiquotes.html
=====================================
@@ -68,7 +68,7 @@
><span id="line-8"
></span
><span class="annot"
- ><a href="TemplateHaskellQuasiquotes.html#aDecl"
+ ><a href="#aDecl"
><span class="hs-identifier hs-type"
>aDecl</span
></a
@@ -93,7 +93,7 @@
><span class="annottext"
>aDecl :: DecsQ
</span
- ><a href="TemplateHaskellQuasiquotes.html#aDecl"
+ ><a href="#aDecl"
><span class="hs-identifier hs-var hs-var"
>aDecl</span
></a
@@ -132,7 +132,7 @@
><span class="annottext"
>TypeQ
</span
- ><a href="TemplateHaskellQuasiquotes.html#aType"
+ ><a href="#aType"
><span class="hs-identifier hs-var"
>aType</span
></a
@@ -190,7 +190,7 @@
><span class="annottext"
>PatQ
</span
- ><a href="TemplateHaskellQuasiquotes.html#aPattern"
+ ><a href="#aPattern"
><span class="hs-identifier hs-var"
>aPattern</span
></a
@@ -207,7 +207,7 @@
><span class="annottext"
>ExpQ
</span
- ><a href="TemplateHaskellQuasiquotes.html#anExpression"
+ ><a href="#anExpression"
><span class="hs-identifier hs-var"
>anExpression</span
></a
@@ -232,7 +232,7 @@
><span id="line-14"
></span
><span class="annot"
- ><a href="TemplateHaskellQuasiquotes.html#aPattern"
+ ><a href="#aPattern"
><span class="hs-identifier hs-type"
>aPattern</span
></a
@@ -257,7 +257,7 @@
><span class="annottext"
>aPattern :: PatQ
</span
- ><a href="TemplateHaskellQuasiquotes.html#aPattern"
+ ><a href="#aPattern"
><span class="hs-identifier hs-var hs-var"
>aPattern</span
></a
@@ -365,7 +365,7 @@
><span class="annottext"
>PatQ
</span
- ><a href="TemplateHaskellQuasiquotes.html#aNumberPattern"
+ ><a href="#aNumberPattern"
><span class="hs-identifier hs-var"
>aNumberPattern</span
></a
@@ -409,7 +409,7 @@
><span id="line-23"
></span
><span class="annot"
- ><a href="TemplateHaskellQuasiquotes.html#aNumberPattern"
+ ><a href="#aNumberPattern"
><span class="hs-identifier hs-type"
>aNumberPattern</span
></a
@@ -434,7 +434,7 @@
><span class="annottext"
>aNumberPattern :: PatQ
</span
- ><a href="TemplateHaskellQuasiquotes.html#aNumberPattern"
+ ><a href="#aNumberPattern"
><span class="hs-identifier hs-var hs-var"
>aNumberPattern</span
></a
@@ -499,7 +499,7 @@
><span id="line-28"
></span
><span class="annot"
- ><a href="TemplateHaskellQuasiquotes.html#anExpression"
+ ><a href="#anExpression"
><span class="hs-identifier hs-type"
>anExpression</span
></a
@@ -509,7 +509,7 @@
><span
> </span
><span class="annot"
- ><a href="TemplateHaskellQuasiquotes.html#anExpression2"
+ ><a href="#anExpression2"
><span class="hs-identifier hs-type"
>anExpression2</span
></a
@@ -534,7 +534,7 @@
><span class="annottext"
>anExpression :: ExpQ
</span
- ><a href="TemplateHaskellQuasiquotes.html#anExpression"
+ ><a href="#anExpression"
><span class="hs-identifier hs-var hs-var"
>anExpression</span
></a
@@ -579,7 +579,7 @@
><span class="annottext"
>ExpQ
</span
- ><a href="TemplateHaskellQuasiquotes.html#anExpression2"
+ ><a href="#anExpression2"
><span class="hs-identifier hs-var"
>anExpression2</span
></a
@@ -617,7 +617,7 @@
><span class="annottext"
>anExpression2 :: ExpQ
</span
- ><a href="TemplateHaskellQuasiquotes.html#anExpression2"
+ ><a href="#anExpression2"
><span class="hs-identifier hs-var hs-var"
>anExpression2</span
></a
@@ -674,7 +674,7 @@
><span id="line-34"
></span
><span class="annot"
- ><a href="TemplateHaskellQuasiquotes.html#aType"
+ ><a href="#aType"
><span class="hs-identifier hs-type"
>aType</span
></a
@@ -699,7 +699,7 @@
><span class="annottext"
>aType :: TypeQ
</span
- ><a href="TemplateHaskellQuasiquotes.html#aType"
+ ><a href="#aType"
><span class="hs-identifier hs-var hs-var"
>aType</span
></a
@@ -764,7 +764,7 @@
><span id="line-39"
></span
><span class="annot"
- ><a href="TemplateHaskellQuasiquotes.html#typedExpr1"
+ ><a href="#typedExpr1"
><span class="hs-identifier hs-type"
>typedExpr1</span
></a
@@ -801,7 +801,7 @@
><span class="annottext"
>typedExpr1 :: Code Q ()
</span
- ><a href="TemplateHaskellQuasiquotes.html#typedExpr1"
+ ><a href="#typedExpr1"
><span class="hs-identifier hs-var hs-var"
>typedExpr1</span
></a
@@ -836,7 +836,7 @@
><span id="line-42"
></span
><span class="annot"
- ><a href="TemplateHaskellQuasiquotes.html#typedExpr"
+ ><a href="#typedExpr"
><span class="hs-identifier hs-type"
>typedExpr</span
></a
@@ -873,7 +873,7 @@
><span class="annottext"
>typedExpr :: Code Q ()
</span
- ><a href="TemplateHaskellQuasiquotes.html#typedExpr"
+ ><a href="#typedExpr"
><span class="hs-identifier hs-var hs-var"
>typedExpr</span
></a
@@ -907,7 +907,7 @@ forall a b. a -> b -> a
><span class="annottext"
>Code Q ()
</span
- ><a href="TemplateHaskellQuasiquotes.html#typedExpr1"
+ ><a href="#typedExpr1"
><span class="hs-identifier hs-var"
>typedExpr1</span
></a
=====================================
utils/haddock/hypsrc-test/ref/src/TemplateHaskellSplices.html
=====================================
@@ -89,7 +89,7 @@
><span class="annottext"
>foo :: Integer
</span
- ><a href="TemplateHaskellSplices.html#foo"
+ ><a href="#foo"
><span class="hs-identifier hs-var hs-var"
>foo</span
></a
@@ -138,7 +138,7 @@ forall a. a -> a
><span class="annottext"
>pat :: [(a, String)] -> ()
</span
- ><a href="TemplateHaskellSplices.html#pat"
+ ><a href="#pat"
><span class="hs-identifier hs-var hs-var"
>pat</span
></a
@@ -195,7 +195,7 @@ forall a. a -> a
><span class="annottext"
>qux :: ()
</span
- ><a href="TemplateHaskellSplices.html#qux"
+ ><a href="#qux"
><span class="hs-identifier hs-var hs-var"
>qux</span
></a
=====================================
utils/haddock/hypsrc-test/ref/src/Types.html
=====================================
@@ -65,7 +65,7 @@
> </span
><span id="Quux"
><span class="annot"
- ><a href="Types.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-var"
>Quux</span
></a
@@ -79,7 +79,7 @@
> </span
><span id="Bar"
><span class="annot"
- ><a href="Types.html#Bar"
+ ><a href="#Bar"
><span class="hs-identifier hs-var"
>Bar</span
></a
@@ -93,7 +93,7 @@
> </span
><span id="Baz"
><span class="annot"
- ><a href="Types.html#Baz"
+ ><a href="#Baz"
><span class="hs-identifier hs-var"
>Baz</span
></a
@@ -115,7 +115,7 @@
> </span
><span id="Foo"
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-var"
>Foo</span
></a
@@ -129,7 +129,7 @@
> </span
><span id="Foo"
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-var"
>Foo</span
></a
@@ -157,7 +157,7 @@
> </span
><span id="FooQuux"
><span class="annot"
- ><a href="Types.html#FooQuux"
+ ><a href="#FooQuux"
><span class="hs-identifier hs-var"
>FooQuux</span
></a
@@ -172,7 +172,7 @@
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -182,7 +182,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
@@ -200,7 +200,7 @@
> </span
><span id="QuuxFoo"
><span class="annot"
- ><a href="Types.html#QuuxFoo"
+ ><a href="#QuuxFoo"
><span class="hs-identifier hs-var"
>QuuxFoo</span
></a
@@ -215,7 +215,7 @@
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Types.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
@@ -225,7 +225,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -257,7 +257,7 @@
> </span
><span id="Norf"
><span class="annot"
- ><a href="Types.html#Norf"
+ ><a href="#Norf"
><span class="hs-identifier hs-var"
>Norf</span
></a
@@ -303,7 +303,7 @@
> </span
><span id="Norf"
><span class="annot"
- ><a href="Types.html#Norf"
+ ><a href="#Norf"
><span class="hs-identifier hs-var"
>Norf</span
></a
@@ -312,7 +312,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -320,7 +320,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
@@ -333,7 +333,7 @@
> </span
><span id="NFQ"
><span class="annot"
- ><a href="Types.html#NFQ"
+ ><a href="#NFQ"
><span class="hs-identifier hs-var"
>NFQ</span
></a
@@ -342,7 +342,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -350,7 +350,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
@@ -370,7 +370,7 @@
> </span
><span id="Norf"
><span class="annot"
- ><a href="Types.html#Norf"
+ ><a href="#Norf"
><span class="hs-identifier hs-var"
>Norf</span
></a
@@ -379,7 +379,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
@@ -387,7 +387,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -400,7 +400,7 @@
> </span
><span id="NQF"
><span class="annot"
- ><a href="Types.html#NQF"
+ ><a href="#NQF"
><span class="hs-identifier hs-var"
>NQF</span
></a
@@ -409,7 +409,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
@@ -417,7 +417,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -447,7 +447,7 @@
> </span
><span id="Norf%27"
><span class="annot"
- ><a href="Types.html#Norf%27"
+ ><a href="#Norf%27"
><span class="hs-identifier hs-var"
>Norf'</span
></a
@@ -493,7 +493,7 @@
> </span
><span id="Norf%27"
><span class="annot"
- ><a href="Types.html#Norf%27"
+ ><a href="#Norf%27"
><span class="hs-identifier hs-var"
>Norf'</span
></a
@@ -502,7 +502,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -510,7 +510,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
@@ -524,7 +524,7 @@
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -534,7 +534,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
@@ -556,7 +556,7 @@
> </span
><span id="Norf%27"
><span class="annot"
- ><a href="Types.html#Norf%27"
+ ><a href="#Norf%27"
><span class="hs-identifier hs-var"
>Norf'</span
></a
@@ -565,7 +565,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
@@ -573,7 +573,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -587,7 +587,7 @@
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Types.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
@@ -597,7 +597,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -620,7 +620,7 @@
><span id="line-28"
></span
><span class="annot"
- ><a href="Types.html#norf1"
+ ><a href="#norf1"
><span class="hs-identifier hs-type"
>norf1</span
></a
@@ -632,7 +632,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Norf"
+ ><a href="#Norf"
><span class="hs-identifier hs-type"
>Norf</span
></a
@@ -640,7 +640,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -648,7 +648,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
@@ -673,7 +673,7 @@
><span class="annottext"
>norf1 :: Norf Foo Quux -> Int
</span
- ><a href="Types.html#norf1"
+ ><a href="#norf1"
><span class="hs-identifier hs-var hs-var"
>norf1</span
></a
@@ -684,7 +684,7 @@
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Types.html#NFQ"
+ ><a href="#NFQ"
><span class="hs-identifier hs-type"
>NFQ</span
></a
@@ -694,7 +694,7 @@
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -713,7 +713,7 @@
><span class="annottext"
>Quux
</span
- ><a href="Types.html#Bar"
+ ><a href="#Bar"
><span class="hs-identifier hs-var"
>Bar</span
></a
@@ -739,7 +739,7 @@
><span id="line-30"
></span
><span class="annot"
- ><a href="Types.html#norf1"
+ ><a href="#norf1"
><span class="hs-identifier hs-var"
>norf1</span
></a
@@ -749,7 +749,7 @@
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Types.html#NFQ"
+ ><a href="#NFQ"
><span class="hs-identifier hs-type"
>NFQ</span
></a
@@ -759,7 +759,7 @@
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -778,7 +778,7 @@
><span class="annottext"
>Quux
</span
- ><a href="Types.html#Baz"
+ ><a href="#Baz"
><span class="hs-identifier hs-var"
>Baz</span
></a
@@ -809,7 +809,7 @@
><span id="line-32"
></span
><span class="annot"
- ><a href="Types.html#norf2"
+ ><a href="#norf2"
><span class="hs-identifier hs-type"
>norf2</span
></a
@@ -821,7 +821,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Norf"
+ ><a href="#Norf"
><span class="hs-identifier hs-type"
>Norf</span
></a
@@ -829,7 +829,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
@@ -837,7 +837,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -862,7 +862,7 @@
><span class="annottext"
>norf2 :: Norf Quux Foo -> Int
</span
- ><a href="Types.html#norf2"
+ ><a href="#norf2"
><span class="hs-identifier hs-var hs-var"
>norf2</span
></a
@@ -873,7 +873,7 @@
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Types.html#NQF"
+ ><a href="#NQF"
><span class="hs-identifier hs-type"
>NQF</span
></a
@@ -884,7 +884,7 @@
><span class="annottext"
>Quux
</span
- ><a href="Types.html#Bar"
+ ><a href="#Bar"
><span class="hs-identifier hs-var"
>Bar</span
></a
@@ -894,7 +894,7 @@
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -928,7 +928,7 @@
><span id="line-34"
></span
><span class="annot"
- ><a href="Types.html#norf2"
+ ><a href="#norf2"
><span class="hs-identifier hs-var"
>norf2</span
></a
@@ -938,7 +938,7 @@
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Types.html#NQF"
+ ><a href="#NQF"
><span class="hs-identifier hs-type"
>NQF</span
></a
@@ -949,7 +949,7 @@
><span class="annottext"
>Quux
</span
- ><a href="Types.html#Baz"
+ ><a href="#Baz"
><span class="hs-identifier hs-var"
>Baz</span
></a
@@ -959,7 +959,7 @@
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -1003,7 +1003,7 @@
><span id="line-37"
></span
><span class="annot"
- ><a href="Types.html#norf1%27"
+ ><a href="#norf1%27"
><span class="hs-identifier hs-type"
>norf1'</span
></a
@@ -1015,7 +1015,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Norf%27"
+ ><a href="#Norf%27"
><span class="hs-identifier hs-type"
>Norf'</span
></a
@@ -1023,7 +1023,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -1031,7 +1031,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
@@ -1056,7 +1056,7 @@
><span class="annottext"
>norf1' :: Norf' Foo Quux -> Int
</span
- ><a href="Types.html#norf1%27"
+ ><a href="#norf1%27"
><span class="hs-identifier hs-var hs-var"
>norf1'</span
></a
@@ -1067,7 +1067,7 @@
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -1086,7 +1086,7 @@
><span class="annottext"
>Quux
</span
- ><a href="Types.html#Bar"
+ ><a href="#Bar"
><span class="hs-identifier hs-var"
>Bar</span
></a
@@ -1112,7 +1112,7 @@
><span id="line-39"
></span
><span class="annot"
- ><a href="Types.html#norf1%27"
+ ><a href="#norf1%27"
><span class="hs-identifier hs-var"
>norf1'</span
></a
@@ -1122,7 +1122,7 @@
><span class="hs-special"
>(</span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -1141,7 +1141,7 @@
><span class="annottext"
>Quux
</span
- ><a href="Types.html#Baz"
+ ><a href="#Baz"
><span class="hs-identifier hs-var"
>Baz</span
></a
@@ -1172,7 +1172,7 @@
><span id="line-41"
></span
><span class="annot"
- ><a href="Types.html#norf2%27"
+ ><a href="#norf2%27"
><span class="hs-identifier hs-type"
>norf2'</span
></a
@@ -1184,7 +1184,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Norf%27"
+ ><a href="#Norf%27"
><span class="hs-identifier hs-type"
>Norf'</span
></a
@@ -1192,7 +1192,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Quux"
+ ><a href="#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
@@ -1200,7 +1200,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -1225,7 +1225,7 @@
><span class="annottext"
>norf2' :: Norf' Quux Foo -> Int
</span
- ><a href="Types.html#norf2%27"
+ ><a href="#norf2%27"
><span class="hs-identifier hs-var hs-var"
>norf2'</span
></a
@@ -1239,7 +1239,7 @@
><span class="annottext"
>Quux
</span
- ><a href="Types.html#Bar"
+ ><a href="#Bar"
><span class="hs-identifier hs-var"
>Bar</span
></a
@@ -1249,7 +1249,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
@@ -1281,7 +1281,7 @@
><span id="line-43"
></span
><span class="annot"
- ><a href="Types.html#norf2%27"
+ ><a href="#norf2%27"
><span class="hs-identifier hs-var"
>norf2'</span
></a
@@ -1294,7 +1294,7 @@
><span class="annottext"
>Quux
</span
- ><a href="Types.html#Baz"
+ ><a href="#Baz"
><span class="hs-identifier hs-var"
>Baz</span
></a
@@ -1304,7 +1304,7 @@
><span
> </span
><span class="annot"
- ><a href="Types.html#Foo"
+ ><a href="#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
=====================================
utils/haddock/hypsrc-test/ref/src/UsingQuasiquotes.html
=====================================
@@ -69,7 +69,7 @@
><span class="annottext"
>baz :: [Char]
</span
- ><a href="UsingQuasiquotes.html#baz"
+ ><a href="#baz"
><span class="hs-identifier hs-var hs-var"
>baz</span
></a
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/9861b13edfd7eefb1091b469f90c0da…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/9861b13edfd7eefb1091b469f90c0da…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/marge_bot_batch_merge_job] 4 commits: ghc-heap: Fix race condition with profiling builds
by Marge Bot (@marge-bot) 14 Sep '25
by Marge Bot (@marge-bot) 14 Sep '25
14 Sep '25
Marge Bot pushed to branch wip/marge_bot_batch_merge_job at Glasgow Haskell Compiler / GHC
Commits:
99b233f4 by Alison at 2025-09-13T16:51:04-04:00
ghc-heap: Fix race condition with profiling builds
Apply the same fix from Closures.hs (64fd0fac83) to Heap.hs by adding
empty imports to make way-dependent dependencies visible to `ghc -M`.
Fixes #15197, #26407
- - - - -
b26086b9 by Cheng Shao at 2025-09-14T16:49:22-04:00
hadrian: build in-tree gmp with -fvisibility=hidden
When hadrian builds in-tree gmp, it should build the shared objects
with -fvisibility=hidden. The gmp symbols are only used by bignum
logic in ghc-internal and shouldn't be exported by the ghc-internal
shared library. We should always strive to keep shared library symbol
table lean, which benefits platforms with slow dynamic linker or even
hard limits about how many symbols can be exported (e.g. macos dyld,
win32 dll and wasm dyld).
- - - - -
47efd3d7 by Cheng Shao at 2025-09-14T16:49:26-04:00
Revert "wasm: add brotli compression for ghci browser mode"
This reverts commit 731217ce68a1093b5f9e26a07d5bd2cdade2b352.
Benchmarks show non-negligible overhead when browser runs on the same
host, which is the majority of actual use cases.
- - - - -
5b767424 by Cheng Shao at 2025-09-14T16:49:26-04:00
wasm: remove etag logic in ghci browser mode web server
This commit removes the etag logic in dyld script's ghci browser mode
web server. It was meant to support caching logic of wasm shared
libraries, but even if the port is manually specified to make caching
even relevant, for localhost the extra overhead around etag logic is
simply not worth it according to benchmarks.
- - - - -
3 changed files:
- hadrian/src/Rules/Gmp.hs
- libraries/ghc-heap/GHC/Exts/Heap.hs
- utils/jsffi/dyld.mjs
Changes:
=====================================
hadrian/src/Rules/Gmp.hs
=====================================
@@ -12,7 +12,6 @@ import Utilities
import Hadrian.BuildPath
import Hadrian.Expression
import Settings.Builders.Common (cArgs, getStagedCCFlags)
-import GHC.Platform.ArchOS
-- | Build in-tree GMP library objects (if GmpInTree flag is set) and return
-- their paths.
@@ -128,7 +127,10 @@ gmpRules = do
mconcat
[ cArgs
, getStagedCCFlags
- , anyTargetArch [ArchWasm32] ? arg "-fvisibility=default"
+ -- gmp symbols are only used by bignum logic in
+ -- ghc-internal and shouldn't be exported by the
+ -- ghc-internal shared library.
+ , arg "-fvisibility=hidden"
]
env <- sequence
[ builderEnvironment "CC" $ Cc CompileC (stage ctx)
=====================================
libraries/ghc-heap/GHC/Exts/Heap.hs
=====================================
@@ -67,10 +67,26 @@ import GHC.Exts.Heap.ClosureTypes
import GHC.Exts.Heap.Constants
import GHC.Exts.Heap.ProfInfo.Types
#if defined(PROFILING)
+import GHC.Exts.Heap.InfoTable () -- See Note [No way-dependent imports]
import GHC.Exts.Heap.InfoTableProf
#else
import GHC.Exts.Heap.InfoTable
+import GHC.Exts.Heap.InfoTableProf () -- See Note [No way-dependent imports]
+
+{-
+Note [No way-dependent imports]
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+`ghc -M` currently assumes that the imports for a module are the same
+in every way. This is arguably a bug, but breaking this assumption by
+importing different things in different ways can cause trouble. For
+example, this module in the profiling way imports and uses
+GHC.Exts.Heap.InfoTableProf. When it was not also imported in the
+vanilla way, there were intermittent build failures due to this module
+being compiled in the profiling way before GHC.Exts.Heap.InfoTableProf
+in the profiling way. (#15197)
+-}
#endif
+
import GHC.Exts.Heap.Utils
import qualified GHC.Exts.Heap.FFIClosures as FFIClosures
import qualified GHC.Exts.Heap.ProfInfo.PeekProfInfo as PPI
=====================================
utils/jsffi/dyld.mjs
=====================================
@@ -291,7 +291,7 @@ const isNode = Boolean(globalThis?.process?.versions?.node);
// factor out browser-only/node-only logic into different modules. For
// now, just make these global let bindings optionally initialized if
// isNode and be careful to not use them in browser-only logic.
-let fs, http, path, require, stream, util, wasi, ws, zlib;
+let fs, http, path, require, stream, wasi, ws;
if (isNode) {
require = (await import("node:module")).createRequire(import.meta.url);
@@ -300,9 +300,7 @@ if (isNode) {
http = require("http");
path = require("path");
stream = require("stream");
- util = require("util");
wasi = require("wasi");
- zlib = require("zlib");
// Optional npm dependencies loaded via NODE_PATH
try {
@@ -561,30 +559,8 @@ args.rpc.opened.then(() => main(args));
}[path.extname(p)] || "application/octet-stream"
);
- const buf = Buffer.from(await fs.promises.readFile(p));
- const etag = `sha512-${Buffer.from(
- await crypto.subtle.digest("SHA-512", buf)
- ).toString("base64")}`;
-
- res.setHeader("ETag", etag);
-
- if (req.headers["if-none-match"] === etag) {
- res.writeHead(304);
- res.end();
- return;
- }
-
- res.setHeader("Content-Encoding", "br");
-
res.writeHead(200);
- res.end(
- await util.promisify(zlib.brotliCompress)(buf, {
- params: {
- [zlib.constants.BROTLI_PARAM_QUALITY]:
- zlib.constants.BROTLI_MIN_QUALITY,
- },
- })
- );
+ fs.createReadStream(p).pipe(res);
return;
}
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/8e8daf8c4c50c2e5022b8bddfd56bb…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/8e8daf8c4c50c2e5022b8bddfd56bb…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/shorter-this-module-links] Use showUnique in internalAnchorIdent
by Oleg Grenrus (@phadej) 14 Sep '25
by Oleg Grenrus (@phadej) 14 Sep '25
14 Sep '25
Oleg Grenrus pushed to branch wip/shorter-this-module-links at Glasgow Haskell Compiler / GHC
Commits:
cf26a2e3 by Oleg Grenrus at 2025-09-14T23:33:54+03:00
Use showUnique in internalAnchorIdent
Showing the key of Unique as a number is generally not a great idea.
GHC Unique has a tag in high bits, so the raw number is unnecessarily
big.
So now we have
```html
<a href="#l-rvgK"><span class="hs-identifier hs-var hs-var">bar</span></a>
```
instead of
```html
<a href="#local-6989586621679015689"><span class="hs-identifier hs-var hs-var">bar</span></a>
```
Together with previous changes of shorter intra-module links the effect
on compressed files is not huge, that is expected as we simply remove
repetitive contents which pack well.
```
12_694_206 Agda-2.9.0-docs-orig.tar.gz
12_566_065 Agda-2.9.0-docs.tar.gz
```
However when unpacked, the difference can be significant,
e.g. Agda's largest module source got 5% reduction:
```
14_230_117 Agda.Syntax.Parser.Parser.html
13_422_109 Agda.Syntax.Parser.Parser.html
```
The whole hyperlinked source code directory got similar reduction
```
121M Agda-2.9.0-docs-orig/src
114M Agda-2.9.0-docs/src
```
For the reference, sources are about 2/3 of the generated haddocks
```
178M Agda-2.9.0-docs-old
172M Agda-2.9.0-docs
```
so we get around 3.5% size reduction overall. Not bad for a small local
changes.
- - - - -
16 changed files:
- utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Renderer.hs
- utils/haddock/hypsrc-test/ref/src/CPP.html
- utils/haddock/hypsrc-test/ref/src/Classes.html
- utils/haddock/hypsrc-test/ref/src/Constructors.html
- utils/haddock/hypsrc-test/ref/src/Identifiers.html
- utils/haddock/hypsrc-test/ref/src/LinkingIdentifiers.html
- utils/haddock/hypsrc-test/ref/src/Literals.html
- utils/haddock/hypsrc-test/ref/src/Operators.html
- utils/haddock/hypsrc-test/ref/src/Polymorphism.html
- utils/haddock/hypsrc-test/ref/src/PositionPragmas.html
- utils/haddock/hypsrc-test/ref/src/Quasiquoter.html
- utils/haddock/hypsrc-test/ref/src/Records.html
- utils/haddock/hypsrc-test/ref/src/TemplateHaskellQuasiquotes.html
- utils/haddock/hypsrc-test/ref/src/TemplateHaskellSplices.html
- utils/haddock/hypsrc-test/ref/src/Types.html
- utils/haddock/hypsrc-test/ref/src/UsingQuasiquotes.html
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/cf26a2e3ddc17e729a0685aab1e1e71…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/cf26a2e3ddc17e729a0685aab1e1e71…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
14 Sep '25
Cheng Shao pushed new branch wip/wasm-enable-ghci-test at Glasgow Haskell Compiler / GHC
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/tree/wip/wasm-enable-ghci-test
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc] Pushed new branch wip/wasm-dyld-no-compression
by Cheng Shao (@TerrorJack) 14 Sep '25
by Cheng Shao (@TerrorJack) 14 Sep '25
14 Sep '25
Cheng Shao pushed new branch wip/wasm-dyld-no-compression at Glasgow Haskell Compiler / GHC
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/tree/wip/wasm-dyld-no-compression
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/shorter-this-module-links] Use showUnique in internalAnchorIdent
by Oleg Grenrus (@phadej) 14 Sep '25
by Oleg Grenrus (@phadej) 14 Sep '25
14 Sep '25
Oleg Grenrus pushed to branch wip/shorter-this-module-links at Glasgow Haskell Compiler / GHC
Commits:
b520943e by Oleg Grenrus at 2025-09-14T19:15:25+03:00
Use showUnique in internalAnchorIdent
Showing the key of Unique as a number is generally not a great idea.
GHC Unique has a tag in high bits, so the raw number is unnecessarily
big.
So now we have
```html
<a href="#l-rvgK"><span class="hs-identifier hs-var hs-var">bar</span></a>
```
instead of
```html
<a href="#local-6989586621679015689"><span class="hs-identifier hs-var hs-var">bar</span></a>
```
Together with previous changes of shorter intra-module links the effect
on compressed files is not huge, that is expected as we simply remove
repetitive contents which pack well.
```
12_694_206 Agda-2.9.0-docs-orig.tar.gz
12_566_065 Agda-2.9.0-docs.tar.gz
```
However when unpacked, the difference can be significant,
e.g. Agda's largest module source got 5% reduction:
```
14_230_117 Agda.Syntax.Parser.Parser.html
13_422_109 Agda.Syntax.Parser.Parser.html
```
The whole hyperlinked source code directory got similar reduction
```
121M Agda-2.9.0-docs-orig/src
114M Agda-2.9.0-docs/src
```
For the reference, sources are about 2/3 of the generated haddocks
```
178M Agda-2.9.0-docs-old
172M Agda-2.9.0-docs
```
so we get around 3.5% size reduction overall. Not bad for a small local
changes.
- - - - -
1 changed file:
- utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Renderer.hs
Changes:
=====================================
utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Renderer.hs
=====================================
@@ -14,7 +14,7 @@ import GHC.Iface.Ext.Types
import GHC.Iface.Ext.Utils (emptyNodeInfo, isEvidenceContext)
import GHC.Types.Name (Name, getOccString, isInternalName, nameModule, nameUnique)
import GHC.Types.SrcLoc
-import GHC.Types.Unique (getKey)
+import GHC.Types.Unique (showUnique)
import GHC.Unit.Module (Module, ModuleName, moduleNameString)
import GHC.Utils.Encoding (utf8DecodeByteString)
import System.FilePath.Posix ((</>))
@@ -254,7 +254,7 @@ externalAnchorIdent :: Name -> String
externalAnchorIdent = hypSrcNameUrl
internalAnchorIdent :: Name -> String
-internalAnchorIdent = ("local-" ++) . show . getKey . nameUnique
+internalAnchorIdent = ("l-" ++) . showUnique . nameUnique
-- | Generate the HTML hyperlink for an identifier
hyperlink :: Module -> SrcMaps -> Identifier -> Html -> Html
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/b520943e5c5581eb5be0b3e42096788…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/b520943e5c5581eb5be0b3e42096788…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/shorter-this-module-links] Use showUnique in internalAnchorIdent
by Oleg Grenrus (@phadej) 14 Sep '25
by Oleg Grenrus (@phadej) 14 Sep '25
14 Sep '25
Oleg Grenrus pushed to branch wip/shorter-this-module-links at Glasgow Haskell Compiler / GHC
Commits:
4d5bccf8 by Oleg Grenrus at 2025-09-14T18:46:13+03:00
Use showUnique in internalAnchorIdent
Showing the key of Unique as a number is generally not a great idea.
GHC Unique has a tag in high bits, so the raw number is unnecessarily
big.
So now we have
```html
<a href="#l-rvgK"><span class="hs-identifier hs-var hs-var">bar</span></a>
```
instead of
```html
<a href="#local-6989586621679015689"><span class="hs-identifier hs-var hs-var">bar</span></a>
```
Together with previous changes of shorter intra-module links the effect
on compressed files is not huge, that is expected as we simply remove
repetitive contents which pack well.
```
12_694_206 Agda-2.9.0-docs-orig.tar.gz
12_566_065 Agda-2.9.0-docs.tar.gz
```
However when unpacked, the difference can be significant,
e.g. Agda's largest module source got 5% reduction:
```
14_230_117 Agda.Syntax.Parser.Parser.html
13_422_109 Agda.Syntax.Parser.Parser.html
```
The whole hyperlinked source code directory got similar reduction
```
121M Agda-2.9.0-docs-orig/src
114M Agda-2.9.0-docs/src
```
For the reference, sources are about 2/3 of the generated haddocks
```
178M Agda-2.9.0-docs-old
172M Agda-2.9.0-docs
```
so we get around 3.5% size reduction overall. Not bad for a small local
changes.
- - - - -
24 changed files:
- libffi-tarballs
- libraries/Cabal
- libraries/Win32
- libraries/array
- libraries/containers
- libraries/deepseq
- libraries/directory
- libraries/exceptions
- libraries/filepath
- libraries/haskeline
- libraries/hpc
- libraries/os-string
- libraries/parsec
- libraries/process
- libraries/semaphore-compat
- libraries/stm
- libraries/terminfo
- libraries/text
- libraries/time
- libraries/unix
- nofib
- utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Renderer.hs
- utils/hpc
- utils/hsc2hs
Changes:
=====================================
libffi-tarballs
=====================================
@@ -1 +1 @@
-Subproject commit 7c51059557b68d29820a0a87cebfa6fe73c8adf5
+Subproject commit 89a9b01c5647c8f0d3899435b99df690f582e9f1
=====================================
libraries/Cabal
=====================================
@@ -1 +1 @@
-Subproject commit d9b0904b49dc84e0bfc79062daf2bbdf9d22a422
+Subproject commit 269fd808e5d80223a229b6b19edfe6f5b109007a
=====================================
libraries/Win32
=====================================
@@ -1 +1 @@
-Subproject commit 7d0772bb265a6c59eb14c441cf65c778895528df
+Subproject commit 027cbcf0de25d681823ea92fb545a2604c3a6a8b
=====================================
libraries/array
=====================================
@@ -1 +1 @@
-Subproject commit 6d59d5deb4f2a12656ab4c4371c0d12dac4875ef
+Subproject commit e7ffb82fd40134da21d7642a41568f32c77c1a04
=====================================
libraries/containers
=====================================
@@ -1 +1 @@
-Subproject commit 801b06e5d4392b028e519d5ca116a2881d559721
+Subproject commit 4fda06c43ea14f808748aa8988158946c3ce0caf
=====================================
libraries/deepseq
=====================================
@@ -1 +1 @@
-Subproject commit ae2762ac241a61852c9ff4c287af234fb1ad931f
+Subproject commit af115cc226cc87fba89d0f6e2e9212e755c24983
=====================================
libraries/directory
=====================================
@@ -1 +1 @@
-Subproject commit 6442a3cf04f74d82cdf8c9213324313d52b23d28
+Subproject commit 005fa061171a55d35ce8dfe936cf3703525a8616
=====================================
libraries/exceptions
=====================================
@@ -1 +1 @@
-Subproject commit b6c4290124eb1138358bf04ad9f33e67f6c5c1d8
+Subproject commit 8e55b720f45db91f4895f710863ef9dbc10fe569
=====================================
libraries/filepath
=====================================
@@ -1 +1 @@
-Subproject commit cbcd0ccf92f47e6c10fb9cc513a7b26facfc19fe
+Subproject commit 65b0f8f31aac4a306135e27734988327f8eb1e6f
=====================================
libraries/haskeline
=====================================
@@ -1 +1 @@
-Subproject commit 991953cd5d3bb9e8057de4a0d8f2cae3455865d8
+Subproject commit 5f4bf62bf1f4846ad0b8d1fa9d45f902e3934511
=====================================
libraries/hpc
=====================================
@@ -1 +1 @@
-Subproject commit 12675279dc5cbea4ade8b5157b080390d598f03f
+Subproject commit f321056015dc36b454f323ca4285d684f4f782d3
=====================================
libraries/os-string
=====================================
@@ -1 +1 @@
-Subproject commit 2e693aad07540173a0169971b27c9acac28eeff1
+Subproject commit 4b5efedcd2da9314edda80d973a44e67020370db
=====================================
libraries/parsec
=====================================
@@ -1 +1 @@
-Subproject commit 552730e23e1fd2dae46a60d75138b8d173492462
+Subproject commit b87122c1c74b8240e65044a8f600f0427d4dd9c3
=====================================
libraries/process
=====================================
@@ -1 +1 @@
-Subproject commit ae50731b5fb221a7631f7e9d818fc6716c85c51e
+Subproject commit 9c3bfc214c72bbd0c8a30a1c41465deed0feaf47
=====================================
libraries/semaphore-compat
=====================================
@@ -1 +1 @@
-Subproject commit ba87d1bb0209bd9f29bda1c878ddf345f8a2b199
+Subproject commit 54882cd9a07322a4cf95d4fc0627107eaf1eb051
=====================================
libraries/stm
=====================================
@@ -1 +1 @@
-Subproject commit 23bdcc2319965911af28542e76fc01f37c107d40
+Subproject commit def18948f42a2eb8c34efdf65f7e614d1f6d5703
=====================================
libraries/terminfo
=====================================
@@ -1 +1 @@
-Subproject commit 16db154e3e97e6bff62329574163851a7090f3b6
+Subproject commit 788ce671cb1cec54c3c9b3ac1c1ba189e8424819
=====================================
libraries/text
=====================================
@@ -1 +1 @@
-Subproject commit 5f343f668f421bfb30cead594e52d0ac6206ff67
+Subproject commit b86564cae8d7262c7c4e7afe7a9163c83de3f175
=====================================
libraries/time
=====================================
@@ -1 +1 @@
-Subproject commit 507f50844802f1469ba6cadfeefd4e3fecee0416
+Subproject commit e5c5d1987011efe88a21ab6ded45aaa33a16274f
=====================================
libraries/unix
=====================================
@@ -1 +1 @@
-Subproject commit c9b3e95b5c15b118e55522bd92963038c6a88160
+Subproject commit 74ae1c0d9dd1518434f7d6cd3e63d7769599e0f9
=====================================
nofib
=====================================
@@ -1 +1 @@
-Subproject commit b7391df4540ac8b11b35e1b2e2c15819b5171798
+Subproject commit da7eed00e494aba1da9f51cb92089ca10e2454e7
=====================================
utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Renderer.hs
=====================================
@@ -14,7 +14,7 @@ import GHC.Iface.Ext.Types
import GHC.Iface.Ext.Utils (emptyNodeInfo, isEvidenceContext)
import GHC.Types.Name (Name, getOccString, isInternalName, nameModule, nameUnique)
import GHC.Types.SrcLoc
-import GHC.Types.Unique (getKey)
+import GHC.Types.Unique (showUnique)
import GHC.Unit.Module (Module, ModuleName, moduleNameString)
import GHC.Utils.Encoding (utf8DecodeByteString)
import System.FilePath.Posix ((</>))
@@ -254,7 +254,7 @@ externalAnchorIdent :: Name -> String
externalAnchorIdent = hypSrcNameUrl
internalAnchorIdent :: Name -> String
-internalAnchorIdent = ("local-" ++) . show . getKey . nameUnique
+internalAnchorIdent = ("l-" ++) . showUnique . nameUnique
-- | Generate the HTML hyperlink for an identifier
hyperlink :: Module -> SrcMaps -> Identifier -> Html -> Html
=====================================
utils/hpc
=====================================
@@ -1 +1 @@
-Subproject commit 5923da3fe77993b7afc15b5163cffcaa7da6ecf5
+Subproject commit d1780eb21c1e5a1227fff80c8d325d5142f04255
=====================================
utils/hsc2hs
=====================================
@@ -1 +1 @@
-Subproject commit fe3990b9f35000427b016a79330d9f195587cad8
+Subproject commit c3b21800a67366c9591dc85a471d1dfdb1efcf29
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/4d5bccf8863a264fa9d4b9c5dd666e1…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/4d5bccf8863a264fa9d4b9c5dd666e1…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/shorter-this-module-links] Use showUnique in internalAnchorIdent
by Oleg Grenrus (@phadej) 14 Sep '25
by Oleg Grenrus (@phadej) 14 Sep '25
14 Sep '25
Oleg Grenrus pushed to branch wip/shorter-this-module-links at Glasgow Haskell Compiler / GHC
Commits:
7b31a55f by Oleg Grenrus at 2025-09-14T19:10:45+03:00
Use showUnique in internalAnchorIdent
Showing the key of Unique as a number is generally not a great idea.
GHC Unique has a tag in high bits, so the raw number is unnecessarily
big.
So now we have
```html
<a href="#l-rvgK"><span class="hs-identifier hs-var hs-var">bar</span></a>
```
instead of
```html
<a href="#local-6989586621679015689"><span class="hs-identifier hs-var hs-var">bar</span></a>
```
Together with previous changes of shorter intra-module links the effect
on compressed files is not huge, that is expected as we simply remove
repetitive contents which pack well.
```
12_694_206 Agda-2.9.0-docs-orig.tar.gz
12_566_065 Agda-2.9.0-docs.tar.gz
```
However when unpacked, the difference can be significant,
e.g. Agda's largest module source got 5% reduction:
```
14_230_117 Agda.Syntax.Parser.Parser.html
13_422_109 Agda.Syntax.Parser.Parser.html
```
The whole hyperlinked source code directory got similar reduction
```
121M Agda-2.9.0-docs-orig/src
114M Agda-2.9.0-docs/src
```
For the reference, sources are about 2/3 of the generated haddocks
```
178M Agda-2.9.0-docs-old
172M Agda-2.9.0-docs
```
so we get around 3.5% size reduction overall. Not bad for a small local
changes.
- - - - -
7 changed files:
- libffi-tarballs
- nofib
- utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker.hs
- utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Renderer.hs
- utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Utils.hs
- utils/hpc
- utils/hsc2hs
Changes:
=====================================
libffi-tarballs
=====================================
@@ -1 +1 @@
-Subproject commit 7c51059557b68d29820a0a87cebfa6fe73c8adf5
+Subproject commit 89a9b01c5647c8f0d3899435b99df690f582e9f1
=====================================
nofib
=====================================
@@ -1 +1 @@
-Subproject commit b7391df4540ac8b11b35e1b2e2c15819b5171798
+Subproject commit da7eed00e494aba1da9f51cb92089ca10e2454e7
=====================================
utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker.hs
=====================================
@@ -80,7 +80,6 @@ ppHyperlinkedModuleSource verbosity srcdir pretty srcs iface = do
nc <- freshNameCache
HieFile
{ hie_hs_file = file
- , hie_module = thisModule
, hie_asts = HieASTs asts
, hie_types = types
, hie_hs_src = rawSrc
@@ -117,7 +116,7 @@ ppHyperlinkedModuleSource verbosity srcdir pretty srcs iface = do
let tokens = fmap (\tk -> tk{tkSpan = (tkSpan tk){srcSpanFile = srcSpanFile $ nodeSpan fullAst}}) tokens'
-- Produce and write out the hyperlinked sources
- writeUtf8File path . renderToString pretty . render' thisModule fullAst $ tokens
+ writeUtf8File path . renderToString pretty . render' fullAst $ tokens
where
dflags = ifaceDynFlags iface
sDocContext = DynFlags.initSDocContext dflags Outputable.defaultUserStyle
@@ -129,7 +128,7 @@ ppHyperlinkedModuleSource verbosity srcdir pretty srcs iface = do
False -- lex Haddocks as comment tokens
True -- produce comment tokens
False -- produce position pragmas tokens
- render' thisModule = render thisModule (Just srcCssFile) (Just highlightScript) srcs
+ render' = render (Just srcCssFile) (Just highlightScript) srcs
path = srcdir </> hypSrcModuleFile (ifaceMod iface)
emptyHieAst fileFs =
=====================================
utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Renderer.hs
=====================================
@@ -15,7 +15,7 @@ import GHC.Iface.Ext.Utils (emptyNodeInfo, isEvidenceContext)
import GHC.Types.Name (Name, getOccString, isInternalName, nameModule, nameUnique)
import GHC.Types.SrcLoc
import GHC.Types.Unique (getKey)
-import GHC.Unit.Module (Module, ModuleName, moduleNameString)
+import GHC.Unit.Module (ModuleName, moduleNameString)
import GHC.Utils.Encoding (utf8DecodeByteString)
import System.FilePath.Posix ((</>))
import Text.XHtml (Html, HtmlAttr, (!))
@@ -28,9 +28,7 @@ type StyleClass = String
-- | Produce the HTML corresponding to a hyperlinked Haskell source
render
- :: Module
- -- ^ this module
- -> Maybe FilePath
+ :: Maybe FilePath
-- ^ path to the CSS file
-> Maybe FilePath
-- ^ path to the JS file
@@ -41,12 +39,12 @@ render
-> [Token]
-- ^ tokens to render
-> Html
-render thisModule mcss mjs srcs ast tokens = header mcss mjs <> body thisModule srcs ast tokens
+render mcss mjs srcs ast tokens = header mcss mjs <> body srcs ast tokens
-body :: Module -> SrcMaps -> HieAST PrintedType -> [Token] -> Html
-body thisModule srcs ast tokens = Html.body . Html.pre $ hypsrc
+body :: SrcMaps -> HieAST PrintedType -> [Token] -> Html
+body srcs ast tokens = Html.body . Html.pre $ hypsrc
where
- hypsrc = renderWithAst thisModule srcs ast tokens
+ hypsrc = renderWithAst srcs ast tokens
header :: Maybe FilePath -> Maybe FilePath -> Html
header Nothing Nothing = Html.noHtml
@@ -77,9 +75,9 @@ splitTokens ast toks = (before, during, after)
-- | Turn a list of tokens into hyperlinked sources, threading in relevant link
-- information from the 'HieAST'.
-renderWithAst :: Module -> SrcMaps -> HieAST PrintedType -> [Token] -> Html
-renderWithAst thisModule srcs Node{..} toks = anchored $ case toks of
- [tok] | nodeSpan == tkSpan tok -> richToken thisModule srcs nodeInfo tok
+renderWithAst :: SrcMaps -> HieAST PrintedType -> [Token] -> Html
+renderWithAst srcs Node{..} toks = anchored $ case toks of
+ [tok] | nodeSpan == tkSpan tok -> richToken srcs nodeInfo tok
-- NB: the GHC lexer lexes backquoted identifiers and parenthesized operators
-- as multiple tokens.
--
@@ -94,7 +92,6 @@ renderWithAst thisModule srcs Node{..} toks = anchored $ case toks of
| realSrcSpanStart s1 == realSrcSpanStart nodeSpan
, realSrcSpanEnd s2 == realSrcSpanEnd nodeSpan ->
richToken
- thisModule
srcs
nodeInfo
( Token
@@ -107,7 +104,6 @@ renderWithAst thisModule srcs Node{..} toks = anchored $ case toks of
| realSrcSpanStart s1 == realSrcSpanStart nodeSpan
, realSrcSpanEnd s2 == realSrcSpanEnd nodeSpan ->
richToken
- thisModule
srcs
nodeInfo
( Token
@@ -122,7 +118,7 @@ renderWithAst thisModule srcs Node{..} toks = anchored $ case toks of
go _ [] = mempty
go [] xs = foldMap renderToken xs
go (cur : rest) xs =
- foldMap renderToken before <> renderWithAst thisModule srcs cur during <> go rest after
+ foldMap renderToken before <> renderWithAst srcs cur during <> go rest after
where
(before, during, after) = splitTokens cur xs
anchored c = Map.foldrWithKey anchorOne c (nodeIdentifiers nodeInfo)
@@ -141,8 +137,8 @@ renderToken Token{..}
tokenSpan = Html.thespan (Html.toHtml tkValue')
-- | Given information about the source position of definitions, render a token
-richToken :: Module -> SrcMaps -> NodeInfo PrintedType -> Token -> Html
-richToken thisModule srcs details Token{..}
+richToken :: SrcMaps -> NodeInfo PrintedType -> Token -> Html
+richToken srcs details Token{..}
| tkType == TkSpace = renderSpace (srcSpanStartLine tkSpan) tkValue'
| otherwise = annotate details $ linked content
where
@@ -159,7 +155,7 @@ richToken thisModule srcs details Token{..}
-- If we have name information, we can make links
linked = case identDet of
- Just (n, _) -> hyperlink thisModule srcs n
+ Just (n, _) -> hyperlink srcs n
Nothing -> id
-- | Remove CRLFs from source
@@ -257,8 +253,8 @@ internalAnchorIdent :: Name -> String
internalAnchorIdent = ("local-" ++) . show . getKey . nameUnique
-- | Generate the HTML hyperlink for an identifier
-hyperlink :: Module -> SrcMaps -> Identifier -> Html -> Html
-hyperlink thisModule (srcs, srcs') ident = case ident of
+hyperlink :: SrcMaps -> Identifier -> Html -> Html
+hyperlink (srcs, srcs') ident = case ident of
Right name
| isInternalName name -> internalHyperlink name
| otherwise -> externalNameHyperlink name
@@ -274,7 +270,7 @@ hyperlink thisModule (srcs, srcs') ident = case ident of
externalNameHyperlink name content = case Map.lookup mdl srcs of
Just SrcLocal ->
Html.anchor content
- ! [Html.href $ hypSrcModuleNameUrl' thisModule mdl name]
+ ! [Html.href $ hypSrcModuleNameUrl mdl name]
Just (SrcExternal path) ->
let hyperlinkUrl = hypSrcModuleUrlToNameFormat $ makeHyperlinkUrl path
in Html.anchor content
=====================================
utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Utils.hs
=====================================
@@ -9,7 +9,6 @@ module Haddock.Backends.Hyperlinker.Utils
, hypSrcNameUrl
, hypSrcLineUrl
, hypSrcModuleNameUrl
- , hypSrcModuleNameUrl'
, hypSrcModuleLineUrl
, hypSrcModuleUrlFormat
, hypSrcModuleNameUrlFormat
@@ -72,12 +71,6 @@ hypSrcLineUrl line = "line-" ++ show line
hypSrcModuleNameUrl :: Module -> Name -> String
hypSrcModuleNameUrl mdl name = hypSrcModuleUrl mdl ++ "#" ++ hypSrcNameUrl name
-{-# INLINE hypSrcModuleNameUrl' #-}
-hypSrcModuleNameUrl' :: Module -> Module -> Name -> String
-hypSrcModuleNameUrl' this_mdl mdl name
- | this_mdl == mdl = "#" ++ hypSrcNameUrl name
- | otherwise = hypSrcModuleUrl mdl ++ "#" ++ hypSrcNameUrl name
-
{-# INLINE hypSrcModuleLineUrl #-}
hypSrcModuleLineUrl :: Module -> Int -> String
hypSrcModuleLineUrl mdl line = hypSrcModuleUrl mdl ++ "#" ++ hypSrcLineUrl line
=====================================
utils/hpc
=====================================
@@ -1 +1 @@
-Subproject commit 5923da3fe77993b7afc15b5163cffcaa7da6ecf5
+Subproject commit d1780eb21c1e5a1227fff80c8d325d5142f04255
=====================================
utils/hsc2hs
=====================================
@@ -1 +1 @@
-Subproject commit fe3990b9f35000427b016a79330d9f195587cad8
+Subproject commit c3b21800a67366c9591dc85a471d1dfdb1efcf29
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/7b31a55f1c93b02f321a24883441adb…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/7b31a55f1c93b02f321a24883441adb…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/shorter-this-module-links] Use showUnique in internalAnchorIdent
by Oleg Grenrus (@phadej) 14 Sep '25
by Oleg Grenrus (@phadej) 14 Sep '25
14 Sep '25
Oleg Grenrus pushed to branch wip/shorter-this-module-links at Glasgow Haskell Compiler / GHC
Commits:
6d4eb0db by Oleg Grenrus at 2025-09-14T19:04:32+03:00
Use showUnique in internalAnchorIdent
Showing the key of Unique as a number is generally not a great idea.
GHC Unique has a tag in high bits, so the raw number is unnecessarily
big.
So now we have
```html
<a href="#l-rvgK"><span class="hs-identifier hs-var hs-var">bar</span></a>
```
instead of
```html
<a href="#local-6989586621679015689"><span class="hs-identifier hs-var hs-var">bar</span></a>
```
Together with previous changes of shorter intra-module links the effect
on compressed files is not huge, that is expected as we simply remove
repetitive contents which pack well.
```
12_694_206 Agda-2.9.0-docs-orig.tar.gz
12_566_065 Agda-2.9.0-docs.tar.gz
```
However when unpacked, the difference can be significant,
e.g. Agda's largest module source got 5% reduction:
```
14_230_117 Agda.Syntax.Parser.Parser.html
13_422_109 Agda.Syntax.Parser.Parser.html
```
The whole hyperlinked source code directory got similar reduction
```
121M Agda-2.9.0-docs-orig/src
114M Agda-2.9.0-docs/src
```
For the reference, sources are about 2/3 of the generated haddocks
```
178M Agda-2.9.0-docs-old
172M Agda-2.9.0-docs
```
so we get around 3.5% size reduction overall. Not bad for a small local
changes.
- - - - -
3 changed files:
- utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker.hs
- utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Renderer.hs
- utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Utils.hs
Changes:
=====================================
utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker.hs
=====================================
@@ -80,7 +80,6 @@ ppHyperlinkedModuleSource verbosity srcdir pretty srcs iface = do
nc <- freshNameCache
HieFile
{ hie_hs_file = file
- , hie_module = thisModule
, hie_asts = HieASTs asts
, hie_types = types
, hie_hs_src = rawSrc
@@ -117,7 +116,7 @@ ppHyperlinkedModuleSource verbosity srcdir pretty srcs iface = do
let tokens = fmap (\tk -> tk{tkSpan = (tkSpan tk){srcSpanFile = srcSpanFile $ nodeSpan fullAst}}) tokens'
-- Produce and write out the hyperlinked sources
- writeUtf8File path . renderToString pretty . render' thisModule fullAst $ tokens
+ writeUtf8File path . renderToString pretty . render' fullAst $ tokens
where
dflags = ifaceDynFlags iface
sDocContext = DynFlags.initSDocContext dflags Outputable.defaultUserStyle
@@ -129,7 +128,7 @@ ppHyperlinkedModuleSource verbosity srcdir pretty srcs iface = do
False -- lex Haddocks as comment tokens
True -- produce comment tokens
False -- produce position pragmas tokens
- render' thisModule = render thisModule (Just srcCssFile) (Just highlightScript) srcs
+ render' = render (Just srcCssFile) (Just highlightScript) srcs
path = srcdir </> hypSrcModuleFile (ifaceMod iface)
emptyHieAst fileFs =
=====================================
utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Renderer.hs
=====================================
@@ -15,7 +15,7 @@ import GHC.Iface.Ext.Utils (emptyNodeInfo, isEvidenceContext)
import GHC.Types.Name (Name, getOccString, isInternalName, nameModule, nameUnique)
import GHC.Types.SrcLoc
import GHC.Types.Unique (getKey)
-import GHC.Unit.Module (Module, ModuleName, moduleNameString)
+import GHC.Unit.Module (ModuleName, moduleNameString)
import GHC.Utils.Encoding (utf8DecodeByteString)
import System.FilePath.Posix ((</>))
import Text.XHtml (Html, HtmlAttr, (!))
@@ -28,9 +28,7 @@ type StyleClass = String
-- | Produce the HTML corresponding to a hyperlinked Haskell source
render
- :: Module
- -- ^ this module
- -> Maybe FilePath
+ :: Maybe FilePath
-- ^ path to the CSS file
-> Maybe FilePath
-- ^ path to the JS file
@@ -41,12 +39,12 @@ render
-> [Token]
-- ^ tokens to render
-> Html
-render thisModule mcss mjs srcs ast tokens = header mcss mjs <> body thisModule srcs ast tokens
+render mcss mjs srcs ast tokens = header mcss mjs <> body srcs ast tokens
-body :: Module -> SrcMaps -> HieAST PrintedType -> [Token] -> Html
-body thisModule srcs ast tokens = Html.body . Html.pre $ hypsrc
+body :: SrcMaps -> HieAST PrintedType -> [Token] -> Html
+body srcs ast tokens = Html.body . Html.pre $ hypsrc
where
- hypsrc = renderWithAst thisModule srcs ast tokens
+ hypsrc = renderWithAst srcs ast tokens
header :: Maybe FilePath -> Maybe FilePath -> Html
header Nothing Nothing = Html.noHtml
@@ -77,9 +75,9 @@ splitTokens ast toks = (before, during, after)
-- | Turn a list of tokens into hyperlinked sources, threading in relevant link
-- information from the 'HieAST'.
-renderWithAst :: Module -> SrcMaps -> HieAST PrintedType -> [Token] -> Html
-renderWithAst thisModule srcs Node{..} toks = anchored $ case toks of
- [tok] | nodeSpan == tkSpan tok -> richToken thisModule srcs nodeInfo tok
+renderWithAst :: SrcMaps -> HieAST PrintedType -> [Token] -> Html
+renderWithAst srcs Node{..} toks = anchored $ case toks of
+ [tok] | nodeSpan == tkSpan tok -> richToken srcs nodeInfo tok
-- NB: the GHC lexer lexes backquoted identifiers and parenthesized operators
-- as multiple tokens.
--
@@ -94,7 +92,6 @@ renderWithAst thisModule srcs Node{..} toks = anchored $ case toks of
| realSrcSpanStart s1 == realSrcSpanStart nodeSpan
, realSrcSpanEnd s2 == realSrcSpanEnd nodeSpan ->
richToken
- thisModule
srcs
nodeInfo
( Token
@@ -107,7 +104,6 @@ renderWithAst thisModule srcs Node{..} toks = anchored $ case toks of
| realSrcSpanStart s1 == realSrcSpanStart nodeSpan
, realSrcSpanEnd s2 == realSrcSpanEnd nodeSpan ->
richToken
- thisModule
srcs
nodeInfo
( Token
@@ -122,7 +118,7 @@ renderWithAst thisModule srcs Node{..} toks = anchored $ case toks of
go _ [] = mempty
go [] xs = foldMap renderToken xs
go (cur : rest) xs =
- foldMap renderToken before <> renderWithAst thisModule srcs cur during <> go rest after
+ foldMap renderToken before <> renderWithAst srcs cur during <> go rest after
where
(before, during, after) = splitTokens cur xs
anchored c = Map.foldrWithKey anchorOne c (nodeIdentifiers nodeInfo)
@@ -141,8 +137,8 @@ renderToken Token{..}
tokenSpan = Html.thespan (Html.toHtml tkValue')
-- | Given information about the source position of definitions, render a token
-richToken :: Module -> SrcMaps -> NodeInfo PrintedType -> Token -> Html
-richToken thisModule srcs details Token{..}
+richToken :: SrcMaps -> NodeInfo PrintedType -> Token -> Html
+richToken srcs details Token{..}
| tkType == TkSpace = renderSpace (srcSpanStartLine tkSpan) tkValue'
| otherwise = annotate details $ linked content
where
@@ -159,7 +155,7 @@ richToken thisModule srcs details Token{..}
-- If we have name information, we can make links
linked = case identDet of
- Just (n, _) -> hyperlink thisModule srcs n
+ Just (n, _) -> hyperlink srcs n
Nothing -> id
-- | Remove CRLFs from source
@@ -257,8 +253,8 @@ internalAnchorIdent :: Name -> String
internalAnchorIdent = ("local-" ++) . show . getKey . nameUnique
-- | Generate the HTML hyperlink for an identifier
-hyperlink :: Module -> SrcMaps -> Identifier -> Html -> Html
-hyperlink thisModule (srcs, srcs') ident = case ident of
+hyperlink :: SrcMaps -> Identifier -> Html -> Html
+hyperlink (srcs, srcs') ident = case ident of
Right name
| isInternalName name -> internalHyperlink name
| otherwise -> externalNameHyperlink name
@@ -274,7 +270,7 @@ hyperlink thisModule (srcs, srcs') ident = case ident of
externalNameHyperlink name content = case Map.lookup mdl srcs of
Just SrcLocal ->
Html.anchor content
- ! [Html.href $ hypSrcModuleNameUrl' thisModule mdl name]
+ ! [Html.href $ hypSrcModuleNameUrl mdl name]
Just (SrcExternal path) ->
let hyperlinkUrl = hypSrcModuleUrlToNameFormat $ makeHyperlinkUrl path
in Html.anchor content
=====================================
utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Utils.hs
=====================================
@@ -9,7 +9,6 @@ module Haddock.Backends.Hyperlinker.Utils
, hypSrcNameUrl
, hypSrcLineUrl
, hypSrcModuleNameUrl
- , hypSrcModuleNameUrl'
, hypSrcModuleLineUrl
, hypSrcModuleUrlFormat
, hypSrcModuleNameUrlFormat
@@ -72,12 +71,6 @@ hypSrcLineUrl line = "line-" ++ show line
hypSrcModuleNameUrl :: Module -> Name -> String
hypSrcModuleNameUrl mdl name = hypSrcModuleUrl mdl ++ "#" ++ hypSrcNameUrl name
-{-# INLINE hypSrcModuleNameUrl' #-}
-hypSrcModuleNameUrl' :: Module -> Module -> Name -> String
-hypSrcModuleNameUrl' this_mdl mdl name
- | this_mdl == mdl = "#" ++ hypSrcNameUrl name
- | otherwise = hypSrcModuleUrl mdl ++ "#" ++ hypSrcNameUrl name
-
{-# INLINE hypSrcModuleLineUrl #-}
hypSrcModuleLineUrl :: Module -> Int -> String
hypSrcModuleLineUrl mdl line = hypSrcModuleUrl mdl ++ "#" ++ hypSrcLineUrl line
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/6d4eb0db7ecfc45da62c8e3d1b57963…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/6d4eb0db7ecfc45da62c8e3d1b57963…
You're receiving this email because of your account on gitlab.haskell.org.
1
0