[Git][ghc/ghc][master] 2 commits: haddock: use snippets for all list examples
by Marge Bot (@marge-bot) 18 Feb '26
by Marge Bot (@marge-bot) 18 Feb '26
18 Feb '26
Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC
Commits:
c5e15b8b by Phil de Joux at 2026-02-18T05:07:36-05:00
haddock: use snippets for all list examples
- generate snippet output for docs
- reduce font size to better fit snippets
- Use only directive to guard html snippets
- Add latex snippets for lists
- - - - -
d388bac1 by Phil de Joux at 2026-02-18T05:07:36-05:00
haddock: Place the snippet input and output together
- Put the output seemingly inside the example box
- - - - -
24 changed files:
- utils/haddock/doc/.gitignore
- utils/haddock/doc/Makefile
- + utils/haddock/doc/_static/haddock-custom.css
- utils/haddock/doc/conf.py
- utils/haddock/doc/markup.rst
- + utils/haddock/doc/snippets/.gitignore
- + utils/haddock/doc/snippets/Lists.hs
- + utils/haddock/doc/snippets/Makefile
- + utils/haddock/doc/snippets/Snippet-List-Bulleted.html
- + utils/haddock/doc/snippets/Snippet-List-Bulleted.tex
- + utils/haddock/doc/snippets/Snippet-List-Definition.html
- + utils/haddock/doc/snippets/Snippet-List-Definition.tex
- + utils/haddock/doc/snippets/Snippet-List-Enumerated.html
- + utils/haddock/doc/snippets/Snippet-List-Enumerated.tex
- + utils/haddock/doc/snippets/Snippet-List-Indentation.html
- + utils/haddock/doc/snippets/Snippet-List-Indentation.tex
- + utils/haddock/doc/snippets/Snippet-List-Multiline-Item.html
- + utils/haddock/doc/snippets/Snippet-List-Multiline-Item.tex
- + utils/haddock/doc/snippets/Snippet-List-Nested-Item.html
- + utils/haddock/doc/snippets/Snippet-List-Nested-Item.tex
- + utils/haddock/doc/snippets/Snippet-List-Not-Newline.html
- + utils/haddock/doc/snippets/Snippet-List-Not-Newline.tex
- + utils/haddock/doc/snippets/Snippet-List-Not-Separated.html
- + utils/haddock/doc/snippets/Snippet-List-Not-Separated.tex
Changes:
=====================================
utils/haddock/doc/.gitignore
=====================================
@@ -1 +1,3 @@
-.build-html
\ No newline at end of file
+.build-html
+.build-latex
+!_static
=====================================
utils/haddock/doc/Makefile
=====================================
@@ -1,8 +1,13 @@
SPHINX_BUILD ?= sphinx-build
-all : html
+all : html pdf
.PHONY : html
+.PHONY : pdf
html :
$(SPHINX_BUILD) -b html . .build-html
+
+pdf :
+ $(SPHINX_BUILD) -b latex . .build-latex
+ cd .build-latex && make
=====================================
utils/haddock/doc/_static/haddock-custom.css
=====================================
@@ -0,0 +1,19 @@
+.result.admonition {
+ border: solid 3px #eee;
+ border-top: none;
+ background-color: transparent;
+ padding: 1px 0px 10px 10px;
+ margin: 0px 0px -20px 0px;
+ position: relative;
+ top: -18px;
+}
+
+.result.admonition p.admonition-title{
+ position: absolute;
+ visibility: hidden;
+}
+
+/* Use a small font size for code blocks so that they don't overflow. */
+pre {
+ font-size: 0.8em;
+}
=====================================
utils/haddock/doc/conf.py
=====================================
@@ -31,6 +31,12 @@ pygments_style = 'tango'
htmlhelp_basename = 'Haddockdoc'
+html_static_path = ['_static']
+
+html_css_files = [
+ 'haddock-custom.css',
+]
+
# -- Options for LaTeX output ---------------------------------------------
=====================================
utils/haddock/doc/markup.rst
=====================================
@@ -1004,99 +1004,162 @@ Itemized and Enumerated Lists
A bulleted item is represented by preceding a paragraph with either
“``*``” or “``-``”. A sequence of bulleted paragraphs is rendered as an
-itemized list in the generated documentation, e.g.: ::
+itemized list in the generated documentation, e.g.
- -- | This is a bulleted list:
- --
- -- * first item
- --
- -- * second item
+.. literalinclude:: snippets/Lists.hs
+ :lines: 3-7
+
+.. admonition:: Result
+ :class: result
+
+ .. only:: html
+
+ .. raw:: html
+ :file: snippets/Snippet-List-Bulleted.html
+
+ .. only:: latex
+
+ .. raw:: latex
+ :file: snippets/Snippet-List-Bulleted.tex
+
+.. warning::
+
+ Separate lists from any preceding markup with at least one blank line
+ otherwise the list and its items will be rendered with the preceding
+ content.
+
+.. literalinclude:: snippets/Lists.hs
+ :lines: 10-12
+
+.. admonition:: Result
+ :class: result
+
+ .. only:: html
+
+ .. raw:: html
+ :file: snippets/Snippet-List-Not-Separated.html
+
+ .. only:: latex
+
+ .. raw:: latex
+ :file: snippets/Snippet-List-Not-Separated.tex
An enumerated list is similar, except each paragraph must be preceded by
-either “``(n)``” or “``n.``” where n is any integer. e.g. ::
+either “``(n)``” or “``n.``” where n is any integer. e.g.
- -- | This is an enumerated list:
- --
- -- (1) first item
- --
- -- 2. second item
+.. literalinclude:: snippets/Lists.hs
+ :lines: 15-19
-Lists of the same type don't have to be separated by a newline: ::
+.. admonition:: Result
+ :class: result
- -- | This is an enumerated list:
- --
- -- (1) first item
- -- 2. second item
- --
- -- This is a bulleted list:
- --
- -- * first item
- -- * second item
+ .. only:: html
-You can have more than one line of content in a list element: ::
+ .. raw:: html
+ :file: snippets/Snippet-List-Enumerated.html
- -- |
- -- * first item
- -- and more content for the first item
- -- * second item
- -- and more content for the second item
+ .. only:: latex
+
+ .. raw:: latex
+ :file: snippets/Snippet-List-Enumerated.tex
+
+Lists of the same type don't have to be separated by a newline:
+
+.. literalinclude:: snippets/Lists.hs
+ :lines: 22-30
+
+.. admonition:: Result
+ :class: result
+
+ .. only:: html
+
+ .. raw:: html
+ :file: snippets/Snippet-List-Not-Newline.html
+
+ .. only:: latex
+
+ .. raw:: latex
+ :file: snippets/Snippet-List-Not-Newline.tex
+
+You can have more than one line of content in a list element:
+
+.. literalinclude:: snippets/Lists.hs
+ :lines: 33-37
+
+.. admonition:: Result
+ :class: result
+
+ .. only:: html
+
+ .. raw:: html
+ :file: snippets/Snippet-List-Multiline-Item.html
+
+ .. only:: latex
+
+ .. raw:: latex
+ :file: snippets/Snippet-List-Multiline-Item.tex
You can even nest whole paragraphs inside of list elements. The rules
are 4 spaces for each indentation level. You're required to use a
-newline before such nested paragraphs: ::
-
- {-|
- * Beginning of list
- This belongs to the list above!
+newline before such nested paragraphs:
- > nested
- > bird
- > tracks
+.. literalinclude:: snippets/Lists.hs
+ :lines: 40-61
- * Next list
- More of the indented list.
+.. admonition:: Result
+ :class: result
- * Deeper
+ .. only:: html
- @
- even code blocks work
- @
+ .. raw:: html
+ :file: snippets/Snippet-List-Nested-Item.html
- * Deeper
+ .. only:: latex
- 1. Even deeper!
- 2. No newline separation even in indented lists.
- -}
+ .. raw:: latex
+ :file: snippets/Snippet-List-Nested-Item.tex
The indentation of the first list item is honoured. That is, in the
following example the items are on the same level. Before Haddock
2.16.1, the second item would have been nested under the first item
-which was unexpected. ::
+which was unexpected.
- {-|
- * foo
+.. literalinclude:: snippets/Lists.hs
+ :lines: 64-68
- * bar
- -}
+.. admonition:: Result
+ :class: result
+
+ .. only:: html
+
+ .. raw:: html
+ :file: snippets/Snippet-List-Indentation.html
+
+ .. only:: latex
+
+ .. raw:: latex
+ :file: snippets/Snippet-List-Indentation.tex
Definition Lists
~~~~~~~~~~~~~~~~
-Definition lists are written as follows: ::
+Definition lists are written as follows:
- -- | This is a definition list:
- --
- -- [@foo@]: The description of @foo@.
- --
- -- [@bar@]: The description of @bar@.
+.. literalinclude:: snippets/Lists.hs
+ :lines: 71-75
+
+.. admonition:: Result
+ :class: result
+
+ .. only:: html
-To produce output something like this:
+ .. raw:: html
+ :file: snippets/Snippet-List-Definition.html
-``foo``
- The description of ``foo``.
+ .. only:: latex
-``bar``
- The description of ``bar``.
+ .. raw:: latex
+ :file: snippets/Snippet-List-Definition.tex
Each paragraph should be preceded by the “definition term” enclosed in
square brackets and followed by a colon. Other markup operators may be
=====================================
utils/haddock/doc/snippets/.gitignore
=====================================
@@ -0,0 +1,12 @@
+*.html
+*.tex
+haddock-bundle.min.js
+haddock.sty
+linuwial.css
+main.tex
+meta.json
+quick-jump.css
+synopsis.png
+
+!Snippet*.html
+!Snippet*.tex
=====================================
utils/haddock/doc/snippets/Lists.hs
=====================================
@@ -0,0 +1,76 @@
+module Lists where
+
+-- | This is a bulleted list:
+--
+-- * first item
+--
+-- * second item
+data Bulleted
+
+-- | __Missing blank lines__ before a list:
+-- * first item
+-- * second item
+data Before
+
+-- | This is an, (n) n., enumerated list:
+--
+-- (1) first item
+--
+-- 2. second item
+data Enumerated
+
+-- | This is an enumerated list, with items not separated by newlines:
+--
+-- (1) first item
+-- 2. second item
+--
+-- This is a bulleted list, with items not separated by newlines:
+--
+-- * first item
+-- * second item
+data NotNewline
+
+-- |
+-- * first item
+-- and more content for the first item
+-- * second item
+-- and more content for the second item
+data MultilineItem
+
+{-|
+* Beginning of list
+This belongs to the list above!
+
+ > nested
+ > bird
+ > tracks
+
+ * Next list
+ More of the indented list.
+
+ * Deeper
+
+ @
+ even code blocks work
+ @
+
+ * Deeper
+
+ 1. Even deeper!
+ 2. No newline separation even in indented lists.
+-}
+data NestedItem
+
+{-|
+ * foo
+
+ * bar
+-}
+data Indentation
+
+-- | This is a definition list:
+--
+-- [@foo@]: The description of @foo@.
+--
+-- [@bar@]: The description of @bar@.
+data DefinitionList
\ No newline at end of file
=====================================
utils/haddock/doc/snippets/Makefile
=====================================
@@ -0,0 +1,103 @@
+# \newcommand{\haddockbegindoc}{\hfill\\[1ex]}
+HDK_BEGIN := \\\\newcommand{\\haddockbegindoc}{\\hfill\\\\\[1ex]}
+
+# \newcommand{\haddockverb}{\small}
+HDK_VERB := \\\\newcommand{\\haddockverb}{\\small}
+
+# \newcommand{\haddocktt}[1]{{\small \texttt{#1}}}
+HDK_TT := \\\\newcommand{\\haddocktt}[1]{{\\small \\\\texttt{\#1}}}
+
+all: \
+ Snippet-List-Bulleted.html \
+ Snippet-List-Bulleted.tex \
+ Snippet-List-Not-Separated.html \
+ Snippet-List-Not-Separated.tex \
+ Snippet-List-Enumerated.html \
+ Snippet-List-Enumerated.tex \
+ Snippet-List-Not-Newline.html \
+ Snippet-List-Not-Newline.tex \
+ Snippet-List-Multiline-Item.html \
+ Snippet-List-Multiline-Item.tex \
+ Snippet-List-Nested-Item.html \
+ Snippet-List-Nested-Item.tex \
+ Snippet-List-Indentation.html \
+ Snippet-List-Indentation.tex \
+ Snippet-List-Definition.html \
+ Snippet-List-Definition.tex
+
+clean:
+ rm -f Lists*.html
+
+Lists.html: Lists.hs
+ haddock --html $^
+
+Lists.tex: Lists.hs
+ haddock --latex $^
+
+# Using pandoc-3.1.3
+Lists-Pretty.html: Lists.html
+ pandoc $^ -o $@
+
+# Using tex-fmt-0.4.1
+# nix profile install github:wgunderwood/tex-fmt
+Lists-Pretty.tex: Lists.tex
+ cp $^ $@
+ tex-fmt $@
+
+Snippet-List-Bulleted.html: Lists-Pretty.html
+ sed -n '48,52p;53q' $^ > $@
+
+Snippet-List-Bulleted.tex: Lists-Pretty.tex
+ echo "$(HDK_BEGIN)" > $@
+ sed -n '18,26p;27q' $^ >> $@
+
+Snippet-List-Not-Separated.html: Lists-Pretty.html
+ sed -n '59,60p;61q' $^ > $@
+
+Snippet-List-Not-Separated.tex: Lists-Pretty.tex
+ echo "$(HDK_BEGIN)" > $@
+ sed -n '33,36p;37q' $^ >> $@
+
+Snippet-List-Enumerated.html: Lists-Pretty.html
+ sed -n '68,72p;73q' $^ > $@
+
+Snippet-List-Enumerated.tex: Lists-Pretty.tex
+ echo "$(HDK_BEGIN)" > $@
+ sed -n '43,51p;52q' $^ >> $@
+
+Snippet-List-Not-Newline.html: Lists-Pretty.html
+ sed -n '80,89p;90q' $^ > $@
+
+Snippet-List-Not-Newline.tex: Lists-Pretty.tex
+ echo "$(HDK_BEGIN)" > $@
+ sed -n '58,74p;75q' $^ >> $@
+
+Snippet-List-Multiline-Item.html: Lists-Pretty.html
+ sed -n '97,100p;101q' $^ > $@
+
+Snippet-List-Multiline-Item.tex: Lists-Pretty.tex
+ echo "$(HDK_BEGIN)" > $@
+ sed -n '81,90p;91q' $^ >> $@
+
+Snippet-List-Nested-Item.html: Lists-Pretty.html
+ sed -n '108,127p;128q' $^ > $@
+
+Snippet-List-Nested-Item.tex: Lists-Pretty.tex
+ echo "$(HDK_BEGIN)" > $@
+ echo "$(HDK_VERB)" >> $@
+ sed -n '97,141p;142q' $^ >> $@
+
+Snippet-List-Indentation.html: Lists-Pretty.html
+ sed -n '135,138p;139q' $^ > $@
+
+Snippet-List-Indentation.tex: Lists-Pretty.tex
+ echo "$(HDK_BEGIN)" > $@
+ sed -n '148,155p;156q' $^ >> $@
+
+Snippet-List-Definition.html: Lists-Pretty.html
+ sed -n '146,156p;157q' $^ > $@
+
+Snippet-List-Definition.tex: Lists-Pretty.tex
+ echo "$(HDK_BEGIN)" > $@
+ echo "$(HDK_TT)" >> $@
+ sed -n '162,170p;171q' $^ >> $@
=====================================
utils/haddock/doc/snippets/Snippet-List-Bulleted.html
=====================================
@@ -0,0 +1,5 @@
+<p>This is a bulleted list:</p>
+<ul>
+<li>first item</li>
+<li>second item</li>
+</ul>
=====================================
utils/haddock/doc/snippets/Snippet-List-Bulleted.tex
=====================================
@@ -0,0 +1,10 @@
+\newcommand{\haddockbegindoc}{\hfill\\[1ex]}
+ {\haddockbegindoc
+ This is a bulleted list:\par
+ \vbox{
+ \begin{itemize}
+ \item
+ first item\par
+ \item
+ second item\par
+ \end{itemize}}}
=====================================
utils/haddock/doc/snippets/Snippet-List-Definition.html
=====================================
@@ -0,0 +1,11 @@
+<p>This is a definition list:</p>
+<dl>
+<dt><code>foo</code></dt>
+<dd>
+The description of <code>foo</code>.
+</dd>
+<dt><code>bar</code></dt>
+<dd>
+The description of <code>bar</code>.
+</dd>
+</dl>
=====================================
utils/haddock/doc/snippets/Snippet-List-Definition.tex
=====================================
@@ -0,0 +1,11 @@
+\newcommand{\haddockbegindoc}{\hfill\\[1ex]}
+\newcommand{\haddocktt}[1]{{\small \texttt{#1}}}
+ {\haddockbegindoc
+ This is a definition list:\par
+ \vbox{
+ \begin{description}
+ \item[\haddocktt{foo}]\hfill \par
+ The description of \haddocktt{foo}.
+ \item[\haddocktt{bar}]\hfill \par
+ The description of \haddocktt{bar}.
+ \end{description}}}
=====================================
utils/haddock/doc/snippets/Snippet-List-Enumerated.html
=====================================
@@ -0,0 +1,5 @@
+<p>This is an, (n) n., enumerated list:</p>
+<ol>
+<li>first item</li>
+<li>second item</li>
+</ol>
=====================================
utils/haddock/doc/snippets/Snippet-List-Enumerated.tex
=====================================
@@ -0,0 +1,10 @@
+\newcommand{\haddockbegindoc}{\hfill\\[1ex]}
+ {\haddockbegindoc
+ This is an, (n) n., enumerated list:\par
+ \vbox{
+ \begin{enumerate}
+ \item
+ first item\par
+ \item
+ second item\par
+ \end{enumerate}}}
=====================================
utils/haddock/doc/snippets/Snippet-List-Indentation.html
=====================================
@@ -0,0 +1,4 @@
+<ul>
+<li>foo</li>
+<li>bar</li>
+</ul>
=====================================
utils/haddock/doc/snippets/Snippet-List-Indentation.tex
=====================================
@@ -0,0 +1,9 @@
+\newcommand{\haddockbegindoc}{\hfill\\[1ex]}
+ {\haddockbegindoc
+ \vbox{
+ \begin{itemize}
+ \item
+ foo\par
+ \item
+ bar\par
+ \end{itemize}}}
=====================================
utils/haddock/doc/snippets/Snippet-List-Multiline-Item.html
=====================================
@@ -0,0 +1,4 @@
+<ul>
+<li>first item and more content for the first item</li>
+<li>second item and more content for the second item</li>
+</ul>
=====================================
utils/haddock/doc/snippets/Snippet-List-Multiline-Item.tex
=====================================
@@ -0,0 +1,11 @@
+\newcommand{\haddockbegindoc}{\hfill\\[1ex]}
+ {\haddockbegindoc
+ \vbox{
+ \begin{itemize}
+ \item
+ first item
+ and more content for the first item\par
+ \item
+ second item
+ and more content for the second item\par
+ \end{itemize}}}
=====================================
utils/haddock/doc/snippets/Snippet-List-Nested-Item.html
=====================================
@@ -0,0 +1,20 @@
+<ul>
+<li><p>Beginning of list This belongs to the list above!</p>
+<pre><code>nested
+bird
+tracks</code></pre>
+<ul>
+<li><p>Next list More of the indented list.</p>
+<ul>
+<li><p>Deeper</p>
+<pre><code>even code blocks work</code></pre>
+<ul>
+<li><p>Deeper</p>
+<ol>
+<li>Even deeper!</li>
+<li>No newline separation even in indented lists.</li>
+</ol></li>
+</ul></li>
+</ul></li>
+</ul></li>
+</ul>
=====================================
utils/haddock/doc/snippets/Snippet-List-Nested-Item.tex
=====================================
@@ -0,0 +1,47 @@
+\newcommand{\haddockbegindoc}{\hfill\\[1ex]}
+\newcommand{\haddockverb}{\small}
+ {\haddockbegindoc
+ \vbox{
+ \begin{itemize}
+ \item
+ Beginning of list
+ This belongs to the list above!\par
+ \begin{quote}
+ {\haddockverb
+ \begin{verbatim}
+nested
+bird
+tracks
+ \end{verbatim}}
+ \end{quote}
+ \vbox{
+ \begin{itemize}
+ \item
+ Next list
+ More of the indented list.\par
+ \vbox{
+ \begin{itemize}
+ \item
+ Deeper\par
+ \begin{quote}
+ {\haddockverb
+ \begin{verbatim}
+even code blocks work
+ \end{verbatim}}
+ \end{quote}
+ \vbox{
+ \begin{itemize}
+ \item
+ Deeper\par
+ \vbox{
+ \begin{enumerate}
+ \item
+ Even deeper!\par
+ \item
+ No newline separation even in
+ indented lists.\par
+ \end{enumerate}}
+ \end{itemize}}
+ \end{itemize}}
+ \end{itemize}}
+ \end{itemize}}}
=====================================
utils/haddock/doc/snippets/Snippet-List-Not-Newline.html
=====================================
@@ -0,0 +1,10 @@
+<p>This is an enumerated list, with items not separated by newlines:</p>
+<ol>
+<li>first item</li>
+<li>second item</li>
+</ol>
+<p>This is a bulleted list, with items not separated by newlines:</p>
+<ul>
+<li>first item</li>
+<li>second item</li>
+</ul>
=====================================
utils/haddock/doc/snippets/Snippet-List-Not-Newline.tex
=====================================
@@ -0,0 +1,18 @@
+\newcommand{\haddockbegindoc}{\hfill\\[1ex]}
+ {\haddockbegindoc
+ This is an enumerated list, with items not separated by newlines:\par
+ \vbox{
+ \begin{enumerate}
+ \item
+ first item\par
+ \item
+ second item\par
+ \end{enumerate}}
+ This is a bulleted list, with items not separated by newlines:\par
+ \vbox{
+ \begin{itemize}
+ \item
+ first item\par
+ \item
+ second item\par
+ \end{itemize}}}
=====================================
utils/haddock/doc/snippets/Snippet-List-Not-Separated.html
=====================================
@@ -0,0 +1,2 @@
+<p><strong>Missing blank lines</strong> before a list: * first item *
+second item</p>
=====================================
utils/haddock/doc/snippets/Snippet-List-Not-Separated.tex
=====================================
@@ -0,0 +1,5 @@
+\newcommand{\haddockbegindoc}{\hfill\\[1ex]}
+ {\haddockbegindoc
+ \textbf{Missing blank lines} before a list:
+ * first item
+ * second item\par}
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/10b4d3641f6fe7a7443bd621d62d13…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/10b4d3641f6fe7a7443bd621d62d13…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/fendor/ghci-load-all-targets] 42 commits: Remove exprIsCheap from doFloatFromRhs
by Hannes Siebenhandl (@fendor) 18 Feb '26
by Hannes Siebenhandl (@fendor) 18 Feb '26
18 Feb '26
Hannes Siebenhandl pushed to branch wip/fendor/ghci-load-all-targets at Glasgow Haskell Compiler / GHC
Commits:
2b4f463c by Simon Peyton Jones at 2026-02-02T17:32:32+00:00
Remove exprIsCheap from doFloatFromRhs
See #26854 and Note [Float when expandable]
This patch simplifies the code, by removing an extra unnecessary test.
- - - - -
9db7f21f by Brandon Chinn at 2026-02-03T09:15:10-05:00
Refactor: make function patterns exhaustive
Also added missing (==) logic for:
* HsMultilineString
* HsInt{8,16,32}
* HsWord{8,16,32}
- - - - -
aa9c5e2c by Hécate Kleidukos at 2026-02-03T15:58:35-05:00
driver: Hide source paths at verbosity level 1 by default
- - - - -
c64cca1e by mangoiv at 2026-02-03T15:59:29-05:00
ExplicitLevelImports: check staging for types just like for values
Previously, imported types were entirely exempted from staging checks as
the implicit stage persistance assumed to be all imported types to be
well staged. ExplicitLevelImports' change specification, however, does
not do such an exemption. Thus we want to introduce such a check, just
like we have for values.
ExplicitLevelImports does not, however, talk about local names - from
its perspective, we could theoretically keep treating locally introduced
types specially - e.g. an ill-staged used in a quote would only emit a
warning, not an error. To allow for a potential future migration away
from such wrinkles as the staging check in notFound
(see Note [Out of scope might be a staging error]) we consistently do
the strict staging check that we also do for value if ExplicitLevelImports
is on.
Closes #26098
- - - - -
5f0dbeb6 by Simon Hengel at 2026-02-03T16:00:12-05:00
Use Haddock formatting in deprecation message of `initNameCache`
- - - - -
01ecb612 by Andreas Klebinger at 2026-02-04T09:56:25-05:00
testsuite: Explicitly use utf-8 encoding in rts-includes linter.
Not doing so caused failures on windows, as python failed to pick a
reasonable encoding even with locale set.
Fixes #26850
- - - - -
ea0d1317 by Zubin Duggal at 2026-02-04T09:57:06-05:00
Bump transformers submodule to 0.6.3.0
Fixes #26790
- - - - -
cbe4300e by Simon Peyton Jones at 2026-02-05T04:31:04-05:00
Fix subtle bug in GHC.Core.Utils.mkTick
This patch fixes a decade-old bug in `mkTick`, which
could generate type-incorrect code! See the diagnosis
in #26772.
The new code is simpler and easier to understand.
(As #26772 says, I think it could be improved further.)
- - - - -
a193a8da by Simon Peyton Jones at 2026-02-05T04:31:04-05:00
Modify a debug-trace in the Simplifier
...just to show a bit more information.
- - - - -
b579dfdc by Simon Peyton Jones at 2026-02-05T04:31:04-05:00
Fix long-standing interaction between ticks and casts
The code for Note [Eliminate Identity Cases] was simply wrong when
ticks and casts interacted. This patch fixes the interaction.
It was shown up when validating #26772, although it's not the exactly
the bug that's reported by #26772. Nor is it easy to reproduce, hence
no regression test.
- - - - -
fac0de1e by Cheng Shao at 2026-02-05T04:31:49-05:00
libraries: bump Cabal submodule to 3.16.1.0
- - - - -
00589122 by Cheng Shao at 2026-02-05T04:31:49-05:00
libraries: bump deepseq submodule to 1.5.2.0
Also:
- Get rid of usage of deprecated `NFData` function instance in the
compiler
- `T21391` still relies on `NFData` function instance, add
`-Wno-deprecations` for the time being.
- - - - -
84474c71 by Cheng Shao at 2026-02-05T04:31:50-05:00
libraries: bump directory submodule to 1.3.10.1
- - - - -
1a9f4662 by Cheng Shao at 2026-02-05T04:31:50-05:00
libraries: bump exceptions submodule to 0.10.12
- - - - -
2e39a340 by Peng Fan at 2026-02-07T03:42:01-05:00
NCG/LA64: adjust register usage to avoid src-register being clobbered
- - - - -
9faf1b35 by Teo Camarasu at 2026-02-07T03:42:43-05:00
ghc-internal: Delete unnecessary GHC.Internal.Data.Ix
This module merely re-exports GHC.Internal.Ix. It was copied from
`base` when `ghc-internal` was split, but there is no reason to have
this now. So, let's delete it.
Resolves #26848
- - - - -
d112b440 by Sven Tennie at 2026-02-07T10:47:56-05:00
Add cabal.project file to generate-ci
This fixes the HLS setup for our CI code generation script
(generate-ci).
The project file simply makes `generate-ci` of the cabal file
discoverable.
- - - - -
5339f6f0 by Andreas Klebinger at 2026-02-07T10:48:40-05:00
CI: Don't collapse test results.
This puts test output back into the primary test log instead of a
subsection removing the need to expand a section to see test results.
While the intention was good in practice the old behaviour mostly wastes time
by requiring expansion of the section.
Fixes #26882
- - - - -
0e1cd2e0 by Evan Piro at 2026-02-08T10:35:16-08:00
Linker.MacOS reduce dynflags import
- - - - -
1c79a4cd by Michael Alan Dorman at 2026-02-09T08:11:51-05:00
Remove `extra_src_files` variable from `testsuite/driver/testlib.py`
While reading through the test harness code, I noticed this variable
with a TODO attached that referenced #12223. Although that bug is
closed, it strongly implied that this special-case variable that only
affected a single test was expected to be removed at some point.
I also looked at 3415bcaa0b1903b5e12dfaadb5b774718e406eab---where it
was added---whose commit message suggested that it would have been
desirable to remove it, but that there were special circumstances that
meant it had to remain (though it doesn't elucidate what those special
circumstances are).
However, the special circumstances were mentioned as if the test was
in a different location than is currently is, so I decided to try
changing the test to use the standard `extra_files` mechanism, which
works in local testing.
This also seems like a reasonable time to remove the script that was
originally used in the transition, since it doesn't really serve a
purpose anymore.
- - - - -
0020e38a by Matthew Pickering at 2026-02-09T17:29:14-05:00
determinism: Use a stable sort in WithHsDocIdentifiers binary instance
`WithHsDocIdentifiers` is defined as
```
71 data WithHsDocIdentifiers a pass = WithHsDocIdentifiers
72 { hsDocString :: !a
73 , hsDocIdentifiers :: ![Located (IdP pass)]
74 }
```
This list of names is populated from `rnHsDocIdentifiers`, which calls
`lookupGRE`, which calls `lookupOccEnv_AllNameSpaces`, which calls
`nonDetEltsUFM` and returns the results in an order depending on
uniques.
Sorting the list with a stable sort before returning the interface makes
the output deterministic and follows the approach taken by other fields
in `Docs`.
Fixes #26858
- - - - -
89898ce6 by echoumcp1 at 2026-02-09T17:30:01-05:00
Replace putstrln with logMsg in handleSeqHValueStatus
Fixes #26549
- - - - -
7c52c4f9 by John Paul Adrian Glaubitz at 2026-02-10T13:52:43-05:00
rts: Switch prim to use modern atomic compiler builtins
The __sync_*() atomic compiler builtins have been deprecated in GCC
for a while now and also don't provide variants for 64-bit values
such as __sync_fetch_and_add_8().
Thus, replace them with the modern __atomic_*() compiler builtins and
while we're at it, also drop the helper macro CAS_NAND() which is now
no longer needed since we stopped using the __sync_*() compiler builtins
altogether.
Co-authored-by: Ilias Tsitsimpis <iliastsi(a)debian.org>
Fixes #26729
- - - - -
cf60850a by Recursion Ninja at 2026-02-10T13:53:27-05:00
Decoupling L.H.S.Decls from GHC.Types.ForeignCall
- Adding TTG extension point for 'CCallTarget'
- Adding TTG extension point for 'CType'
- Adding TTG extension point for 'Header'
- Moving ForeignCall types that do not need extension
to new L.H.S.Decls.Foreign module
- Replacing 'Bool' parameters with descriptive data-types
to increase clairty and prevent "Boolean Blindness"
- - - - -
11a04cbb by Eric Lee at 2026-02-11T09:20:46-05:00
Derive Semigroup/Monoid for instances believed could be derived in #25871
- - - - -
15d9ce44 by Eric Lee at 2026-02-11T09:20:46-05:00
add Ghc.Data.Pair deriving
- - - - -
c85dc170 by Evan Piro at 2026-02-11T09:21:45-05:00
Linker.MacOS reduce options import
- - - - -
a541dd83 by Chris Wendt at 2026-02-11T16:06:41-05:00
Initialize plugins for `:set +c` in GHCi
Fixes #23110.
- - - - -
0f5a73bc by Cheng Shao at 2026-02-11T16:07:27-05:00
compiler: add Binary Text instance
This patch adds `Binary` instance for strict `Text`, in preparation of
making `Text` usable in certain GHC API use cases (e.g. haddock). This
also introduces `text` as a direct dependency of the `ghc` package.
- - - - -
9e58b8a1 by Cheng Shao at 2026-02-11T16:08:10-05:00
ghc-toolchain: add C11 check
This patch partially reverts commit
b8307eab80c5809df5405d76c822bf86877f5960 that removed C99 check in
autoconf/ghc-toolchain. Now we:
- No longer re-implement `FP_SET_CFLAGS_C11` similar to
`FP_SET_CFLAGS_C99` in the past, since autoconf doesn't provide a
convenient `AC_PROG_CC_C11` function. ghc-toolchain will handle it
anyway.
- The Cmm CPP C99 check is relanded and repurposed for C11.
- The C99 logic in ghc-toolchain is relanded and repurposed for C11.
- The C99 check in Stg.h is corrected to check for C11. The obsolete
_ISOC99_SOURCE trick is dropped.
- Usages of `-std=gnu99` in the testsuite are corrected to use
`-std=gnu11`.
Closes #26908.
- - - - -
4df0adf6 by Simon Peyton Jones at 2026-02-11T21:50:13-05:00
Simplify the treatment of static forms
This MR implements GHC proposal 732: simplify static forms,
https://github.com/ghc-proposals/ghc-proposals/pull/732
thereby addressing #26556.
See `Note [Grand plan for static forms]` in GHC.Iface.Tidy.StaticPtrTable
The main changes are:
* There is a new, simple rule for (static e), namely that the free
term variables of `e` must be bound at top level. The check is
done in the `HsStatic` case of `GHC.Rename.Expr.rnExpr`
* That in turn substantially simplifies the info that the typechecker
carries around in its type environment. Hooray.
* The desugarer emits static bindings to top level directly; see the
`HsStatic` case of `dsExpr`.
* There is no longer any special static-related magic in the FloatOut
pass. And the main Simplifier pipeline no longer needs a special case
to run FloatOut even with -O0. Hooray.
All this forced an unexpected change to the pattern match checker. It
recursively invokes the main Hs desugarer when it wants to take a look
at a term to spot some special cases (notably constructor applications).
We don't want to emit any nested (static e) bindings to top level a
second time! Yikes.
That forced a modest refactor in GHC.HsToCore.Pmc:
* The `dsl_nablas` field of `DsLclEnv` now has a `NoPmc` case, which says
"I'm desugaring just for pattern-match checking purposes".
* When that flag is set we don't emit static binds.
That in turn forces a cascade of refactoring, but the net effect is an
improvement; less risk of duplicated (even exponential?) work.
See Note [Desugaring HsExpr during pattern-match checking].
10% metric decrease, on some architectures, of compile-time max-bytes-used on T15304.
Metric Decrease:
T15304
- - - - -
7922f728 by Teo Camarasu at 2026-02-11T21:50:58-05:00
ghc-internal: avoid depending on GHC.Internal.Exts
This module is mostly just re-exports. It made sense as a user-facing
module, but there's no good reason ghc-internal modules should depend on
it and doing so linearises the module graph
- move considerAccessible to GHC.Internal.Magic
Previously it lived in GHC.Internal.Exts, but it really deserves to live
along with the other magic function, which are already re-exported from .Exts
- move maxTupleSize to GHC.Internal.Tuple
This previously lived in GHC.Internal.Exts but a comment already said it
should be moved to .Tuple
Resolves #26832
- - - - -
b6a4a29b by Eric Lee at 2026-02-11T21:51:55-05:00
Remove unused Semigroup imports to fix GHC 9.14 bootstrapping
- - - - -
99d8c146 by Simon Peyton Jones at 2026-02-12T17:36:59+00:00
Fix subtle bug in cast worker/wrapper
See (CWw4) in Note [Cast worker/wrapper].
The true payload is in the change to the definition of
GHC.Types.Id.Info.hasInlineUnfolding
Everthing else is just documentation.
There is a 2% compile time decrease for T13056;
I'll take the win!
Metric Decrease:
T13056
- - - - -
530e8e58 by Simon Peyton Jones at 2026-02-12T20:17:23-05:00
Add regression tests for four StaticPtr bugs
Tickets #26545, #24464, #24773, #16981 are all solved by the
recently-landed MR
commit 318ee13bcffa6aa8df42ba442ccd92aa0f7e210c
Author: Simon Peyton Jones <simon.peytonjones(a)gmail.com>
Date: Mon Oct 20 23:07:20 2025 +0100
Simplify the treatment of static forms
This MR just adds regression tests for them.
- - - - -
4157160f by Cheng Shao at 2026-02-13T06:27:04-05:00
ci: remove unused hlint-ghc-and-base job definition
This patch removes the unused `hlint-ghc-and-base` job definition,
it's never run since !9806. Note that hadrian lint rules still work
locally, so anyone that wishes to run hlint on the codebase can
continue to do so in their local worktree.
- - - - -
039f1977 by Cheng Shao at 2026-02-13T06:27:47-05:00
wasm: use import.meta.main for proper distinction of nodejs main modules
This patch uses `import.meta.main` for proper distinction of nodejs
main modules, especially when the main module might be installed as a
symlink. Fixes #26916.
- - - - -
14f485ee by ARATA Mizuki at 2026-02-17T09:09:24+09:00
Support more x86 extensions: AVX-512 {BW,DQ,VL} and GFNI
Also, mark AVX-512 ER and PF as deprecated.
AVX-512 instructions can be used for certain 64-bit integer vector operations.
GFNI can be used to implement bitReverse (currently not used by NCG, but LLVM may use it).
Closes #26406
Addresses #26509
- - - - -
016f79d5 by fendor at 2026-02-17T09:16:16-05:00
Hide implementation details from base exception stack traces
Ensure we hide the implementation details of the exception throwing mechanisms:
* `undefined`
* `throwSTM`
* `throw`
* `throwIO`
* `error`
The `HasCallStackBacktrace` should always have a length of exactly 1,
not showing internal implementation details in the stack trace, as these
are vastly distracting to end users.
CLC proposal [#387](https://github.com/haskell/core-libraries-committee/issues/387)
- - - - -
4f2840f2 by Brian J. Cardiff at 2026-02-17T17:04:08-05:00
configure: Accept happy-2.2
In Jan 2026 happy-2.2 was released. The most sensible change is https://github.com/haskell/happy/issues/335 which didn't trigger in a fresh build
- - - - -
10b4d364 by Duncan Coutts at 2026-02-17T17:04:52-05:00
Fix errors in the documentation of the eventlog STOP_THREAD status codes
Fix the code for BlockedOnMsgThrowTo.
Document all the known historical warts.
Fixes issue #26867
- - - - -
edb1e67f by fendor at 2026-02-18T10:16:38+01:00
Introduce `-fimport-loaded-targets` GHCi flag
This new flag automatically adds all loaded targets to the GHCi session
by adding an `InteractiveImport` for the loaded targets.
By default, this flag is disabled, as it potentially increases memory-usage.
This interacts with the flag `-fno-load-initial-targets` as follows:
* If no module is loaded, no module is added as an interactive import.
* If a reload loads up to a module, all loaded modules are added as
interactive imports.
* Unloading modules removes them from the interactive context.
Fixes #26866 by rendering the use of a `-ghci-script` to achieve the
same thing redundant.
- - - - -
316 changed files:
- .gitlab-ci.yml
- .gitlab/ci.sh
- + .gitlab/generate-ci/cabal.project
- compiler/GHC/Builtin/Names.hs
- compiler/GHC/Builtin/Types.hs
- compiler/GHC/CmmToAsm/Config.hs
- compiler/GHC/CmmToAsm/LA64/CodeGen.hs
- compiler/GHC/CmmToAsm/X86/CodeGen.hs
- compiler/GHC/CmmToAsm/X86/Instr.hs
- compiler/GHC/CmmToAsm/X86/Ppr.hs
- compiler/GHC/CmmToLlvm/CodeGen.hs
- compiler/GHC/Core/Lint.hs
- compiler/GHC/Core/Opt/Pipeline.hs
- compiler/GHC/Core/Opt/SetLevels.hs
- compiler/GHC/Core/Opt/Simplify/Env.hs
- compiler/GHC/Core/Opt/Simplify/Iteration.hs
- compiler/GHC/Core/Opt/Simplify/Utils.hs
- compiler/GHC/Core/Opt/WorkWrap.hs
- compiler/GHC/Core/TyCon.hs
- compiler/GHC/Core/Utils.hs
- compiler/GHC/CoreToStg.hs
- compiler/GHC/CoreToStg/AddImplicitBinds.hs
- compiler/GHC/Data/Pair.hs
- compiler/GHC/Driver/Config/CmmToAsm.hs
- compiler/GHC/Driver/Config/Core/Lint.hs
- compiler/GHC/Driver/DynFlags.hs
- compiler/GHC/Driver/Flags.hs
- compiler/GHC/Driver/Pipeline/Execute.hs
- compiler/GHC/Driver/Session.hs
- compiler/GHC/Hs/Binds.hs
- compiler/GHC/Hs/Decls.hs
- compiler/GHC/Hs/Doc.hs
- compiler/GHC/Hs/Expr.hs
- compiler/GHC/Hs/Instances.hs
- compiler/GHC/Hs/Syn/Type.hs
- compiler/GHC/Hs/Type.hs
- compiler/GHC/Hs/Utils.hs
- compiler/GHC/HsToCore.hs
- compiler/GHC/HsToCore/Docs.hs
- compiler/GHC/HsToCore/Errors/Types.hs
- compiler/GHC/HsToCore/Expr.hs
- compiler/GHC/HsToCore/Foreign/C.hs
- compiler/GHC/HsToCore/Foreign/Call.hs
- compiler/GHC/HsToCore/Foreign/Decl.hs
- compiler/GHC/HsToCore/Foreign/JavaScript.hs
- compiler/GHC/HsToCore/Foreign/Utils.hs
- compiler/GHC/HsToCore/Foreign/Wasm.hs
- compiler/GHC/HsToCore/GuardedRHSs.hs
- compiler/GHC/HsToCore/Match.hs
- compiler/GHC/HsToCore/Monad.hs
- compiler/GHC/HsToCore/Pmc.hs
- compiler/GHC/HsToCore/Pmc/Desugar.hs
- compiler/GHC/HsToCore/Pmc/Solver.hs
- compiler/GHC/HsToCore/Pmc/Solver/Types.hs
- compiler/GHC/HsToCore/Quote.hs
- compiler/GHC/HsToCore/Ticks.hs
- compiler/GHC/HsToCore/Types.hs
- compiler/GHC/Iface/Ext/Ast.hs
- compiler/GHC/Iface/Syntax.hs
- compiler/GHC/Iface/Tidy.hs
- compiler/GHC/Iface/Tidy/StaticPtrTable.hs
- compiler/GHC/Linker/MacOS.hs
- compiler/GHC/Parser.y
- compiler/GHC/Parser/PostProcess.hs
- compiler/GHC/Parser/PostProcess/Haddock.hs
- compiler/GHC/Rename/Bind.hs
- compiler/GHC/Rename/Expr.hs
- compiler/GHC/Rename/HsType.hs
- compiler/GHC/Rename/Module.hs
- compiler/GHC/Rename/Splice.hs-boot
- compiler/GHC/Runtime/Heap/Inspect.hs
- compiler/GHC/Runtime/Interpreter.hs
- compiler/GHC/StgToByteCode.hs
- compiler/GHC/StgToCmm/Foreign.hs
- compiler/GHC/StgToJS/FFI.hs
- compiler/GHC/SysTools/Cpp.hs
- compiler/GHC/Tc/Deriv.hs
- compiler/GHC/Tc/Errors/Ppr.hs
- compiler/GHC/Tc/Errors/Types.hs
- compiler/GHC/Tc/Gen/Bind.hs
- compiler/GHC/Tc/Gen/Expr.hs
- compiler/GHC/Tc/Gen/Foreign.hs
- compiler/GHC/Tc/Gen/Head.hs
- compiler/GHC/Tc/Gen/Pat.hs
- compiler/GHC/Tc/Gen/Sig.hs
- compiler/GHC/Tc/Instance/Class.hs
- compiler/GHC/Tc/Module.hs
- compiler/GHC/Tc/Solver.hs
- compiler/GHC/Tc/Solver/Monad.hs
- compiler/GHC/Tc/TyCl.hs
- compiler/GHC/Tc/TyCl/Instance.hs
- compiler/GHC/Tc/TyCl/Utils.hs
- compiler/GHC/Tc/Types.hs
- compiler/GHC/Tc/Types/BasicTypes.hs
- compiler/GHC/Tc/Types/Constraint.hs
- compiler/GHC/Tc/Types/ErrCtxt.hs
- compiler/GHC/Tc/Types/Evidence.hs
- compiler/GHC/Tc/Types/Origin.hs
- compiler/GHC/Tc/Utils/Env.hs
- compiler/GHC/Tc/Utils/Monad.hs
- compiler/GHC/Tc/Utils/TcMType.hs
- − compiler/GHC/Tc/Utils/TcMType.hs-boot
- compiler/GHC/Tc/Zonk/TcType.hs
- compiler/GHC/Tc/Zonk/Type.hs
- compiler/GHC/ThToHs.hs
- compiler/GHC/Types/ForeignCall.hs
- compiler/GHC/Types/Id/Info.hs
- compiler/GHC/Types/Id/Make.hs
- compiler/GHC/Types/Name/Cache.hs
- compiler/GHC/Types/Unique/DSet.hs
- compiler/GHC/Unit/Module/ModIface.hs
- compiler/GHC/Utils/Binary.hs
- compiler/GHC/Utils/Ppr/Colour.hs
- compiler/Language/Haskell/Syntax/Decls.hs
- + compiler/Language/Haskell/Syntax/Decls/Foreign.hs
- compiler/Language/Haskell/Syntax/Extension.hs
- compiler/Language/Haskell/Syntax/Lit.hs
- compiler/ghc.cabal.in
- configure.ac
- distrib/configure.ac.in
- docs/users_guide/9.16.1-notes.rst
- docs/users_guide/eventlog-formats.rst
- docs/users_guide/ghci.rst
- docs/users_guide/phases.rst
- docs/users_guide/using.rst
- ghc/GHCi/UI.hs
- ghc/GHCi/UI/Info.hs
- hadrian/src/Settings/Builders/RunTest.hs
- libraries/Cabal
- libraries/base/changelog.md
- libraries/base/src/Data/Ix.hs
- libraries/deepseq
- libraries/directory
- libraries/exceptions
- libraries/ghc-internal/ghc-internal.cabal.in
- − libraries/ghc-internal/src/GHC/Internal/Data/Ix.hs
- libraries/ghc-internal/src/GHC/Internal/Exception.hs
- libraries/ghc-internal/src/GHC/Internal/Exts.hs
- libraries/ghc-internal/src/GHC/Internal/Heap/Closures.hs
- libraries/ghc-internal/src/GHC/Internal/JS/Foreign/Callback.hs
- libraries/ghc-internal/src/GHC/Internal/JS/Prim.hs
- libraries/ghc-internal/src/GHC/Internal/JS/Prim/Internal/Build.hs
- libraries/ghc-internal/src/GHC/Internal/Magic.hs
- libraries/ghc-internal/src/GHC/Internal/STM.hs
- libraries/ghc-internal/src/GHC/Internal/Stack/Decode.hs
- libraries/ghc-internal/src/GHC/Internal/Tuple.hs
- libraries/ghc-internal/src/GHC/Internal/Wasm/Prim/Exports.hs
- libraries/ghc-internal/src/GHC/Internal/Wasm/Prim/Imports.hs
- libraries/ghc-internal/src/GHC/Internal/Wasm/Prim/Types.hs
- + libraries/ghc-internal/tests/backtraces/T15395.hs
- + libraries/ghc-internal/tests/backtraces/T15395.stdout
- libraries/ghc-internal/tests/backtraces/all.T
- libraries/ghc-internal/tests/stack-annotation/ann_frame005.stdout
- libraries/transformers
- m4/fp_cmm_cpp_cmd_with_args.m4
- m4/fptools_happy.m4
- rts/include/Stg.h
- rts/prim/atomic.c
- testsuite/driver/cpu_features.py
- − testsuite/driver/kill_extra_files.py
- testsuite/driver/testlib.py
- testsuite/mk/test.mk
- testsuite/tests/arrows/should_compile/T21301.stderr
- testsuite/tests/backpack/cabal/bkpcabal08/bkpcabal08.stdout
- testsuite/tests/codeGen/should_gen_asm/all.T
- + testsuite/tests/codeGen/should_gen_asm/avx512-int64-minmax.asm
- + testsuite/tests/codeGen/should_gen_asm/avx512-int64-minmax.hs
- + testsuite/tests/codeGen/should_gen_asm/avx512-int64-mul.asm
- + testsuite/tests/codeGen/should_gen_asm/avx512-int64-mul.hs
- + testsuite/tests/codeGen/should_gen_asm/avx512-word64-minmax.asm
- + testsuite/tests/codeGen/should_gen_asm/avx512-word64-minmax.hs
- testsuite/tests/codeGen/should_run/CgStaticPointers.hs
- testsuite/tests/codeGen/should_run/CgStaticPointersNoFullLazyness.hs
- testsuite/tests/count-deps/CountDepsAst.stdout
- testsuite/tests/count-deps/CountDepsParser.stdout
- testsuite/tests/deSugar/should_fail/DsStrictFail.stderr
- testsuite/tests/deSugar/should_run/T20024.stderr
- testsuite/tests/deSugar/should_run/dsrun005.stderr
- testsuite/tests/deSugar/should_run/dsrun007.stderr
- testsuite/tests/deSugar/should_run/dsrun008.stderr
- testsuite/tests/deriving/should_run/T9576.stderr
- testsuite/tests/driver/T20030/test1/all.T
- testsuite/tests/driver/T20030/test2/all.T
- testsuite/tests/driver/T20030/test3/all.T
- testsuite/tests/driver/T20030/test4/all.T
- testsuite/tests/driver/T20030/test5/all.T
- testsuite/tests/driver/T20030/test6/all.T
- testsuite/tests/driver/T8526/T8526.script
- testsuite/tests/driver/bytecode-object/Makefile
- testsuite/tests/driver/bytecode-object/bytecode_object19.stdout
- testsuite/tests/driver/dynamicToo/dynamicToo001/Makefile
- testsuite/tests/driver/fat-iface/fat014.script
- testsuite/tests/driver/implicit-dyn-too/Makefile
- testsuite/tests/driver/multipleHomeUnits/all.T
- testsuite/tests/driver/multipleHomeUnits/multipleHomeUnits_recomp_th.stdout
- testsuite/tests/ffi/should_run/all.T
- testsuite/tests/ghci.debugger/scripts/T26042b.stdout
- testsuite/tests/ghci.debugger/scripts/T26042c.stdout
- testsuite/tests/ghci.debugger/scripts/T26042d2.stdout
- testsuite/tests/ghci.debugger/scripts/T26042f2.stdout
- − testsuite/tests/ghci/linking/T11531.stderr
- testsuite/tests/ghci/prog-mhu005/Makefile
- testsuite/tests/ghci/prog-mhu005/all.T
- + testsuite/tests/ghci/prog-mhu005/prog-mhu005b.script
- + testsuite/tests/ghci/prog-mhu005/prog-mhu005b.stdout
- + testsuite/tests/ghci/prog-mhu005/prog-mhu005c.script
- + testsuite/tests/ghci/prog-mhu005/prog-mhu005c.stderr
- + testsuite/tests/ghci/prog-mhu005/prog-mhu005c.stdout
- + testsuite/tests/ghci/prog-mhu005/prog-mhu005d.script
- + testsuite/tests/ghci/prog-mhu005/prog-mhu005d.stderr
- + testsuite/tests/ghci/prog-mhu005/prog-mhu005d.stdout
- + testsuite/tests/ghci/prog-mhu005/prog-mhu005e.script
- + testsuite/tests/ghci/prog-mhu005/prog-mhu005e.stderr
- + testsuite/tests/ghci/prog-mhu005/prog-mhu005e.stdout
- + testsuite/tests/ghci/prog-mhu005/prog-mhu005f.script
- + testsuite/tests/ghci/prog-mhu005/prog-mhu005f.stderr
- + testsuite/tests/ghci/prog-mhu005/prog-mhu005f.stdout
- + testsuite/tests/ghci/prog-mhu005/prog-mhu005g.script
- + testsuite/tests/ghci/prog-mhu005/prog-mhu005g.stderr
- + testsuite/tests/ghci/prog-mhu005/prog-mhu005g.stdout
- testsuite/tests/ghci/prog018/prog018.script
- testsuite/tests/ghci/prog022/Makefile
- testsuite/tests/ghci/prog022/all.T
- + testsuite/tests/ghci/prog022/ghci.prog022c.script
- + testsuite/tests/ghci/prog022/ghci.prog022c.stderr
- + testsuite/tests/ghci/prog022/ghci.prog022c.stdout
- + testsuite/tests/ghci/prog022/ghci.prog022d.script
- + testsuite/tests/ghci/prog022/ghci.prog022d.stderr
- + testsuite/tests/ghci/prog022/ghci.prog022d.stdout
- + testsuite/tests/ghci/prog022/ghci.prog022e.script
- + testsuite/tests/ghci/prog022/ghci.prog022e.stderr
- + testsuite/tests/ghci/prog022/ghci.prog022e.stdout
- + testsuite/tests/ghci/prog022/ghci.prog022f.script
- + testsuite/tests/ghci/prog022/ghci.prog022f.stderr
- + testsuite/tests/ghci/prog022/ghci.prog022f.stdout
- testsuite/tests/ghci/scripts/Defer02.stderr
- testsuite/tests/ghci/scripts/T13869.script
- testsuite/tests/ghci/scripts/T13997.script
- testsuite/tests/ghci/scripts/T15325.stderr
- testsuite/tests/ghci/scripts/T17669.script
- testsuite/tests/ghci/scripts/T18330.script
- testsuite/tests/ghci/scripts/T18330.stdout
- testsuite/tests/ghci/scripts/T1914.script
- testsuite/tests/ghci/scripts/T20150.stdout
- testsuite/tests/ghci/scripts/T20217.script
- testsuite/tests/ghci/scripts/T6105.script
- testsuite/tests/ghci/scripts/T8042.script
- testsuite/tests/ghci/scripts/T8042recomp.script
- testsuite/tests/ghci/should_run/Makefile
- testsuite/tests/interface-stability/base-exports.stdout
- testsuite/tests/interface-stability/base-exports.stdout-javascript-unknown-ghcjs
- testsuite/tests/interface-stability/base-exports.stdout-mingw32
- testsuite/tests/interface-stability/base-exports.stdout-ws-32
- testsuite/tests/interface-stability/ghc-experimental-exports.stdout
- testsuite/tests/interface-stability/ghc-experimental-exports.stdout-mingw32
- testsuite/tests/interface-stability/ghc-prim-exports.stdout
- testsuite/tests/interface-stability/ghc-prim-exports.stdout-mingw32
- testsuite/tests/linters/regex-linters/check-rts-includes.py
- testsuite/tests/parser/should_compile/DumpRenamedAst.stderr
- testsuite/tests/parser/should_compile/T14189.stderr
- testsuite/tests/patsyn/should_run/ghci.stderr
- + testsuite/tests/plugins/T23110.hs
- + testsuite/tests/plugins/T23110.script
- + testsuite/tests/plugins/T23110.stdout
- testsuite/tests/plugins/all.T
- testsuite/tests/process/all.T
- testsuite/tests/quotes/LiftErrMsgDefer.stderr
- testsuite/tests/rename/should_fail/RnStaticPointersFail01.stderr
- testsuite/tests/rename/should_fail/RnStaticPointersFail03.stderr
- + testsuite/tests/rename/should_fail/T26545.hs
- + testsuite/tests/rename/should_fail/T26545.stderr
- testsuite/tests/rename/should_fail/all.T
- testsuite/tests/rts/T13676.script
- testsuite/tests/safeHaskell/safeLanguage/SafeLang15.stderr
- testsuite/tests/showIface/DocsInHiFile1.stdout
- testsuite/tests/showIface/HaddockSpanIssueT24378.stdout
- testsuite/tests/showIface/MagicHashInHaddocks.stdout
- testsuite/tests/simd/should_run/all.T
- testsuite/tests/simplCore/should_compile/T21391.hs
- + testsuite/tests/simplCore/should_compile/T26903.hs
- + testsuite/tests/simplCore/should_compile/T26903.stderr
- testsuite/tests/simplCore/should_compile/T8331.stderr
- testsuite/tests/simplCore/should_compile/all.T
- + testsuite/tests/th/T26098A_quote.hs
- + testsuite/tests/th/T26098A_splice.hs
- + testsuite/tests/th/T26098_local.hs
- + testsuite/tests/th/T26098_local.stderr
- + testsuite/tests/th/T26098_quote.hs
- + testsuite/tests/th/T26098_quote.stderr
- + testsuite/tests/th/T26098_splice.hs
- + testsuite/tests/th/T26098_splice.stderr
- testsuite/tests/th/all.T
- testsuite/tests/type-data/should_run/T22332a.stderr
- + testsuite/tests/typecheck/should_compile/T24464.hs
- testsuite/tests/typecheck/should_compile/all.T
- testsuite/tests/typecheck/should_run/T10284.stderr
- testsuite/tests/typecheck/should_run/T13838.stderr
- + testsuite/tests/typecheck/should_run/T16981.hs
- + testsuite/tests/typecheck/should_run/T16981.stdout
- + testsuite/tests/typecheck/should_run/T24773.hs
- + testsuite/tests/typecheck/should_run/T24773.stdout
- testsuite/tests/typecheck/should_run/T9497a-run.stderr
- testsuite/tests/typecheck/should_run/T9497b-run.stderr
- testsuite/tests/typecheck/should_run/T9497c-run.stderr
- testsuite/tests/typecheck/should_run/all.T
- testsuite/tests/unsatisfiable/T23816.stderr
- testsuite/tests/unsatisfiable/UnsatDefer.stderr
- testsuite/tests/warnings/should_fail/CaretDiagnostics1.stderr
- utils/check-exact/ExactPrint.hs
- utils/ghc-toolchain/src/GHC/Toolchain/Tools/Cc.hs
- utils/ghc-toolchain/src/GHC/Toolchain/Tools/Cpp.hs
- utils/haddock/haddock-api/src/Haddock/Interface/LexParseRn.hs
- utils/haddock/haddock-api/src/Haddock/Interface/Rename.hs
- utils/haddock/haddock-api/src/Haddock/Types.hs
- utils/jsffi/dyld.mjs
- utils/jsffi/post-link.mjs
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/a349b9ba7a7ccbf3753ecd4cabdcbd…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/a349b9ba7a7ccbf3753ecd4cabdcbd…
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: haddock: use snippets for all list examples
by Marge Bot (@marge-bot) 18 Feb '26
by Marge Bot (@marge-bot) 18 Feb '26
18 Feb '26
Marge Bot pushed to branch wip/marge_bot_batch_merge_job at Glasgow Haskell Compiler / GHC
Commits:
c28348db by Phil de Joux at 2026-02-18T00:16:46-05:00
haddock: use snippets for all list examples
- generate snippet output for docs
- reduce font size to better fit snippets
- Use only directive to guard html snippets
- Add latex snippets for lists
- - - - -
856e2143 by Phil de Joux at 2026-02-18T00:16:46-05:00
haddock: Place the snippet input and output together
- Put the output seemingly inside the example box
- - - - -
83297209 by Samuel Thibault at 2026-02-18T00:16:58-05:00
Fix linking against libm by moving the -lm option
For those systems that need -lm for getting math functions, this is
currently added on the link line very early, before the object files being
linked together. Newer toolchains enable --as-needed by default, which means
-lm is ignored at that point because no object requires a math function
yet. With such toolchains, we thus have to add -lm after the objects, so the
linker actually includes libm in the link.
- - - - -
9d45aeb1 by Teo Camarasu at 2026-02-18T00:16:59-05:00
ghc-internal: Move GHC.Internal.Data.Bool to base
This is a tiny module that only defines bool :: Bool -> a -> a -> a. We can just move this to base and delete it from ghc-internal. If we want this functionality there we can just use a case statement or if-then expression.
Resolves 26865
- - - - -
56 changed files:
- compiler/GHC/Linker/Dynamic.hs
- libraries/base/src/Data/Bool.hs
- libraries/base/src/Data/List.hs
- libraries/base/src/Data/List/NubOrdSet.hs
- libraries/base/src/GHC/Exts.hs
- libraries/ghc-internal/ghc-internal.cabal.in
- − libraries/ghc-internal/src/GHC/Internal/Data/Bool.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Foldable.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Function.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Type/Bool.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Type/Ord.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Version.hs
- libraries/ghc-internal/src/GHC/Internal/IO/FD.hs
- libraries/ghc-internal/src/GHC/Internal/JS/Prim.hs
- libraries/ghc-internal/src/GHC/Internal/System/IO/OS.hs
- libraries/ghc-internal/src/GHC/Internal/TH/Lift.hs
- libraries/ghc-internal/src/GHC/Internal/TypeError.hs
- utils/haddock/doc/.gitignore
- utils/haddock/doc/Makefile
- + utils/haddock/doc/_static/haddock-custom.css
- utils/haddock/doc/conf.py
- utils/haddock/doc/markup.rst
- + utils/haddock/doc/snippets/.gitignore
- + utils/haddock/doc/snippets/Lists.hs
- + utils/haddock/doc/snippets/Makefile
- + utils/haddock/doc/snippets/Snippet-List-Bulleted.html
- + utils/haddock/doc/snippets/Snippet-List-Bulleted.tex
- + utils/haddock/doc/snippets/Snippet-List-Definition.html
- + utils/haddock/doc/snippets/Snippet-List-Definition.tex
- + utils/haddock/doc/snippets/Snippet-List-Enumerated.html
- + utils/haddock/doc/snippets/Snippet-List-Enumerated.tex
- + utils/haddock/doc/snippets/Snippet-List-Indentation.html
- + utils/haddock/doc/snippets/Snippet-List-Indentation.tex
- + utils/haddock/doc/snippets/Snippet-List-Multiline-Item.html
- + utils/haddock/doc/snippets/Snippet-List-Multiline-Item.tex
- + utils/haddock/doc/snippets/Snippet-List-Nested-Item.html
- + utils/haddock/doc/snippets/Snippet-List-Nested-Item.tex
- + utils/haddock/doc/snippets/Snippet-List-Not-Newline.html
- + utils/haddock/doc/snippets/Snippet-List-Not-Newline.tex
- + utils/haddock/doc/snippets/Snippet-List-Not-Separated.html
- + utils/haddock/doc/snippets/Snippet-List-Not-Separated.tex
- utils/haddock/html-test/ref/A.html
- utils/haddock/html-test/ref/Bug1004.html
- utils/haddock/html-test/ref/Bug1033.html
- utils/haddock/html-test/ref/Bug1103.html
- utils/haddock/html-test/ref/Bug548.html
- utils/haddock/html-test/ref/Bug923.html
- utils/haddock/html-test/ref/ConstructorPatternExport.html
- utils/haddock/html-test/ref/FunArgs.html
- utils/haddock/html-test/ref/Hash.html
- utils/haddock/html-test/ref/Instances.html
- utils/haddock/html-test/ref/LinearTypes.html
- utils/haddock/html-test/ref/RedactTypeSynonyms.html
- utils/haddock/html-test/ref/T23616.html
- utils/haddock/html-test/ref/Test.html
- utils/haddock/html-test/ref/TypeFamilies3.html
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/4a2d77c52ee4c2d2c57a3e8aa39a85…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/4a2d77c52ee4c2d2c57a3e8aa39a85…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
Teo Camarasu pushed to branch wip/T26930 at Glasgow Haskell Compiler / GHC
Commits:
316765d2 by Teo Camarasu at 2026-02-17T23:25:50+00:00
Float up generics
- - - - -
15 changed files:
- libraries/ghc-internal/src/GHC/Internal/ByteOrder.hs
- − libraries/ghc-internal/src/GHC/Internal/ByteOrder.hs-boot
- libraries/ghc-internal/src/GHC/Internal/Control/Arrow.hs
- libraries/ghc-internal/src/GHC/Internal/Control/Monad/Fix.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Foldable.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Functor/Const.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Functor/Identity.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Monoid.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Semigroup/Internal.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Traversable.hs
- libraries/ghc-internal/src/GHC/Internal/Functor/ZipList.hs
- libraries/ghc-internal/src/GHC/Internal/Generics.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Exception.hs
- libraries/ghc-internal/src/GHC/Internal/Read.hs
- libraries/ghc-internal/src/GHC/Internal/Unicode/Bits.hs
Changes:
=====================================
libraries/ghc-internal/src/GHC/Internal/ByteOrder.hs
=====================================
@@ -27,8 +27,6 @@ module GHC.Internal.ByteOrder
import GHC.Internal.Base
import GHC.Internal.Enum
-import GHC.Internal.Generics (Generic)
-import GHC.Internal.Text.Read
import GHC.Internal.Text.Show
-- | Byte ordering.
@@ -39,9 +37,7 @@ data ByteOrder
, Ord -- ^ @since base-4.11.0.0
, Bounded -- ^ @since base-4.11.0.0
, Enum -- ^ @since base-4.11.0.0
- , Read -- ^ @since base-4.11.0.0
, Show -- ^ @since base-4.11.0.0
- , Generic -- ^ @since base-4.15.0.0
)
-- | The byte ordering of the target machine.
=====================================
libraries/ghc-internal/src/GHC/Internal/ByteOrder.hs-boot deleted
=====================================
@@ -1,29 +0,0 @@
-{-# LANGUAGE NoImplicitPrelude #-}
-
-{-
-This SOURCE-imported hs-boot module cuts a big dependency loop:
-
-module ‘GHC.Stable’
-imports module ‘GHC.Ptr’
-imports module ‘Numeric’
-imports module ‘GHC.Read’
-imports module ‘GHC.Unicode’
-imports module ‘GHC.Unicode.Internal.Char.UnicodeData.GeneralCategory’
-imports module ‘GHC.Unicode.Internal.Bits’
-imports module ‘GHC.ByteOrder’
-imports module ‘GHC.Generics’
-imports module ‘Data.Ord’
-imports module ‘Foreign.Storable’
-imports module ‘GHC.Stable’
--}
-
-module GHC.Internal.ByteOrder where
-
--- See W1 of Note [Tracking dependencies on primitives] in GHC.Internal.Base
-import GHC.Internal.Types ()
-
-data ByteOrder
- = BigEndian
- | LittleEndian
-
-targetByteOrder :: ByteOrder
=====================================
libraries/ghc-internal/src/GHC/Internal/Control/Arrow.hs
=====================================
@@ -51,7 +51,7 @@ import GHC.Internal.Data.Tuple ( uncurry )
import GHC.Internal.Data.Either
import GHC.Internal.Control.Category
import GHC.Internal.Base hiding ( (.), id )
-import GHC.Internal.Generics (Generic, Generic1)
+import GHC.Internal.Generics
infixr 5 <+>
infixr 3 ***
@@ -179,12 +179,6 @@ instance Arrow (->) where
-- | Kleisli arrows of a monad.
newtype Kleisli m a b = Kleisli { runKleisli :: a -> m b }
--- | @since base-4.14.0.0
-deriving instance Generic (Kleisli m a b)
-
--- | @since base-4.14.0.0
-deriving instance Generic1 (Kleisli m a)
-
-- | @since base-4.14.0.0
deriving instance Functor m => Functor (Kleisli m a)
@@ -416,3 +410,8 @@ leftApp :: ArrowApply a => a b c -> a (Either b d) (Either c d)
leftApp f = arr ((\b -> (arr (\() -> b) >>> f >>> arr Left, ())) |||
(\d -> (arr (\() -> d) >>> arr Right, ()))) >>> app
+-- | @since base-4.14.0.0
+deriving instance Generic (Kleisli m a b)
+
+-- | @since base-4.14.0.0
+deriving instance Generic1 (Kleisli m a)
=====================================
libraries/ghc-internal/src/GHC/Internal/Control/Monad/Fix.hs
=====================================
@@ -39,7 +39,6 @@ import GHC.Internal.Data.NonEmpty ( NonEmpty(..) )
import GHC.Internal.Data.Ord ( Down(..) )
import GHC.Internal.Data.Tuple ( Solo(..), fst, snd )
import GHC.Internal.Base ( IO, Monad, errorWithoutStackTrace, (.), return, liftM )
-import GHC.Internal.Generics
import GHC.Internal.List ( head, drop )
import GHC.Internal.Control.Monad.ST.Imp
import qualified GHC.Internal.Control.Monad.ST.Lazy.Imp as Lazy
@@ -240,26 +239,6 @@ instance MonadFix f => MonadFix (Alt f) where
instance MonadFix f => MonadFix (Ap f) where
mfix f = Ap (mfix (getAp . f))
--- Instances for GHC.Generics
--- | @since base-4.9.0.0
-instance MonadFix Par1 where
- mfix f = Par1 (fix (unPar1 . f))
-
--- | @since base-4.9.0.0
-instance MonadFix f => MonadFix (Rec1 f) where
- mfix f = Rec1 (mfix (unRec1 . f))
-
--- | @since base-4.9.0.0
-instance MonadFix f => MonadFix (M1 i c f) where
- mfix f = M1 (mfix (unM1. f))
-
--- | @since base-4.9.0.0
-instance (MonadFix f, MonadFix g) => MonadFix (f :*: g) where
- mfix f = (mfix (fstP . f)) :*: (mfix (sndP . f))
- where
- fstP (a :*: _) = a
- sndP (_ :*: b) = b
-
-- Instances for Data.Ord
-- | @since base-4.12.0.0
=====================================
libraries/ghc-internal/src/GHC/Internal/Data/Foldable.hs
=====================================
@@ -65,7 +65,6 @@ import GHC.Internal.Arr ( Array(..), elems, numElements,
foldlElems', foldrElems',
foldl1Elems, foldr1Elems)
import GHC.Internal.Base hiding ( foldr )
-import GHC.Internal.Generics
import GHC.Internal.Tuple (Solo (..))
import GHC.Internal.Num ( Num(..) )
@@ -860,67 +859,6 @@ instance (Foldable f) => Foldable (Alt f) where
instance (Foldable f) => Foldable (Ap f) where
foldMap f = foldMap f . getAp
--- Instances for GHC.Generics
--- | @since base-4.9.0.0
-instance Foldable U1 where
- foldMap _ _ = mempty
- {-# INLINE foldMap #-}
- fold _ = mempty
- {-# INLINE fold #-}
- foldr _ z _ = z
- {-# INLINE foldr #-}
- foldl _ z _ = z
- {-# INLINE foldl #-}
- foldl1 _ _ = errorWithoutStackTrace "foldl1: U1"
- foldr1 _ _ = errorWithoutStackTrace "foldr1: U1"
- length _ = 0
- null _ = True
- elem _ _ = False
- sum _ = 0
- product _ = 1
-
--- | @since base-4.9.0.0
-deriving instance Foldable V1
-
--- | @since base-4.9.0.0
-deriving instance Foldable Par1
-
--- | @since base-4.9.0.0
-deriving instance Foldable f => Foldable (Rec1 f)
-
--- | @since base-4.9.0.0
-deriving instance Foldable (K1 i c)
-
--- | @since base-4.9.0.0
-deriving instance Foldable f => Foldable (M1 i c f)
-
--- | @since base-4.9.0.0
-deriving instance (Foldable f, Foldable g) => Foldable (f :+: g)
-
--- | @since base-4.9.0.0
-deriving instance (Foldable f, Foldable g) => Foldable (f :*: g)
-
--- | @since base-4.9.0.0
-deriving instance (Foldable f, Foldable g) => Foldable (f :.: g)
-
--- | @since base-4.9.0.0
-deriving instance Foldable UAddr
-
--- | @since base-4.9.0.0
-deriving instance Foldable UChar
-
--- | @since base-4.9.0.0
-deriving instance Foldable UDouble
-
--- | @since base-4.9.0.0
-deriving instance Foldable UFloat
-
--- | @since base-4.9.0.0
-deriving instance Foldable UInt
-
--- | @since base-4.9.0.0
-deriving instance Foldable UWord
-
-- Instances for Data.Ord
-- | @since base-4.12.0.0
deriving instance Foldable Down
=====================================
libraries/ghc-internal/src/GHC/Internal/Data/Functor/Const.hs
=====================================
@@ -29,7 +29,6 @@ import GHC.Internal.Ix (Ix)
import GHC.Internal.Base
import GHC.Internal.Enum (Bounded, Enum)
import GHC.Internal.Float (Floating, RealFloat)
-import GHC.Internal.Generics (Generic, Generic1)
import GHC.Internal.Num (Num)
import GHC.Internal.Real (Fractional, Integral, Real, RealFrac)
import GHC.Internal.Read (Read(readsPrec), readParen, lex)
@@ -57,8 +56,6 @@ newtype Const a b = Const { getConst :: a }
, FiniteBits -- ^ @since base-4.9.0.0
, Floating -- ^ @since base-4.9.0.0
, Fractional -- ^ @since base-4.9.0.0
- , Generic -- ^ @since base-4.9.0.0
- , Generic1 -- ^ @since base-4.9.0.0
, Integral -- ^ @since base-4.9.0.0
, Ix -- ^ @since base-4.9.0.0
, Semigroup -- ^ @since base-4.9.0.0
=====================================
libraries/ghc-internal/src/GHC/Internal/Data/Functor/Identity.hs
=====================================
@@ -43,7 +43,6 @@ import GHC.Internal.Base ( Applicative(..), Eq(..), Functor(..), Monad(..)
, Semigroup, Monoid, Ord(..), ($), (.) )
import GHC.Internal.Enum (Bounded, Enum)
import GHC.Internal.Float (Floating, RealFloat)
-import GHC.Internal.Generics (Generic, Generic1)
import GHC.Internal.Num (Num)
import GHC.Internal.Read (Read(..), lex, readParen)
import GHC.Internal.Real (Fractional, Integral, Real, RealFrac)
@@ -77,8 +76,6 @@ newtype Identity a = Identity { runIdentity :: a }
, FiniteBits -- ^ @since base-4.9.0.0
, Floating -- ^ @since base-4.9.0.0
, Fractional -- ^ @since base-4.9.0.0
- , Generic -- ^ @since base-4.8.0.0
- , Generic1 -- ^ @since base-4.8.0.0
, Integral -- ^ @since base-4.9.0.0
, Ix -- ^ @since base-4.9.0.0
, Semigroup -- ^ @since base-4.9.0.0
=====================================
libraries/ghc-internal/src/GHC/Internal/Data/Monoid.hs
=====================================
@@ -1,4 +1,3 @@
-{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE PolyKinds #-}
@@ -85,7 +84,6 @@ module GHC.Internal.Data.Monoid (
-- Push down the module in the dependency hierarchy.
import GHC.Internal.Base hiding (Any)
import GHC.Internal.Enum
-import GHC.Internal.Generics
import GHC.Internal.Num
import GHC.Internal.Read
import GHC.Internal.Show
@@ -148,8 +146,6 @@ newtype First a = First { getFirst :: Maybe a }
, Ord -- ^ @since base-2.01
, Read -- ^ @since base-2.01
, Show -- ^ @since base-2.01
- , Generic -- ^ @since base-4.7.0.0
- , Generic1 -- ^ @since base-4.7.0.0
, Functor -- ^ @since base-4.8.0.0
, Applicative -- ^ @since base-4.8.0.0
, Monad -- ^ @since base-4.8.0.0
@@ -190,8 +186,6 @@ newtype Last a = Last { getLast :: Maybe a }
, Ord -- ^ @since base-2.01
, Read -- ^ @since base-2.01
, Show -- ^ @since base-2.01
- , Generic -- ^ @since base-4.7.0.0
- , Generic1 -- ^ @since base-4.7.0.0
, Functor -- ^ @since base-4.8.0.0
, Applicative -- ^ @since base-4.8.0.0
, Monad -- ^ @since base-4.8.0.0
@@ -225,8 +219,6 @@ newtype Ap f a = Ap { getAp :: f a }
, Enum -- ^ @since base-4.12.0.0
, Eq -- ^ @since base-4.12.0.0
, Functor -- ^ @since base-4.12.0.0
- , Generic -- ^ @since base-4.12.0.0
- , Generic1 -- ^ @since base-4.12.0.0
, Monad -- ^ @since base-4.12.0.0
, MonadFail -- ^ @since base-4.12.0.0
, MonadPlus -- ^ @since base-4.12.0.0
=====================================
libraries/ghc-internal/src/GHC/Internal/Data/Semigroup/Internal.hs
=====================================
@@ -1,6 +1,5 @@
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE ScopedTypeVariables #-}
@@ -26,7 +25,6 @@ import qualified GHC.Internal.List as List
import GHC.Internal.Num
import GHC.Internal.Read
import GHC.Internal.Show
-import GHC.Internal.Generics
import GHC.Internal.Real
-- | This is a valid definition of 'stimes' for an idempotent 'Semigroup'.
@@ -90,8 +88,6 @@ newtype Dual a = Dual { getDual :: a }
, Read -- ^ @since base-2.01
, Show -- ^ @since base-2.01
, Bounded -- ^ @since base-2.01
- , Generic -- ^ @since base-4.7.0.0
- , Generic1 -- ^ @since base-4.7.0.0
)
-- | @since base-4.9.0.0
@@ -130,8 +126,6 @@ instance Monad Dual where
-- >>> appEndo computation 1
-- 6
newtype Endo a = Endo { appEndo :: a -> a }
- deriving ( Generic -- ^ @since base-4.7.0.0
- )
-- | @since base-4.9.0.0
instance Semigroup (Endo a) where
@@ -200,7 +194,6 @@ newtype All = All { getAll :: Bool }
, Read -- ^ @since base-2.01
, Show -- ^ @since base-2.01
, Bounded -- ^ @since base-2.01
- , Generic -- ^ @since base-4.7.0.0
)
-- | @since base-4.9.0.0
@@ -232,7 +225,6 @@ newtype Any = Any { getAny :: Bool }
, Read -- ^ @since base-2.01
, Show -- ^ @since base-2.01
, Bounded -- ^ @since base-2.01
- , Generic -- ^ @since base-4.7.0.0
)
-- | @since base-4.9.0.0
@@ -261,8 +253,6 @@ newtype Sum a = Sum { getSum :: a }
, Read -- ^ @since base-2.01
, Show -- ^ @since base-2.01
, Bounded -- ^ @since base-2.01
- , Generic -- ^ @since base-4.7.0.0
- , Generic1 -- ^ @since base-4.7.0.0
, Num -- ^ @since base-4.7.0.0
)
@@ -309,8 +299,6 @@ newtype Product a = Product { getProduct :: a }
, Read -- ^ @since base-2.01
, Show -- ^ @since base-2.01
, Bounded -- ^ @since base-2.01
- , Generic -- ^ @since base-4.7.0.0
- , Generic1 -- ^ @since base-4.7.0.0
, Num -- ^ @since base-4.7.0.0
)
@@ -355,9 +343,7 @@ instance Monad Product where
--
-- @since base-4.8.0.0
newtype Alt f a = Alt {getAlt :: f a}
- deriving ( Generic -- ^ @since base-4.8.0.0
- , Generic1 -- ^ @since base-4.8.0.0
- , Read -- ^ @since base-4.8.0.0
+ deriving ( Read -- ^ @since base-4.8.0.0
, Show -- ^ @since base-4.8.0.0
, Eq -- ^ @since base-4.8.0.0
, Ord -- ^ @since base-4.8.0.0
=====================================
libraries/ghc-internal/src/GHC/Internal/Data/Traversable.hs
=====================================
@@ -51,8 +51,7 @@ import GHC.Internal.Data.Proxy ( Proxy(..) )
import GHC.Internal.Arr
import GHC.Internal.Base ( Applicative(..), Monad(..), Monoid, Maybe(..), NonEmpty(..),
- ($), (.), id, flip )
-import GHC.Internal.Generics
+ (.), id, flip, ($) )
import qualified GHC.Internal.List as List ( foldr )
import GHC.Internal.Tuple (Solo (..))
@@ -310,60 +309,6 @@ instance (Traversable f) => Traversable (Ap f) where
deriving instance Traversable Identity
--- Instances for GHC.Generics
--- | @since base-4.9.0.0
-instance Traversable U1 where
- traverse _ _ = pure U1
- {-# INLINE traverse #-}
- sequenceA _ = pure U1
- {-# INLINE sequenceA #-}
- mapM _ _ = pure U1
- {-# INLINE mapM #-}
- sequence _ = pure U1
- {-# INLINE sequence #-}
-
--- | @since base-4.9.0.0
-deriving instance Traversable V1
-
--- | @since base-4.9.0.0
-deriving instance Traversable Par1
-
--- | @since base-4.9.0.0
-deriving instance Traversable f => Traversable (Rec1 f)
-
--- | @since base-4.9.0.0
-deriving instance Traversable (K1 i c)
-
--- | @since base-4.9.0.0
-deriving instance Traversable f => Traversable (M1 i c f)
-
--- | @since base-4.9.0.0
-deriving instance (Traversable f, Traversable g) => Traversable (f :+: g)
-
--- | @since base-4.9.0.0
-deriving instance (Traversable f, Traversable g) => Traversable (f :*: g)
-
--- | @since base-4.9.0.0
-deriving instance (Traversable f, Traversable g) => Traversable (f :.: g)
-
--- | @since base-4.9.0.0
-deriving instance Traversable UAddr
-
--- | @since base-4.9.0.0
-deriving instance Traversable UChar
-
--- | @since base-4.9.0.0
-deriving instance Traversable UDouble
-
--- | @since base-4.9.0.0
-deriving instance Traversable UFloat
-
--- | @since base-4.9.0.0
-deriving instance Traversable UInt
-
--- | @since base-4.9.0.0
-deriving instance Traversable UWord
-
-- Instance for Data.Ord
-- | @since base-4.12.0.0
deriving instance Traversable Down
=====================================
libraries/ghc-internal/src/GHC/Internal/Functor/ZipList.hs
=====================================
@@ -1,13 +1,11 @@
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE DeriveFunctor #-}
-{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveFoldable #-}
module GHC.Internal.Functor.ZipList (ZipList(..)) where
import GHC.Internal.Base
-import GHC.Internal.Generics
import GHC.Internal.List (repeat, zipWith)
import GHC.Internal.Read (Read)
import GHC.Internal.Show (Show)
@@ -41,8 +39,6 @@ newtype ZipList a = ZipList { getZipList :: [a] }
, Read -- ^ @since base-4.7.0.0
, Functor -- ^ @since base-2.01
, Foldable -- ^ @since base-4.9.0.0
- , Generic -- ^ @since base-4.7.0.0
- , Generic1 -- ^ @since base-4.7.0.0
)
=====================================
libraries/ghc-internal/src/GHC/Internal/Generics.hs
=====================================
@@ -3,7 +3,9 @@
{-# LANGUAGE CPP #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveFunctor #-}
+{-# LANGUAGE DeriveFoldable #-}
{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DeriveTraversable #-}
{-# LANGUAGE EmptyDataDeriving #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
@@ -736,13 +738,13 @@ import GHC.Internal.Data.Ord ( Down(..) )
import GHC.Internal.Bignum.Integer ( Integer, integerToInt )
import GHC.Internal.Prim ( Addr#, Char#, Double#, Float#, Int#, Word# )
import GHC.Internal.Ptr ( Ptr(..) )
-import GHC.Internal.Types
+import GHC.Internal.Types hiding (Any) -- clashes with the Semigroup
-- Needed for instances
import GHC.Internal.Ix ( Ix )
import GHC.Internal.Base ( Alternative(..), Applicative(..), Functor(..)
, Monad(..), MonadPlus(..), NonEmpty(..), String, coerce
- , Semigroup(..), Monoid(..), Void )
+ , Semigroup(..), Void, errorWithoutStackTrace, liftM2 )
import GHC.Internal.Classes ( Eq(..), Ord(..) )
import GHC.Internal.Enum ( Bounded, Enum )
import GHC.Internal.Read ( Read(..) )
@@ -751,6 +753,15 @@ import GHC.Internal.Stack.Types ( SrcLoc(..) )
import GHC.Internal.Tuple (Solo (..))
import GHC.Internal.Unicode ( GeneralCategory(..) )
import GHC.Internal.Fingerprint.Type ( Fingerprint(..) )
+import GHC.Internal.Data.Semigroup.Internal
+import GHC.Internal.Data.Monoid
+import GHC.Internal.Data.Foldable
+import GHC.Internal.Data.Traversable
+import GHC.Internal.Data.Functor.Const
+import GHC.Internal.Data.Functor.Identity
+import GHC.Internal.Functor.ZipList
+import GHC.Internal.IO.Exception ( ExitCode(..) )
+import GHC.Internal.ByteOrder ( ByteOrder(..) )
-- Needed for metadata
import GHC.Internal.Data.Proxy ( Proxy(..) )
@@ -1879,3 +1890,191 @@ instance SingKind DecidedStrictness where
fromSing SDecidedLazy = DecidedLazy
fromSing SDecidedStrict = DecidedStrict
fromSing SDecidedUnpack = DecidedUnpack
+
+-- | @since base-4.7.0.0
+deriving instance Generic (Dual a)
+
+-- | @since base-4.7.0.0
+deriving instance Generic1 Dual
+
+-- | @since base-4.7.0.0
+deriving instance Generic (Endo a)
+
+-- | @since base-4.7.0.0
+deriving instance Generic All
+
+-- | @since base-4.7.0.0
+deriving instance Generic Any
+
+-- | @since base-4.7.0.0
+deriving instance Generic (Sum a)
+
+-- | @since base-4.7.0.0
+deriving instance Generic1 Sum
+
+-- | @since base-4.7.0.0
+deriving instance Generic (Product a)
+
+-- | @since base-4.7.0.0
+deriving instance Generic1 Product
+
+-- | @since base-4.8.0.0
+deriving instance Generic (Alt f a)
+
+-- | @since base-4.8.0.0
+deriving instance Generic1 (Alt f)
+
+-- | @since base-4.7.0.0
+deriving instance Generic (First a)
+
+-- | @since base-4.7.0.0
+deriving instance Generic1 First
+
+-- | @since base-4.7.0.0
+deriving instance Generic (Last a)
+
+-- | @since base-4.7.0.0
+deriving instance Generic1 Last
+
+-- | @since base-4.12.0.0
+deriving instance Generic (Ap f a)
+
+-- | @since base-4.12.0.0
+deriving instance Generic1 (Ap f)
+
+-- | @since base-4.9.0.0
+instance Foldable U1 where
+ foldMap _ _ = mempty
+ {-# INLINE foldMap #-}
+ fold _ = mempty
+ {-# INLINE fold #-}
+ foldr _ z _ = z
+ {-# INLINE foldr #-}
+ foldl _ z _ = z
+ {-# INLINE foldl #-}
+ foldl1 _ _ = errorWithoutStackTrace "foldl1: U1"
+ foldr1 _ _ = errorWithoutStackTrace "foldr1: U1"
+ length _ = 0
+ null _ = True
+ elem _ _ = False
+ sum _ = 0
+ product _ = 1
+
+-- | @since base-4.9.0.0
+deriving instance Foldable V1
+
+-- | @since base-4.9.0.0
+deriving instance Foldable Par1
+
+-- | @since base-4.9.0.0
+deriving instance Foldable f => Foldable (Rec1 f)
+
+-- | @since base-4.9.0.0
+deriving instance Foldable (K1 i c)
+
+-- | @since base-4.9.0.0
+deriving instance Foldable f => Foldable (M1 i c f)
+
+-- | @since base-4.9.0.0
+deriving instance (Foldable f, Foldable g) => Foldable (f :+: g)
+
+-- | @since base-4.9.0.0
+deriving instance (Foldable f, Foldable g) => Foldable (f :*: g)
+
+-- | @since base-4.9.0.0
+deriving instance (Foldable f, Foldable g) => Foldable (f :.: g)
+
+-- | @since base-4.9.0.0
+deriving instance Foldable UAddr
+
+-- | @since base-4.9.0.0
+deriving instance Foldable UChar
+
+-- | @since base-4.9.0.0
+deriving instance Foldable UDouble
+
+-- | @since base-4.9.0.0
+deriving instance Foldable UFloat
+
+-- | @since base-4.9.0.0
+deriving instance Foldable UInt
+
+-- | @since base-4.9.0.0
+deriving instance Foldable UWord
+
+-- | @since base-4.9.0.0
+instance Traversable U1 where
+ traverse _ _ = pure U1
+ {-# INLINE traverse #-}
+ sequenceA _ = pure U1
+ {-# INLINE sequenceA #-}
+ mapM _ _ = pure U1
+ {-# INLINE mapM #-}
+ sequence _ = pure U1
+ {-# INLINE sequence #-}
+
+-- | @since base-4.9.0.0
+deriving instance Traversable V1
+
+-- | @since base-4.9.0.0
+deriving instance Traversable Par1
+
+-- | @since base-4.9.0.0
+deriving instance Traversable f => Traversable (Rec1 f)
+
+-- | @since base-4.9.0.0
+deriving instance Traversable (K1 i c)
+
+-- | @since base-4.9.0.0
+deriving instance Traversable f => Traversable (M1 i c f)
+
+-- | @since base-4.9.0.0
+deriving instance (Traversable f, Traversable g) => Traversable (f :+: g)
+
+-- | @since base-4.9.0.0
+deriving instance (Traversable f, Traversable g) => Traversable (f :*: g)
+
+-- | @since base-4.9.0.0
+deriving instance (Traversable f, Traversable g) => Traversable (f :.: g)
+
+-- | @since base-4.9.0.0
+deriving instance Traversable UAddr
+
+-- | @since base-4.9.0.0
+deriving instance Traversable UChar
+
+-- | @since base-4.9.0.0
+deriving instance Traversable UDouble
+
+-- | @since base-4.9.0.0
+deriving instance Traversable UFloat
+
+-- | @since base-4.9.0.0
+deriving instance Traversable UInt
+
+-- | @since base-4.9.0.0
+deriving instance Traversable UWord
+
+-- | @since base-4.9.0.0
+deriving instance Generic (Const a b)
+
+-- | @since base-4.9.0.0
+deriving instance Generic1 (Const a)
+
+-- | @since base-4.8.0.0
+deriving instance Generic (Identity a)
+
+-- | @since base-4.8.0.0
+deriving instance Generic1 Identity
+
+-- | @since base-4.7.0.0
+deriving instance Generic (ZipList a)
+
+-- | @since base-4.7.0.0
+deriving instance Generic1 ZipList
+
+-- TODO: since when??
+deriving instance Generic ExitCode
+
+-- | @since base-4.15.0.0
+deriving instance Generic ByteOrder
=====================================
libraries/ghc-internal/src/GHC/Internal/IO/Exception.hs
=====================================
@@ -1,5 +1,5 @@
{-# LANGUAGE Trustworthy #-}
-{-# LANGUAGE DeriveGeneric, NoImplicitPrelude, MagicHash,
+{-# LANGUAGE NoImplicitPrelude, MagicHash,
ExistentialQuantification, ImplicitParams #-}
{-# OPTIONS_GHC -funbox-strict-fields #-}
{-# OPTIONS_HADDOCK not-home #-}
@@ -52,7 +52,6 @@ module GHC.Internal.IO.Exception (
) where
import GHC.Internal.Base
-import GHC.Internal.Generics
import GHC.Internal.List
import GHC.Internal.IO
import GHC.Internal.Show
@@ -306,7 +305,7 @@ data ExitCode
-- The exact interpretation of the code is
-- operating-system dependent. In particular, some values
-- may be prohibited (e.g. 0 on a POSIX-compliant system).
- deriving (Eq, Ord, Read, Show, Generic)
+ deriving (Eq, Ord, Read, Show)
-- | @since base-4.1.0.0
instance Exception ExitCode
=====================================
libraries/ghc-internal/src/GHC/Internal/Read.hs
=====================================
@@ -74,6 +74,7 @@ import GHC.Internal.Arr
import GHC.Internal.Word
import GHC.Internal.List (filter)
import GHC.Internal.Tuple (Solo (..))
+import GHC.Internal.ByteOrder
-- | @'readParen' 'True' p@ parses what @p@ parses, but surrounded with
@@ -833,3 +834,6 @@ instance (Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h,
; return (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) })
readListPrec = readListPrecDefault
readList = readListDefault
+
+-- | @since base-4.11.0.0
+deriving instance Read ByteOrder
=====================================
libraries/ghc-internal/src/GHC/Internal/Unicode/Bits.hs
=====================================
@@ -31,7 +31,7 @@ module GHC.Internal.Unicode.Bits
where
import GHC.Internal.Bits (finiteBitSize, popCount)
-import {-# SOURCE #-} GHC.Internal.ByteOrder
+import GHC.Internal.ByteOrder
import GHC.Internal.Prim
import GHC.Internal.ST
import GHC.Internal.Base
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/316765d2128789be4ad1042d0214c8d…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/316765d2128789be4ad1042d0214c8d…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/marge_bot_batch_merge_job] 5 commits: configure: Accept happy-2.2
by Marge Bot (@marge-bot) 17 Feb '26
by Marge Bot (@marge-bot) 17 Feb '26
17 Feb '26
Marge Bot pushed to branch wip/marge_bot_batch_merge_job at Glasgow Haskell Compiler / GHC
Commits:
4f2840f2 by Brian J. Cardiff at 2026-02-17T17:04:08-05:00
configure: Accept happy-2.2
In Jan 2026 happy-2.2 was released. The most sensible change is https://github.com/haskell/happy/issues/335 which didn't trigger in a fresh build
- - - - -
10b4d364 by Duncan Coutts at 2026-02-17T17:04:52-05:00
Fix errors in the documentation of the eventlog STOP_THREAD status codes
Fix the code for BlockedOnMsgThrowTo.
Document all the known historical warts.
Fixes issue #26867
- - - - -
1617b10c by Phil de Joux at 2026-02-17T17:36:29-05:00
haddock: use snippets for all list examples
- generate snippet output for docs
- reduce font size to better fit snippets
- Use only directive to guard html snippets
- Add latex snippets for lists
- - - - -
2ac7b715 by Phil de Joux at 2026-02-17T17:36:29-05:00
haddock: Place the snippet input and output together
- Put the output seemingly inside the example box
- - - - -
4a2d77c5 by Samuel Thibault at 2026-02-17T17:36:42-05:00
Fix linking against libm by moving the -lm option
For those systems that need -lm for getting math functions, this is
currently added on the link line very early, before the object files being
linked together. Newer toolchains enable --as-needed by default, which means
-lm is ignored at that point because no object requires a math function
yet. With such toolchains, we thus have to add -lm after the objects, so the
linker actually includes libm in the link.
- - - - -
27 changed files:
- compiler/GHC/Linker/Dynamic.hs
- docs/users_guide/eventlog-formats.rst
- m4/fptools_happy.m4
- utils/haddock/doc/.gitignore
- utils/haddock/doc/Makefile
- + utils/haddock/doc/_static/haddock-custom.css
- utils/haddock/doc/conf.py
- utils/haddock/doc/markup.rst
- + utils/haddock/doc/snippets/.gitignore
- + utils/haddock/doc/snippets/Lists.hs
- + utils/haddock/doc/snippets/Makefile
- + utils/haddock/doc/snippets/Snippet-List-Bulleted.html
- + utils/haddock/doc/snippets/Snippet-List-Bulleted.tex
- + utils/haddock/doc/snippets/Snippet-List-Definition.html
- + utils/haddock/doc/snippets/Snippet-List-Definition.tex
- + utils/haddock/doc/snippets/Snippet-List-Enumerated.html
- + utils/haddock/doc/snippets/Snippet-List-Enumerated.tex
- + utils/haddock/doc/snippets/Snippet-List-Indentation.html
- + utils/haddock/doc/snippets/Snippet-List-Indentation.tex
- + utils/haddock/doc/snippets/Snippet-List-Multiline-Item.html
- + utils/haddock/doc/snippets/Snippet-List-Multiline-Item.tex
- + utils/haddock/doc/snippets/Snippet-List-Nested-Item.html
- + utils/haddock/doc/snippets/Snippet-List-Nested-Item.tex
- + utils/haddock/doc/snippets/Snippet-List-Not-Newline.html
- + utils/haddock/doc/snippets/Snippet-List-Not-Newline.tex
- + utils/haddock/doc/snippets/Snippet-List-Not-Separated.html
- + utils/haddock/doc/snippets/Snippet-List-Not-Separated.tex
Changes:
=====================================
compiler/GHC/Linker/Dynamic.hs
=====================================
@@ -227,7 +227,6 @@ linkDynLib logger tmpfs dflags0 unit_env o_files dep_packages
runLink logger tmpfs linker_config (
map Option verbFlags
- ++ libmLinkOpts platform
++ [ Option "-o"
, FileOption "" output_fn
]
@@ -260,6 +259,7 @@ linkDynLib logger tmpfs dflags0 unit_env o_files dep_packages
-- driver is a more pragmatic solution.
++ [ Option "-Wl,--Bsymbolic,--experimental-pic,--unresolved-symbols=import-dynamic" | arch == ArchWasm32 ]
++ extra_ld_inputs
+ ++ libmLinkOpts platform
++ map Option lib_path_opts
++ map Option pkg_lib_path_opts
++ map Option pkg_link_opts
=====================================
docs/users_guide/eventlog-formats.rst
=====================================
@@ -221,14 +221,41 @@ Thread and scheduling events
* 11: BlockedOnDelay
* 12: BlockedOnSTM
* 13: BlockedOnDoProc
- * 16: BlockedOnMsgThrowTo
+ * 14--17: unused
+ * 18: BlockedOnMsgThrowTo
+ * 19: unused
* 20: BlockedOnMVarRead
:field ThreadId: thread id of thread being blocked on (only for some status
values)
The indicated thread has stopped running for the reason given by ``status``.
-
+
+ Historically, the GHC-internal status codes for the reasons why threads are
+ blocked were used more-or-less directly as the status codes emitted into the
+ eventlog. This is now recognised as a mistake and the GHC internal codes and
+ these eventlog stop thread codes are now independent. We are nevertheless
+ left with some historical warts:
+
+ * 14,15: these correspond to GHC internal status codes `BlockedOnGA` and
+ `BlockedOnGA_NoSend` that are no longer used (and may never have been
+ used by any released version of GHC).
+ * 16,17: these would be used by `BlockedOnCCall` and
+ `BlockedOnCCall_Interruptible` which are GHC-internal status codes, but
+ these are never and have never been emitted into the eventlog. This has
+ caused confusion, and many versions of the `ghc-events` package support
+ these status codes. Threads blocking on foreign calls use `ForeignCall`
+ above.
+ * 19: this would be used by `ThreadMigrating` which is a GHC-internal
+ status code, but this is never emitted into the eventlog. Threads
+ migrating use a separate event `MIGRATE_THREAD`.
+ * `BlockedOnMsgGlobalise`: this is supported by versions of `ghc-events` as
+ code 18, but it appears never to have been emitted by any released version
+ of GHC. Most likely it was related to the local-heap GC experiment that
+ was never released.
+
+ Errata: previous versions of this document stated that code 16 is
+ `BlockedOnMsgThrowTo`. It appears this was always incorrect.
.. event-type:: MIGRATE_THREAD
=====================================
m4/fptools_happy.m4
=====================================
@@ -28,13 +28,13 @@ then
else
fptools_cv_happy_version_display="none";
fi;
- failure_msg="Happy version == 1.20.* || >= 2.0.2 && < 2.2 is required to compile GHC. (Found: $fptools_cv_happy_version_display)"
+ failure_msg="Happy version == 1.20.* || >= 2.0.2 && < 2.3 is required to compile GHC. (Found: $fptools_cv_happy_version_display)"
FP_COMPARE_VERSIONS([$fptools_cv_happy_version],[-lt],[1.20.0],
[AC_MSG_ERROR([$failure_msg])])[]
FP_COMPARE_VERSIONS([$fptools_cv_happy_version],[-ge],[1.21.0],
FP_COMPARE_VERSIONS([$fptools_cv_happy_version], [-le], [2.0.1],
[AC_MSG_ERROR([$failure_msg])])[])[]
- FP_COMPARE_VERSIONS([$fptools_cv_happy_version],[-ge],[2.2.0],
+ FP_COMPARE_VERSIONS([$fptools_cv_happy_version],[-ge],[2.3.0],
[AC_MSG_ERROR([$failure_msg])])[]
fi
HappyVersion=$fptools_cv_happy_version;
=====================================
utils/haddock/doc/.gitignore
=====================================
@@ -1 +1,3 @@
-.build-html
\ No newline at end of file
+.build-html
+.build-latex
+!_static
=====================================
utils/haddock/doc/Makefile
=====================================
@@ -1,8 +1,13 @@
SPHINX_BUILD ?= sphinx-build
-all : html
+all : html pdf
.PHONY : html
+.PHONY : pdf
html :
$(SPHINX_BUILD) -b html . .build-html
+
+pdf :
+ $(SPHINX_BUILD) -b latex . .build-latex
+ cd .build-latex && make
=====================================
utils/haddock/doc/_static/haddock-custom.css
=====================================
@@ -0,0 +1,19 @@
+.result.admonition {
+ border: solid 3px #eee;
+ border-top: none;
+ background-color: transparent;
+ padding: 1px 0px 10px 10px;
+ margin: 0px 0px -20px 0px;
+ position: relative;
+ top: -18px;
+}
+
+.result.admonition p.admonition-title{
+ position: absolute;
+ visibility: hidden;
+}
+
+/* Use a small font size for code blocks so that they don't overflow. */
+pre {
+ font-size: 0.8em;
+}
=====================================
utils/haddock/doc/conf.py
=====================================
@@ -31,6 +31,12 @@ pygments_style = 'tango'
htmlhelp_basename = 'Haddockdoc'
+html_static_path = ['_static']
+
+html_css_files = [
+ 'haddock-custom.css',
+]
+
# -- Options for LaTeX output ---------------------------------------------
=====================================
utils/haddock/doc/markup.rst
=====================================
@@ -1004,99 +1004,162 @@ Itemized and Enumerated Lists
A bulleted item is represented by preceding a paragraph with either
“``*``” or “``-``”. A sequence of bulleted paragraphs is rendered as an
-itemized list in the generated documentation, e.g.: ::
+itemized list in the generated documentation, e.g.
- -- | This is a bulleted list:
- --
- -- * first item
- --
- -- * second item
+.. literalinclude:: snippets/Lists.hs
+ :lines: 3-7
+
+.. admonition:: Result
+ :class: result
+
+ .. only:: html
+
+ .. raw:: html
+ :file: snippets/Snippet-List-Bulleted.html
+
+ .. only:: latex
+
+ .. raw:: latex
+ :file: snippets/Snippet-List-Bulleted.tex
+
+.. warning::
+
+ Separate lists from any preceding markup with at least one blank line
+ otherwise the list and its items will be rendered with the preceding
+ content.
+
+.. literalinclude:: snippets/Lists.hs
+ :lines: 10-12
+
+.. admonition:: Result
+ :class: result
+
+ .. only:: html
+
+ .. raw:: html
+ :file: snippets/Snippet-List-Not-Separated.html
+
+ .. only:: latex
+
+ .. raw:: latex
+ :file: snippets/Snippet-List-Not-Separated.tex
An enumerated list is similar, except each paragraph must be preceded by
-either “``(n)``” or “``n.``” where n is any integer. e.g. ::
+either “``(n)``” or “``n.``” where n is any integer. e.g.
- -- | This is an enumerated list:
- --
- -- (1) first item
- --
- -- 2. second item
+.. literalinclude:: snippets/Lists.hs
+ :lines: 15-19
-Lists of the same type don't have to be separated by a newline: ::
+.. admonition:: Result
+ :class: result
- -- | This is an enumerated list:
- --
- -- (1) first item
- -- 2. second item
- --
- -- This is a bulleted list:
- --
- -- * first item
- -- * second item
+ .. only:: html
-You can have more than one line of content in a list element: ::
+ .. raw:: html
+ :file: snippets/Snippet-List-Enumerated.html
- -- |
- -- * first item
- -- and more content for the first item
- -- * second item
- -- and more content for the second item
+ .. only:: latex
+
+ .. raw:: latex
+ :file: snippets/Snippet-List-Enumerated.tex
+
+Lists of the same type don't have to be separated by a newline:
+
+.. literalinclude:: snippets/Lists.hs
+ :lines: 22-30
+
+.. admonition:: Result
+ :class: result
+
+ .. only:: html
+
+ .. raw:: html
+ :file: snippets/Snippet-List-Not-Newline.html
+
+ .. only:: latex
+
+ .. raw:: latex
+ :file: snippets/Snippet-List-Not-Newline.tex
+
+You can have more than one line of content in a list element:
+
+.. literalinclude:: snippets/Lists.hs
+ :lines: 33-37
+
+.. admonition:: Result
+ :class: result
+
+ .. only:: html
+
+ .. raw:: html
+ :file: snippets/Snippet-List-Multiline-Item.html
+
+ .. only:: latex
+
+ .. raw:: latex
+ :file: snippets/Snippet-List-Multiline-Item.tex
You can even nest whole paragraphs inside of list elements. The rules
are 4 spaces for each indentation level. You're required to use a
-newline before such nested paragraphs: ::
-
- {-|
- * Beginning of list
- This belongs to the list above!
+newline before such nested paragraphs:
- > nested
- > bird
- > tracks
+.. literalinclude:: snippets/Lists.hs
+ :lines: 40-61
- * Next list
- More of the indented list.
+.. admonition:: Result
+ :class: result
- * Deeper
+ .. only:: html
- @
- even code blocks work
- @
+ .. raw:: html
+ :file: snippets/Snippet-List-Nested-Item.html
- * Deeper
+ .. only:: latex
- 1. Even deeper!
- 2. No newline separation even in indented lists.
- -}
+ .. raw:: latex
+ :file: snippets/Snippet-List-Nested-Item.tex
The indentation of the first list item is honoured. That is, in the
following example the items are on the same level. Before Haddock
2.16.1, the second item would have been nested under the first item
-which was unexpected. ::
+which was unexpected.
- {-|
- * foo
+.. literalinclude:: snippets/Lists.hs
+ :lines: 64-68
- * bar
- -}
+.. admonition:: Result
+ :class: result
+
+ .. only:: html
+
+ .. raw:: html
+ :file: snippets/Snippet-List-Indentation.html
+
+ .. only:: latex
+
+ .. raw:: latex
+ :file: snippets/Snippet-List-Indentation.tex
Definition Lists
~~~~~~~~~~~~~~~~
-Definition lists are written as follows: ::
+Definition lists are written as follows:
- -- | This is a definition list:
- --
- -- [@foo@]: The description of @foo@.
- --
- -- [@bar@]: The description of @bar@.
+.. literalinclude:: snippets/Lists.hs
+ :lines: 71-75
+
+.. admonition:: Result
+ :class: result
+
+ .. only:: html
-To produce output something like this:
+ .. raw:: html
+ :file: snippets/Snippet-List-Definition.html
-``foo``
- The description of ``foo``.
+ .. only:: latex
-``bar``
- The description of ``bar``.
+ .. raw:: latex
+ :file: snippets/Snippet-List-Definition.tex
Each paragraph should be preceded by the “definition term” enclosed in
square brackets and followed by a colon. Other markup operators may be
=====================================
utils/haddock/doc/snippets/.gitignore
=====================================
@@ -0,0 +1,12 @@
+*.html
+*.tex
+haddock-bundle.min.js
+haddock.sty
+linuwial.css
+main.tex
+meta.json
+quick-jump.css
+synopsis.png
+
+!Snippet*.html
+!Snippet*.tex
=====================================
utils/haddock/doc/snippets/Lists.hs
=====================================
@@ -0,0 +1,76 @@
+module Lists where
+
+-- | This is a bulleted list:
+--
+-- * first item
+--
+-- * second item
+data Bulleted
+
+-- | __Missing blank lines__ before a list:
+-- * first item
+-- * second item
+data Before
+
+-- | This is an, (n) n., enumerated list:
+--
+-- (1) first item
+--
+-- 2. second item
+data Enumerated
+
+-- | This is an enumerated list, with items not separated by newlines:
+--
+-- (1) first item
+-- 2. second item
+--
+-- This is a bulleted list, with items not separated by newlines:
+--
+-- * first item
+-- * second item
+data NotNewline
+
+-- |
+-- * first item
+-- and more content for the first item
+-- * second item
+-- and more content for the second item
+data MultilineItem
+
+{-|
+* Beginning of list
+This belongs to the list above!
+
+ > nested
+ > bird
+ > tracks
+
+ * Next list
+ More of the indented list.
+
+ * Deeper
+
+ @
+ even code blocks work
+ @
+
+ * Deeper
+
+ 1. Even deeper!
+ 2. No newline separation even in indented lists.
+-}
+data NestedItem
+
+{-|
+ * foo
+
+ * bar
+-}
+data Indentation
+
+-- | This is a definition list:
+--
+-- [@foo@]: The description of @foo@.
+--
+-- [@bar@]: The description of @bar@.
+data DefinitionList
\ No newline at end of file
=====================================
utils/haddock/doc/snippets/Makefile
=====================================
@@ -0,0 +1,103 @@
+# \newcommand{\haddockbegindoc}{\hfill\\[1ex]}
+HDK_BEGIN := \\\\newcommand{\\haddockbegindoc}{\\hfill\\\\\[1ex]}
+
+# \newcommand{\haddockverb}{\small}
+HDK_VERB := \\\\newcommand{\\haddockverb}{\\small}
+
+# \newcommand{\haddocktt}[1]{{\small \texttt{#1}}}
+HDK_TT := \\\\newcommand{\\haddocktt}[1]{{\\small \\\\texttt{\#1}}}
+
+all: \
+ Snippet-List-Bulleted.html \
+ Snippet-List-Bulleted.tex \
+ Snippet-List-Not-Separated.html \
+ Snippet-List-Not-Separated.tex \
+ Snippet-List-Enumerated.html \
+ Snippet-List-Enumerated.tex \
+ Snippet-List-Not-Newline.html \
+ Snippet-List-Not-Newline.tex \
+ Snippet-List-Multiline-Item.html \
+ Snippet-List-Multiline-Item.tex \
+ Snippet-List-Nested-Item.html \
+ Snippet-List-Nested-Item.tex \
+ Snippet-List-Indentation.html \
+ Snippet-List-Indentation.tex \
+ Snippet-List-Definition.html \
+ Snippet-List-Definition.tex
+
+clean:
+ rm -f Lists*.html
+
+Lists.html: Lists.hs
+ haddock --html $^
+
+Lists.tex: Lists.hs
+ haddock --latex $^
+
+# Using pandoc-3.1.3
+Lists-Pretty.html: Lists.html
+ pandoc $^ -o $@
+
+# Using tex-fmt-0.4.1
+# nix profile install github:wgunderwood/tex-fmt
+Lists-Pretty.tex: Lists.tex
+ cp $^ $@
+ tex-fmt $@
+
+Snippet-List-Bulleted.html: Lists-Pretty.html
+ sed -n '48,52p;53q' $^ > $@
+
+Snippet-List-Bulleted.tex: Lists-Pretty.tex
+ echo "$(HDK_BEGIN)" > $@
+ sed -n '18,26p;27q' $^ >> $@
+
+Snippet-List-Not-Separated.html: Lists-Pretty.html
+ sed -n '59,60p;61q' $^ > $@
+
+Snippet-List-Not-Separated.tex: Lists-Pretty.tex
+ echo "$(HDK_BEGIN)" > $@
+ sed -n '33,36p;37q' $^ >> $@
+
+Snippet-List-Enumerated.html: Lists-Pretty.html
+ sed -n '68,72p;73q' $^ > $@
+
+Snippet-List-Enumerated.tex: Lists-Pretty.tex
+ echo "$(HDK_BEGIN)" > $@
+ sed -n '43,51p;52q' $^ >> $@
+
+Snippet-List-Not-Newline.html: Lists-Pretty.html
+ sed -n '80,89p;90q' $^ > $@
+
+Snippet-List-Not-Newline.tex: Lists-Pretty.tex
+ echo "$(HDK_BEGIN)" > $@
+ sed -n '58,74p;75q' $^ >> $@
+
+Snippet-List-Multiline-Item.html: Lists-Pretty.html
+ sed -n '97,100p;101q' $^ > $@
+
+Snippet-List-Multiline-Item.tex: Lists-Pretty.tex
+ echo "$(HDK_BEGIN)" > $@
+ sed -n '81,90p;91q' $^ >> $@
+
+Snippet-List-Nested-Item.html: Lists-Pretty.html
+ sed -n '108,127p;128q' $^ > $@
+
+Snippet-List-Nested-Item.tex: Lists-Pretty.tex
+ echo "$(HDK_BEGIN)" > $@
+ echo "$(HDK_VERB)" >> $@
+ sed -n '97,141p;142q' $^ >> $@
+
+Snippet-List-Indentation.html: Lists-Pretty.html
+ sed -n '135,138p;139q' $^ > $@
+
+Snippet-List-Indentation.tex: Lists-Pretty.tex
+ echo "$(HDK_BEGIN)" > $@
+ sed -n '148,155p;156q' $^ >> $@
+
+Snippet-List-Definition.html: Lists-Pretty.html
+ sed -n '146,156p;157q' $^ > $@
+
+Snippet-List-Definition.tex: Lists-Pretty.tex
+ echo "$(HDK_BEGIN)" > $@
+ echo "$(HDK_TT)" >> $@
+ sed -n '162,170p;171q' $^ >> $@
=====================================
utils/haddock/doc/snippets/Snippet-List-Bulleted.html
=====================================
@@ -0,0 +1,5 @@
+<p>This is a bulleted list:</p>
+<ul>
+<li>first item</li>
+<li>second item</li>
+</ul>
=====================================
utils/haddock/doc/snippets/Snippet-List-Bulleted.tex
=====================================
@@ -0,0 +1,10 @@
+\newcommand{\haddockbegindoc}{\hfill\\[1ex]}
+ {\haddockbegindoc
+ This is a bulleted list:\par
+ \vbox{
+ \begin{itemize}
+ \item
+ first item\par
+ \item
+ second item\par
+ \end{itemize}}}
=====================================
utils/haddock/doc/snippets/Snippet-List-Definition.html
=====================================
@@ -0,0 +1,11 @@
+<p>This is a definition list:</p>
+<dl>
+<dt><code>foo</code></dt>
+<dd>
+The description of <code>foo</code>.
+</dd>
+<dt><code>bar</code></dt>
+<dd>
+The description of <code>bar</code>.
+</dd>
+</dl>
=====================================
utils/haddock/doc/snippets/Snippet-List-Definition.tex
=====================================
@@ -0,0 +1,11 @@
+\newcommand{\haddockbegindoc}{\hfill\\[1ex]}
+\newcommand{\haddocktt}[1]{{\small \texttt{#1}}}
+ {\haddockbegindoc
+ This is a definition list:\par
+ \vbox{
+ \begin{description}
+ \item[\haddocktt{foo}]\hfill \par
+ The description of \haddocktt{foo}.
+ \item[\haddocktt{bar}]\hfill \par
+ The description of \haddocktt{bar}.
+ \end{description}}}
=====================================
utils/haddock/doc/snippets/Snippet-List-Enumerated.html
=====================================
@@ -0,0 +1,5 @@
+<p>This is an, (n) n., enumerated list:</p>
+<ol>
+<li>first item</li>
+<li>second item</li>
+</ol>
=====================================
utils/haddock/doc/snippets/Snippet-List-Enumerated.tex
=====================================
@@ -0,0 +1,10 @@
+\newcommand{\haddockbegindoc}{\hfill\\[1ex]}
+ {\haddockbegindoc
+ This is an, (n) n., enumerated list:\par
+ \vbox{
+ \begin{enumerate}
+ \item
+ first item\par
+ \item
+ second item\par
+ \end{enumerate}}}
=====================================
utils/haddock/doc/snippets/Snippet-List-Indentation.html
=====================================
@@ -0,0 +1,4 @@
+<ul>
+<li>foo</li>
+<li>bar</li>
+</ul>
=====================================
utils/haddock/doc/snippets/Snippet-List-Indentation.tex
=====================================
@@ -0,0 +1,9 @@
+\newcommand{\haddockbegindoc}{\hfill\\[1ex]}
+ {\haddockbegindoc
+ \vbox{
+ \begin{itemize}
+ \item
+ foo\par
+ \item
+ bar\par
+ \end{itemize}}}
=====================================
utils/haddock/doc/snippets/Snippet-List-Multiline-Item.html
=====================================
@@ -0,0 +1,4 @@
+<ul>
+<li>first item and more content for the first item</li>
+<li>second item and more content for the second item</li>
+</ul>
=====================================
utils/haddock/doc/snippets/Snippet-List-Multiline-Item.tex
=====================================
@@ -0,0 +1,11 @@
+\newcommand{\haddockbegindoc}{\hfill\\[1ex]}
+ {\haddockbegindoc
+ \vbox{
+ \begin{itemize}
+ \item
+ first item
+ and more content for the first item\par
+ \item
+ second item
+ and more content for the second item\par
+ \end{itemize}}}
=====================================
utils/haddock/doc/snippets/Snippet-List-Nested-Item.html
=====================================
@@ -0,0 +1,20 @@
+<ul>
+<li><p>Beginning of list This belongs to the list above!</p>
+<pre><code>nested
+bird
+tracks</code></pre>
+<ul>
+<li><p>Next list More of the indented list.</p>
+<ul>
+<li><p>Deeper</p>
+<pre><code>even code blocks work</code></pre>
+<ul>
+<li><p>Deeper</p>
+<ol>
+<li>Even deeper!</li>
+<li>No newline separation even in indented lists.</li>
+</ol></li>
+</ul></li>
+</ul></li>
+</ul></li>
+</ul>
=====================================
utils/haddock/doc/snippets/Snippet-List-Nested-Item.tex
=====================================
@@ -0,0 +1,47 @@
+\newcommand{\haddockbegindoc}{\hfill\\[1ex]}
+\newcommand{\haddockverb}{\small}
+ {\haddockbegindoc
+ \vbox{
+ \begin{itemize}
+ \item
+ Beginning of list
+ This belongs to the list above!\par
+ \begin{quote}
+ {\haddockverb
+ \begin{verbatim}
+nested
+bird
+tracks
+ \end{verbatim}}
+ \end{quote}
+ \vbox{
+ \begin{itemize}
+ \item
+ Next list
+ More of the indented list.\par
+ \vbox{
+ \begin{itemize}
+ \item
+ Deeper\par
+ \begin{quote}
+ {\haddockverb
+ \begin{verbatim}
+even code blocks work
+ \end{verbatim}}
+ \end{quote}
+ \vbox{
+ \begin{itemize}
+ \item
+ Deeper\par
+ \vbox{
+ \begin{enumerate}
+ \item
+ Even deeper!\par
+ \item
+ No newline separation even in
+ indented lists.\par
+ \end{enumerate}}
+ \end{itemize}}
+ \end{itemize}}
+ \end{itemize}}
+ \end{itemize}}}
=====================================
utils/haddock/doc/snippets/Snippet-List-Not-Newline.html
=====================================
@@ -0,0 +1,10 @@
+<p>This is an enumerated list, with items not separated by newlines:</p>
+<ol>
+<li>first item</li>
+<li>second item</li>
+</ol>
+<p>This is a bulleted list, with items not separated by newlines:</p>
+<ul>
+<li>first item</li>
+<li>second item</li>
+</ul>
=====================================
utils/haddock/doc/snippets/Snippet-List-Not-Newline.tex
=====================================
@@ -0,0 +1,18 @@
+\newcommand{\haddockbegindoc}{\hfill\\[1ex]}
+ {\haddockbegindoc
+ This is an enumerated list, with items not separated by newlines:\par
+ \vbox{
+ \begin{enumerate}
+ \item
+ first item\par
+ \item
+ second item\par
+ \end{enumerate}}
+ This is a bulleted list, with items not separated by newlines:\par
+ \vbox{
+ \begin{itemize}
+ \item
+ first item\par
+ \item
+ second item\par
+ \end{itemize}}}
=====================================
utils/haddock/doc/snippets/Snippet-List-Not-Separated.html
=====================================
@@ -0,0 +1,2 @@
+<p><strong>Missing blank lines</strong> before a list: * first item *
+second item</p>
=====================================
utils/haddock/doc/snippets/Snippet-List-Not-Separated.tex
=====================================
@@ -0,0 +1,5 @@
+\newcommand{\haddockbegindoc}{\hfill\\[1ex]}
+ {\haddockbegindoc
+ \textbf{Missing blank lines} before a list:
+ * first item
+ * second item\par}
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/45987fcec35aa76d9a9eb04ed2497d…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/45987fcec35aa76d9a9eb04ed2497d…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][master] Fix errors in the documentation of the eventlog STOP_THREAD status codes
by Marge Bot (@marge-bot) 17 Feb '26
by Marge Bot (@marge-bot) 17 Feb '26
17 Feb '26
Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC
Commits:
10b4d364 by Duncan Coutts at 2026-02-17T17:04:52-05:00
Fix errors in the documentation of the eventlog STOP_THREAD status codes
Fix the code for BlockedOnMsgThrowTo.
Document all the known historical warts.
Fixes issue #26867
- - - - -
1 changed file:
- docs/users_guide/eventlog-formats.rst
Changes:
=====================================
docs/users_guide/eventlog-formats.rst
=====================================
@@ -221,14 +221,41 @@ Thread and scheduling events
* 11: BlockedOnDelay
* 12: BlockedOnSTM
* 13: BlockedOnDoProc
- * 16: BlockedOnMsgThrowTo
+ * 14--17: unused
+ * 18: BlockedOnMsgThrowTo
+ * 19: unused
* 20: BlockedOnMVarRead
:field ThreadId: thread id of thread being blocked on (only for some status
values)
The indicated thread has stopped running for the reason given by ``status``.
-
+
+ Historically, the GHC-internal status codes for the reasons why threads are
+ blocked were used more-or-less directly as the status codes emitted into the
+ eventlog. This is now recognised as a mistake and the GHC internal codes and
+ these eventlog stop thread codes are now independent. We are nevertheless
+ left with some historical warts:
+
+ * 14,15: these correspond to GHC internal status codes `BlockedOnGA` and
+ `BlockedOnGA_NoSend` that are no longer used (and may never have been
+ used by any released version of GHC).
+ * 16,17: these would be used by `BlockedOnCCall` and
+ `BlockedOnCCall_Interruptible` which are GHC-internal status codes, but
+ these are never and have never been emitted into the eventlog. This has
+ caused confusion, and many versions of the `ghc-events` package support
+ these status codes. Threads blocking on foreign calls use `ForeignCall`
+ above.
+ * 19: this would be used by `ThreadMigrating` which is a GHC-internal
+ status code, but this is never emitted into the eventlog. Threads
+ migrating use a separate event `MIGRATE_THREAD`.
+ * `BlockedOnMsgGlobalise`: this is supported by versions of `ghc-events` as
+ code 18, but it appears never to have been emitted by any released version
+ of GHC. Most likely it was related to the local-heap GC experiment that
+ was never released.
+
+ Errata: previous versions of this document stated that code 16 is
+ `BlockedOnMsgThrowTo`. It appears this was always incorrect.
.. event-type:: MIGRATE_THREAD
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/10b4d3641f6fe7a7443bd621d62d135…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/10b4d3641f6fe7a7443bd621d62d135…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC
Commits:
4f2840f2 by Brian J. Cardiff at 2026-02-17T17:04:08-05:00
configure: Accept happy-2.2
In Jan 2026 happy-2.2 was released. The most sensible change is https://github.com/haskell/happy/issues/335 which didn't trigger in a fresh build
- - - - -
1 changed file:
- m4/fptools_happy.m4
Changes:
=====================================
m4/fptools_happy.m4
=====================================
@@ -28,13 +28,13 @@ then
else
fptools_cv_happy_version_display="none";
fi;
- failure_msg="Happy version == 1.20.* || >= 2.0.2 && < 2.2 is required to compile GHC. (Found: $fptools_cv_happy_version_display)"
+ failure_msg="Happy version == 1.20.* || >= 2.0.2 && < 2.3 is required to compile GHC. (Found: $fptools_cv_happy_version_display)"
FP_COMPARE_VERSIONS([$fptools_cv_happy_version],[-lt],[1.20.0],
[AC_MSG_ERROR([$failure_msg])])[]
FP_COMPARE_VERSIONS([$fptools_cv_happy_version],[-ge],[1.21.0],
FP_COMPARE_VERSIONS([$fptools_cv_happy_version], [-le], [2.0.1],
[AC_MSG_ERROR([$failure_msg])])[])[]
- FP_COMPARE_VERSIONS([$fptools_cv_happy_version],[-ge],[2.2.0],
+ FP_COMPARE_VERSIONS([$fptools_cv_happy_version],[-ge],[2.3.0],
[AC_MSG_ERROR([$failure_msg])])[]
fi
HappyVersion=$fptools_cv_happy_version;
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/4f2840f2bb729ef1a6660f9f5c46906…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/4f2840f2bb729ef1a6660f9f5c46906…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
Teo Camarasu pushed new branch wip/T26930 at Glasgow Haskell Compiler / GHC
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/tree/wip/T26930
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/T26865] ghc-internal: Move GHC.Internal.Data.Bool to base
by Teo Camarasu (@teo) 17 Feb '26
by Teo Camarasu (@teo) 17 Feb '26
17 Feb '26
Teo Camarasu pushed to branch wip/T26865 at Glasgow Haskell Compiler / GHC
Commits:
d6a9780c by Teo Camarasu at 2026-02-17T21:38:19+00:00
ghc-internal: Move GHC.Internal.Data.Bool to base
This is a tiny module that only defines bool :: Bool -> a -> a -> a. We can just move this to base and delete it from ghc-internal. If we want this functionality there we can just use a case statement or if-then expression.
Resolves 26865
- - - - -
31 changed files:
- libraries/base/src/Data/Bool.hs
- libraries/base/src/Data/List.hs
- libraries/base/src/Data/List/NubOrdSet.hs
- libraries/base/src/GHC/Exts.hs
- libraries/ghc-internal/ghc-internal.cabal.in
- − libraries/ghc-internal/src/GHC/Internal/Data/Bool.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Foldable.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Function.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Type/Bool.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Type/Ord.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Version.hs
- libraries/ghc-internal/src/GHC/Internal/IO/FD.hs
- libraries/ghc-internal/src/GHC/Internal/JS/Prim.hs
- libraries/ghc-internal/src/GHC/Internal/System/IO/OS.hs
- libraries/ghc-internal/src/GHC/Internal/TH/Lift.hs
- libraries/ghc-internal/src/GHC/Internal/TypeError.hs
- utils/haddock/html-test/ref/A.html
- utils/haddock/html-test/ref/Bug1004.html
- utils/haddock/html-test/ref/Bug1033.html
- utils/haddock/html-test/ref/Bug1103.html
- utils/haddock/html-test/ref/Bug548.html
- utils/haddock/html-test/ref/Bug923.html
- utils/haddock/html-test/ref/ConstructorPatternExport.html
- utils/haddock/html-test/ref/FunArgs.html
- utils/haddock/html-test/ref/Hash.html
- utils/haddock/html-test/ref/Instances.html
- utils/haddock/html-test/ref/LinearTypes.html
- utils/haddock/html-test/ref/RedactTypeSynonyms.html
- utils/haddock/html-test/ref/T23616.html
- utils/haddock/html-test/ref/Test.html
- utils/haddock/html-test/ref/TypeFamilies3.html
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/d6a9780c081cc04423afdb9ee5c8cf1…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/d6a9780c081cc04423afdb9ee5c8cf1…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/T26865] ghc-internal: Move GHC.Internal.Data.Bool to base
by Teo Camarasu (@teo) 17 Feb '26
by Teo Camarasu (@teo) 17 Feb '26
17 Feb '26
Teo Camarasu pushed to branch wip/T26865 at Glasgow Haskell Compiler / GHC
Commits:
7a308655 by Teo Camarasu at 2026-02-17T21:16:24+00:00
ghc-internal: Move GHC.Internal.Data.Bool to base
This is a tiny module that only defines bool :: Bool -> a -> a -> a. We can just move this to base and delete it from ghc-internal. If we want this functionality there we can just use a case statement or if-then expression.
Resolves 26865
- - - - -
29 changed files:
- libraries/base/src/Data/Bool.hs
- libraries/base/src/Data/List.hs
- libraries/base/src/Data/List/NubOrdSet.hs
- libraries/ghc-internal/ghc-internal.cabal.in
- − libraries/ghc-internal/src/GHC/Internal/Data/Bool.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Foldable.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Function.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Type/Bool.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Type/Ord.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Version.hs
- libraries/ghc-internal/src/GHC/Internal/IO/FD.hs
- libraries/ghc-internal/src/GHC/Internal/JS/Prim.hs
- libraries/ghc-internal/src/GHC/Internal/System/IO/OS.hs
- libraries/ghc-internal/src/GHC/Internal/TH/Lift.hs
- libraries/ghc-internal/src/GHC/Internal/TypeError.hs
- utils/haddock/html-test/ref/A.html
- utils/haddock/html-test/ref/Bug1004.html
- utils/haddock/html-test/ref/Bug1033.html
- utils/haddock/html-test/ref/Bug1103.html
- utils/haddock/html-test/ref/Bug548.html
- utils/haddock/html-test/ref/Bug923.html
- utils/haddock/html-test/ref/ConstructorPatternExport.html
- utils/haddock/html-test/ref/FunArgs.html
- utils/haddock/html-test/ref/Instances.html
- utils/haddock/html-test/ref/LinearTypes.html
- utils/haddock/html-test/ref/RedactTypeSynonyms.html
- utils/haddock/html-test/ref/T23616.html
- utils/haddock/html-test/ref/Test.html
- utils/haddock/html-test/ref/TypeFamilies3.html
Changes:
=====================================
libraries/base/src/Data/Bool.hs
=====================================
@@ -24,4 +24,39 @@ module Data.Bool
bool
) where
-import GHC.Internal.Data.Bool
\ No newline at end of file
+import Prelude (Bool(..), (&&), (||), not, otherwise)
+
+-- $setup
+-- >>> import Prelude
+
+-- | Case analysis for the 'Bool' type. @'bool' f t p@ evaluates to @f@
+-- when @p@ is 'False', and evaluates to @t@ when @p@ is 'True'.
+--
+-- This is equivalent to @if p then t else f@; that is, one can
+-- think of it as an if-then-else construct with its arguments
+-- reordered.
+--
+-- @since base-4.7.0.0
+--
+-- ==== __Examples__
+--
+-- Basic usage:
+--
+-- >>> bool "foo" "bar" True
+-- "bar"
+-- >>> bool "foo" "bar" False
+-- "foo"
+--
+-- Confirm that @'bool' f t p@ and @if p then t else f@ are
+-- equivalent:
+--
+-- >>> let p = True; f = "bar"; t = "foo"
+-- >>> bool f t p == if p then t else f
+-- True
+-- >>> let p = False
+-- >>> bool f t p == if p then t else f
+-- True
+--
+bool :: a -> a -> Bool -> a
+bool f _ False = f
+bool _ t True = t
=====================================
libraries/base/src/Data/List.hs
=====================================
@@ -184,7 +184,7 @@ module Data.List
genericReplicate
) where
-import GHC.Internal.Data.Bool (otherwise)
+import Data.Bool (otherwise)
import GHC.Internal.Data.Function (const)
import GHC.Internal.Data.List
import GHC.Internal.Data.List.NonEmpty (NonEmpty(..))
=====================================
libraries/base/src/Data/List/NubOrdSet.hs
=====================================
@@ -11,7 +11,7 @@ module Data.List.NubOrdSet (
insert,
) where
-import GHC.Internal.Data.Bool (Bool(..))
+import Data.Bool (Bool(..))
import GHC.Internal.Data.Function ((.))
import GHC.Internal.Data.Ord (Ordering(..))
=====================================
libraries/ghc-internal/ghc-internal.cabal.in
=====================================
@@ -140,7 +140,6 @@ Library
GHC.Internal.Control.Monad.ST.Imp
GHC.Internal.Control.Monad.ST.Lazy.Imp
GHC.Internal.Data.Bits
- GHC.Internal.Data.Bool
GHC.Internal.Data.Coerce
GHC.Internal.Data.Data
GHC.Internal.Data.Dynamic
=====================================
libraries/ghc-internal/src/GHC/Internal/Data/Bool.hs deleted
=====================================
@@ -1,64 +0,0 @@
-{-# LANGUAGE Trustworthy #-}
-{-# LANGUAGE NoImplicitPrelude #-}
-
------------------------------------------------------------------------------
--- |
--- Module : GHC.Internal.Data.Bool
--- Copyright : (c) The University of Glasgow 2001
--- License : BSD-style (see the file libraries/base/LICENSE)
---
--- Maintainer : libraries(a)haskell.org
--- Stability : stable
--- Portability : portable
---
--- The 'Bool' type and related functions.
---
------------------------------------------------------------------------------
-
-module GHC.Internal.Data.Bool (
- -- * Booleans
- Bool(..),
- -- ** Operations
- (&&),
- (||),
- not,
- otherwise,
- bool,
- ) where
-
-import GHC.Internal.Base
-
--- $setup
--- >>> import Prelude
-
--- | Case analysis for the 'Bool' type. @'bool' f t p@ evaluates to @f@
--- when @p@ is 'False', and evaluates to @t@ when @p@ is 'True'.
---
--- This is equivalent to @if p then t else f@; that is, one can
--- think of it as an if-then-else construct with its arguments
--- reordered.
---
--- @since base-4.7.0.0
---
--- ==== __Examples__
---
--- Basic usage:
---
--- >>> bool "foo" "bar" True
--- "bar"
--- >>> bool "foo" "bar" False
--- "foo"
---
--- Confirm that @'bool' f t p@ and @if p then t else f@ are
--- equivalent:
---
--- >>> let p = True; f = "bar"; t = "foo"
--- >>> bool f t p == if p then t else f
--- True
--- >>> let p = False
--- >>> bool f t p == if p then t else f
--- True
---
-bool :: a -> a -> Bool -> a
-bool f _ False = f
-bool _ t True = t
=====================================
libraries/ghc-internal/src/GHC/Internal/Data/Foldable.hs
=====================================
@@ -50,7 +50,6 @@ module GHC.Internal.Data.Foldable (
find
) where
-import GHC.Internal.Data.Bool
import GHC.Internal.Data.Either
import GHC.Internal.Data.Eq
import GHC.Internal.Data.Functor.Utils (Max(..), Min(..), (#.))
=====================================
libraries/ghc-internal/src/GHC/Internal/Data/Function.hs
=====================================
@@ -30,8 +30,7 @@ module GHC.Internal.Data.Function
, applyWhen
) where
-import GHC.Internal.Base ( TYPE, ($), (.), id, const, flip )
-import GHC.Internal.Data.Bool ( Bool(..) )
+import GHC.Internal.Base ( TYPE, Bool(..), ($), (.), id, const, flip )
infixl 0 `on`
infixl 1 &
@@ -171,7 +170,7 @@ x & f = f x
-- | 'applyWhen' applies a function to a value if a condition is true,
-- otherwise, it returns the value unchanged.
--
--- It is equivalent to @'flip' ('GHC.Internal.Data.Bool.bool' 'id')@.
+-- It is equivalent to @'flip' ('Data.Bool.bool' 'id')@.
--
-- ==== __Examples__
--
=====================================
libraries/ghc-internal/src/GHC/Internal/Data/Type/Bool.hs
=====================================
@@ -1,7 +1,7 @@
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE PolyKinds #-}
-{-# LANGUAGE Safe #-}
+{-# LANGUAGE Trustworthy #-}
{-# LANGUAGE TypeFamilyDependencies #-}
{-# LANGUAGE TypeOperators #-}
@@ -23,7 +23,7 @@ module GHC.Internal.Data.Type.Bool (
If, type (&&), type (||), Not
) where
-import GHC.Internal.Data.Bool
+import GHC.Internal.Base
-- This needs to be in base because (&&) is used in Data.Type.Equality.
-- The other functions do not need to be in base, but seemed to be appropriate
=====================================
libraries/ghc-internal/src/GHC/Internal/Data/Type/Ord.hs
=====================================
@@ -34,14 +34,11 @@ module GHC.Internal.Data.Type.Ord (
, OrdCond
) where
-import GHC.Internal.Show(Show(..))
+import GHC.Internal.Base
+import GHC.Internal.Show (Show(..))
import GHC.Internal.TypeError
import GHC.Internal.TypeLits.Internal
import GHC.Internal.TypeNats.Internal
-import GHC.Internal.Types (type (~), Char)
-import GHC.Internal.Data.Bool
-import GHC.Internal.Data.Eq
-import GHC.Internal.Data.Ord
-- | 'Compare' branches on the kind of its arguments to either compare by
-- 'Symbol' or 'Nat'.
=====================================
libraries/ghc-internal/src/GHC/Internal/Data/Version.hs
=====================================
@@ -37,13 +37,12 @@ module GHC.Internal.Data.Version (
) where
import GHC.Internal.Data.Functor ( Functor(..) )
-import GHC.Internal.Data.Bool ( (&&) )
import GHC.Internal.Data.Eq
import GHC.Internal.Int ( Int )
import GHC.Internal.Data.List ( map, sort, concat, concatMap, intersperse, (++) )
import GHC.Internal.Data.Ord
import GHC.Internal.Data.String ( String )
-import GHC.Internal.Base ( Applicative(..) )
+import GHC.Internal.Base ( Applicative(..), (&&) )
import GHC.Internal.Generics
import GHC.Internal.Unicode ( isDigit, isAlphaNum )
import GHC.Internal.Read
=====================================
libraries/ghc-internal/src/GHC/Internal/IO/FD.hs
=====================================
@@ -49,7 +49,6 @@ import GHC.Internal.Conc.IO
import GHC.Internal.IO.Exception
#if defined(mingw32_HOST_OS)
import GHC.Internal.Windows
-import GHC.Internal.Data.Bool
import GHC.Internal.IO.SubSystem ((<!>))
import GHC.Internal.Foreign.Storable
#endif
@@ -717,7 +716,7 @@ asyncReadRawBufferPtr loc !fd !buf !off !len = do
if l == (-1)
then let sock_errno = c_maperrno_func (fromIntegral rc)
non_sock_errno = Errno (fromIntegral rc)
- errno = bool non_sock_errno sock_errno (fdIsSocket fd)
+ errno = if fdIsSocket fd then sock_errno else non_sock_errno
in ioError (errnoToIOError loc errno Nothing Nothing)
else return (fromIntegral l)
@@ -728,7 +727,7 @@ asyncWriteRawBufferPtr loc !fd !buf !off !len = do
if l == (-1)
then let sock_errno = c_maperrno_func (fromIntegral rc)
non_sock_errno = Errno (fromIntegral rc)
- errno = bool non_sock_errno sock_errno (fdIsSocket fd)
+ errno = if fdIsSocket fd then sock_errno else non_sock_errno
in ioError (errnoToIOError loc errno Nothing Nothing)
else return (fromIntegral l)
@@ -740,7 +739,7 @@ blockingReadRawBufferPtr loc !fd !buf !off !len
let start_ptr = buf `plusPtr` off
recv_ret = c_safe_recv (fdFD fd) start_ptr (fromIntegral len) 0
read_ret = c_safe_read (fdFD fd) start_ptr (fromIntegral len)
- r <- bool read_ret recv_ret (fdIsSocket fd)
+ r <- if fdIsSocket fd then recv_ret else read_ret
when ((fdIsSocket fd) && (r == -1)) c_maperrno
return r
-- We trust read() to give us the correct errno but recv(), as a
@@ -753,7 +752,7 @@ blockingWriteRawBufferPtr loc !fd !buf !off !len
let start_ptr = buf `plusPtr` off
send_ret = c_safe_send (fdFD fd) start_ptr (fromIntegral len) 0
write_ret = c_safe_write (fdFD fd) start_ptr (fromIntegral len)
- r <- bool write_ret send_ret (fdIsSocket fd)
+ r <- if fdIsSocket fd then send_ret else write_ret
when (r == -1) c_maperrno
return r
-- We don't trust write() to give us the correct errno, and
=====================================
libraries/ghc-internal/src/GHC/Internal/JS/Prim.hs
=====================================
@@ -46,7 +46,6 @@ import GHC.Internal.Types
import qualified GHC.Internal.Exception as Ex
import qualified GHC.Internal.CString as GHC
import GHC.Internal.IO
-import GHC.Internal.Data.Bool
import GHC.Internal.Base
import GHC.Internal.Show
=====================================
libraries/ghc-internal/src/GHC/Internal/System/IO/OS.hs
=====================================
@@ -1,4 +1,4 @@
-{-# LANGUAGE Safe #-}
+{-# LANGUAGE Trustworthy #-}
{-# LANGUAGE CPP #-}
{-# LANGUAGE RankNTypes #-}
@@ -23,14 +23,12 @@ module GHC.Internal.System.IO.OS
)
where
+import GHC.Internal.Base
import GHC.Internal.Control.Monad (return)
import GHC.Internal.Control.Concurrent.MVar (MVar)
import GHC.Internal.Control.Exception (mask)
import GHC.Internal.Data.Function (const, (.), ($))
import GHC.Internal.Data.Functor (fmap)
-#if defined(mingw32_HOST_OS)
-import GHC.Internal.Data.Bool (otherwise)
-#endif
import GHC.Internal.Data.Maybe (Maybe (Nothing), maybe)
#if defined(mingw32_HOST_OS)
import GHC.Internal.Data.Maybe (Maybe (Just))
=====================================
libraries/ghc-internal/src/GHC/Internal/TH/Lift.hs
=====================================
@@ -34,7 +34,6 @@ import GHC.Internal.TH.Monad
import qualified GHC.Internal.TH.Lib as Lib (litE) -- See wrinkle (W4) of Note [Tracking dependencies on primitives]
import GHC.Internal.Data.Either
-import GHC.Internal.Data.Bool
import GHC.Internal.Base hiding (NonEmpty(..), Type, Module, inline)
import GHC.Internal.Data.NonEmpty (NonEmpty(..))
import GHC.Internal.Integer
=====================================
libraries/ghc-internal/src/GHC/Internal/TypeError.hs
=====================================
@@ -31,8 +31,7 @@ module GHC.Internal.TypeError
, Unsatisfiable, unsatisfiable
) where
-import GHC.Internal.Data.Bool
-import GHC.Internal.Types (TYPE, Constraint, Symbol)
+import GHC.Internal.Types (TYPE, Bool(True), Constraint, Symbol)
{- Note [Custom type errors]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
=====================================
utils/haddock/html-test/ref/A.html
=====================================
@@ -70,7 +70,7 @@
><li class="src short"
><a href="#"
>test2</a
- > :: <a href="#" title="Data.Bool"
+ > :: <a href="#" title="GHC.Exts"
>Bool</a
></li
><li class="src short"
@@ -131,7 +131,7 @@
><p class="src"
><a id="v:test2" class="def"
>test2</a
- > :: <a href="#" title="Data.Bool"
+ > :: <a href="#" title="GHC.Exts"
>Bool</a
> <a href="#" class="selflink"
>#</a
=====================================
utils/haddock/html-test/ref/Bug1004.html
=====================================
@@ -210,7 +210,7 @@
>D1</a
> ('<a href="#" title="GHC.Generics"
>MetaData</a
- > "Product" "Data.Functor.Product" "base" '<a href="#" title="Data.Bool"
+ > "Product" "Data.Functor.Product" "base" '<a href="#" title="GHC.Exts"
>False</a
>) (<a href="#" title="GHC.Generics"
>C1</a
@@ -218,7 +218,7 @@
>MetaCons</a
> "Pair" '<a href="#" title="GHC.Generics"
>PrefixI</a
- > '<a href="#" title="Data.Bool"
+ > '<a href="#" title="GHC.Exts"
>False</a
>) (<a href="#" title="GHC.Generics"
>S1</a
@@ -505,13 +505,13 @@
><p class="src"
><a href="#"
>liftEq</a
- > :: (a -> b -> <a href="#" title="Data.Bool"
+ > :: (a -> b -> <a href="#" title="GHC.Exts"
>Bool</a
>) -> <a href="#" title="Bug1004"
>Product</a
> f g a -> <a href="#" title="Bug1004"
>Product</a
- > f g b -> <a href="#" title="Data.Bool"
+ > f g b -> <a href="#" title="GHC.Exts"
>Bool</a
> <a href="#" class="selflink"
>#</a
@@ -1553,7 +1553,7 @@
>null</a
> :: <a href="#" title="Bug1004"
>Product</a
- > f g a -> <a href="#" title="Data.Bool"
+ > f g a -> <a href="#" title="GHC.Exts"
>Bool</a
> <a href="#" class="selflink"
>#</a
@@ -1575,7 +1575,7 @@
>Eq</a
> a => a -> <a href="#" title="Bug1004"
>Product</a
- > f g a -> <a href="#" title="Data.Bool"
+ > f g a -> <a href="#" title="GHC.Exts"
>Bool</a
> <a href="#" class="selflink"
>#</a
@@ -1983,7 +1983,7 @@
>Product</a
> f g a -> <a href="#" title="Bug1004"
>Product</a
- > f g a -> <a href="#" title="Data.Bool"
+ > f g a -> <a href="#" title="GHC.Exts"
>Bool</a
> <a href="#" class="selflink"
>#</a
@@ -1995,7 +1995,7 @@
>Product</a
> f g a -> <a href="#" title="Bug1004"
>Product</a
- > f g a -> <a href="#" title="Data.Bool"
+ > f g a -> <a href="#" title="GHC.Exts"
>Bool</a
> <a href="#" class="selflink"
>#</a
@@ -2065,7 +2065,7 @@
>Product</a
> f g a -> <a href="#" title="Bug1004"
>Product</a
- > f g a -> <a href="#" title="Data.Bool"
+ > f g a -> <a href="#" title="GHC.Exts"
>Bool</a
> <a href="#" class="selflink"
>#</a
@@ -2077,7 +2077,7 @@
>Product</a
> f g a -> <a href="#" title="Bug1004"
>Product</a
- > f g a -> <a href="#" title="Data.Bool"
+ > f g a -> <a href="#" title="GHC.Exts"
>Bool</a
> <a href="#" class="selflink"
>#</a
@@ -2089,7 +2089,7 @@
>Product</a
> f g a -> <a href="#" title="Bug1004"
>Product</a
- > f g a -> <a href="#" title="Data.Bool"
+ > f g a -> <a href="#" title="GHC.Exts"
>Bool</a
> <a href="#" class="selflink"
>#</a
@@ -2101,7 +2101,7 @@
>Product</a
> f g a -> <a href="#" title="Bug1004"
>Product</a
- > f g a -> <a href="#" title="Data.Bool"
+ > f g a -> <a href="#" title="GHC.Exts"
>Bool</a
> <a href="#" class="selflink"
>#</a
@@ -2471,7 +2471,7 @@
>D1</a
> ('<a href="#" title="GHC.Generics"
>MetaData</a
- > "Product" "Data.Functor.Product" "base" '<a href="#" title="Data.Bool"
+ > "Product" "Data.Functor.Product" "base" '<a href="#" title="GHC.Exts"
>False</a
>) (<a href="#" title="GHC.Generics"
>C1</a
@@ -2479,7 +2479,7 @@
>MetaCons</a
> "Pair" '<a href="#" title="GHC.Generics"
>PrefixI</a
- > '<a href="#" title="Data.Bool"
+ > '<a href="#" title="GHC.Exts"
>False</a
>) (<a href="#" title="GHC.Generics"
>S1</a
@@ -2768,7 +2768,7 @@
>D1</a
> ('<a href="#" title="GHC.Generics"
>MetaData</a
- > "Product" "Data.Functor.Product" "base" '<a href="#" title="Data.Bool"
+ > "Product" "Data.Functor.Product" "base" '<a href="#" title="GHC.Exts"
>False</a
>) (<a href="#" title="GHC.Generics"
>C1</a
@@ -2776,7 +2776,7 @@
>MetaCons</a
> "Pair" '<a href="#" title="GHC.Generics"
>PrefixI</a
- > '<a href="#" title="Data.Bool"
+ > '<a href="#" title="GHC.Exts"
>False</a
>) (<a href="#" title="GHC.Generics"
>S1</a
@@ -2862,7 +2862,7 @@
>D1</a
> ('<a href="#" title="GHC.Generics"
>MetaData</a
- > "Product" "Data.Functor.Product" "base" '<a href="#" title="Data.Bool"
+ > "Product" "Data.Functor.Product" "base" '<a href="#" title="GHC.Exts"
>False</a
>) (<a href="#" title="GHC.Generics"
>C1</a
@@ -2870,7 +2870,7 @@
>MetaCons</a
> "Pair" '<a href="#" title="GHC.Generics"
>PrefixI</a
- > '<a href="#" title="Data.Bool"
+ > '<a href="#" title="GHC.Exts"
>False</a
>) (<a href="#" title="GHC.Generics"
>S1</a
=====================================
utils/haddock/html-test/ref/Bug1033.html
=====================================
@@ -148,7 +148,7 @@
>D1</a
> ('<a href="#" title="GHC.Generics"
>MetaData</a
- > "Foo" "Bug1033" "main" '<a href="#" title="Data.Bool"
+ > "Foo" "Bug1033" "main" '<a href="#" title="GHC.Exts"
>False</a
>) (<a href="#" title="GHC.Generics"
>C1</a
@@ -156,7 +156,7 @@
>MetaCons</a
> "Foo" '<a href="#" title="GHC.Generics"
>PrefixI</a
- > '<a href="#" title="Data.Bool"
+ > '<a href="#" title="GHC.Exts"
>False</a
>) (<a href="#" title="GHC.Generics"
>U1</a
@@ -241,7 +241,7 @@
>D1</a
> ('<a href="#" title="GHC.Generics"
>MetaData</a
- > "Foo" "Bug1033" "main" '<a href="#" title="Data.Bool"
+ > "Foo" "Bug1033" "main" '<a href="#" title="GHC.Exts"
>False</a
>) (<a href="#" title="GHC.Generics"
>C1</a
@@ -249,7 +249,7 @@
>MetaCons</a
> "Foo" '<a href="#" title="GHC.Generics"
>PrefixI</a
- > '<a href="#" title="Data.Bool"
+ > '<a href="#" title="GHC.Exts"
>False</a
>) (<a href="#" title="GHC.Generics"
>U1</a
=====================================
utils/haddock/html-test/ref/Bug1103.html
=====================================
@@ -80,7 +80,7 @@
>data</span
> <a href="#" title="Bug1103"
>Foo1</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
></span
> <a href="#" class="selflink"
@@ -103,7 +103,7 @@
>data</span
> <a href="#" title="Bug1103"
>Foo1</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
> = <a id="v:Foo1Bool" class="def"
>Foo1Bool</a
@@ -218,7 +218,7 @@
>data</span
> <a href="#" title="Bug1103"
>Foo2</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
></span
> <a href="#" class="selflink"
@@ -241,7 +241,7 @@
>data</span
> <a href="#" title="Bug1103"
>Foo2</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
> = <a id="v:Foo2Bool" class="def"
>Foo2Bool</a
@@ -476,7 +476,7 @@
>data</span
> <a href="#" title="Bug1103"
>Foo3</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
></span
> <a href="#" class="selflink"
@@ -499,7 +499,7 @@
>data</span
> <a href="#" title="Bug1103"
>Foo3</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
> = <a id="v:Foo3Bool" class="def"
>Foo3Bool</a
=====================================
utils/haddock/html-test/ref/Bug548.html
=====================================
@@ -186,7 +186,7 @@
>D1</a
> ('<a href="#" title="GHC.Generics"
>MetaData</a
- > "WrappedArrow" "Control.Applicative" "base" '<a href="#" title="Data.Bool"
+ > "WrappedArrow" "Control.Applicative" "base" '<a href="#" title="GHC.Exts"
>True</a
>) (<a href="#" title="GHC.Generics"
>C1</a
@@ -194,7 +194,7 @@
>MetaCons</a
> "WrapArrow" '<a href="#" title="GHC.Generics"
>PrefixI</a
- > '<a href="#" title="Data.Bool"
+ > '<a href="#" title="GHC.Exts"
>True</a
>) (<a href="#" title="GHC.Generics"
>S1</a
@@ -814,7 +814,7 @@
>D1</a
> ('<a href="#" title="GHC.Generics"
>MetaData</a
- > "WrappedArrow" "Control.Applicative" "base" '<a href="#" title="Data.Bool"
+ > "WrappedArrow" "Control.Applicative" "base" '<a href="#" title="GHC.Exts"
>True</a
>) (<a href="#" title="GHC.Generics"
>C1</a
@@ -822,7 +822,7 @@
>MetaCons</a
> "WrapArrow" '<a href="#" title="GHC.Generics"
>PrefixI</a
- > '<a href="#" title="Data.Bool"
+ > '<a href="#" title="GHC.Exts"
>True</a
>) (<a href="#" title="GHC.Generics"
>S1</a
@@ -925,7 +925,7 @@
>D1</a
> ('<a href="#" title="GHC.Generics"
>MetaData</a
- > "WrappedArrow" "Control.Applicative" "base" '<a href="#" title="Data.Bool"
+ > "WrappedArrow" "Control.Applicative" "base" '<a href="#" title="GHC.Exts"
>True</a
>) (<a href="#" title="GHC.Generics"
>C1</a
@@ -933,7 +933,7 @@
>MetaCons</a
> "WrapArrow" '<a href="#" title="GHC.Generics"
>PrefixI</a
- > '<a href="#" title="Data.Bool"
+ > '<a href="#" title="GHC.Exts"
>True</a
>) (<a href="#" title="GHC.Generics"
>S1</a
@@ -995,7 +995,7 @@
>D1</a
> ('<a href="#" title="GHC.Generics"
>MetaData</a
- > "WrappedArrow" "Control.Applicative" "base" '<a href="#" title="Data.Bool"
+ > "WrappedArrow" "Control.Applicative" "base" '<a href="#" title="GHC.Exts"
>True</a
>) (<a href="#" title="GHC.Generics"
>C1</a
@@ -1003,7 +1003,7 @@
>MetaCons</a
> "WrapArrow" '<a href="#" title="GHC.Generics"
>PrefixI</a
- > '<a href="#" title="Data.Bool"
+ > '<a href="#" title="GHC.Exts"
>True</a
>) (<a href="#" title="GHC.Generics"
>S1</a
=====================================
utils/haddock/html-test/ref/Bug923.html
=====================================
@@ -202,7 +202,7 @@
>Type</a
>, <a href="#" title="Data.Kind"
>Type</a
- >)) -> <a href="#" title="Data.Bool"
+ >)) -> <a href="#" title="GHC.Exts"
>Bool</a
> <a href="#" class="selflink"
>#</a
@@ -226,7 +226,7 @@
>Type</a
>, <a href="#" title="Data.Kind"
>Type</a
- >)) -> <a href="#" title="Data.Bool"
+ >)) -> <a href="#" title="GHC.Exts"
>Bool</a
> <a href="#" class="selflink"
>#</a
=====================================
utils/haddock/html-test/ref/ConstructorPatternExport.html
=====================================
@@ -69,7 +69,7 @@
>pattern</span
> <a id="v:MyRecCons" class="def"
>MyRecCons</a
- > :: <a href="#" title="Data.Bool"
+ > :: <a href="#" title="GHC.Exts"
>Bool</a
> -> <a href="#" title="Data.Int"
>Int</a
=====================================
utils/haddock/html-test/ref/FunArgs.html
=====================================
@@ -90,7 +90,7 @@
></tr
><tr
><td class="src"
- >-> <a href="#" title="Data.Bool"
+ >-> <a href="#" title="GHC.Exts"
>Bool</a
></td
><td class="doc"
=====================================
utils/haddock/html-test/ref/Instances.html
=====================================
@@ -682,7 +682,7 @@
><p class="src"
><a id="v:bar" class="def"
>bar</a
- > :: f a -> f <a href="#" title="Data.Bool"
+ > :: f a -> f <a href="#" title="GHC.Exts"
>Bool</a
> -> a <a href="#" class="selflink"
>#</a
@@ -722,7 +722,7 @@
>Bar</a
> <a href="#" title="Data.Maybe"
>Maybe</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
></span
> <a href="#" class="selflink"
@@ -748,13 +748,13 @@
>bar</a
> :: <a href="#" title="Data.Maybe"
>Maybe</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
> -> <a href="#" title="Data.Maybe"
>Maybe</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
- > -> <a href="#" title="Data.Bool"
+ > -> <a href="#" title="GHC.Exts"
>Bool</a
> <a href="#" class="selflink"
>#</a
@@ -766,7 +766,7 @@
>Maybe</a
> (<a href="#" title="Data.Maybe"
>Maybe</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
>) -> <a href="#" title="Data.Maybe"
>Maybe</a
@@ -782,11 +782,11 @@
>bar0</a
> :: (<a href="#" title="Data.Maybe"
>Maybe</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
>, <a href="#" title="Data.Maybe"
>Maybe</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
>) -> (<a href="#" title="Data.Maybe"
>Maybe</a
@@ -800,11 +800,11 @@
>bar1</a
> :: (<a href="#" title="Data.Maybe"
>Maybe</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
>, <a href="#" title="Data.Maybe"
>Maybe</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
>) -> (<a href="#" title="Data.Maybe"
>Maybe</a
@@ -852,7 +852,7 @@
>Maybe</a
> [a] -> <a href="#" title="Data.Maybe"
>Maybe</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
> -> [a] <a href="#" class="selflink"
>#</a
@@ -936,7 +936,7 @@
><p class="src"
><a href="#"
>bar</a
- > :: [(a, a)] -> [<a href="#" title="Data.Bool"
+ > :: [(a, a)] -> [<a href="#" title="GHC.Exts"
>Bool</a
>] -> (a, a) <a href="#" class="selflink"
>#</a
@@ -1000,7 +1000,7 @@
>Either</a
> a (f a) -> <a href="#" title="Data.Either"
>Either</a
- > a <a href="#" title="Data.Bool"
+ > a <a href="#" title="GHC.Exts"
>Bool</a
> -> f a <a href="#" class="selflink"
>#</a
@@ -1092,7 +1092,7 @@
>Quux</a
> a b c) -> <a href="#" title="Instances"
>Quux</a
- > a c <a href="#" title="Data.Bool"
+ > a c <a href="#" title="GHC.Exts"
>Bool</a
> -> <a href="#" title="Instances"
>Quux</a
@@ -1188,7 +1188,7 @@
><p class="src"
><a href="#"
>bar</a
- > :: (a, b, (a, b, a)) -> (a, b, <a href="#" title="Data.Bool"
+ > :: (a, b, (a, b, a)) -> (a, b, <a href="#" title="GHC.Exts"
>Bool</a
>) -> (a, b, a) <a href="#" class="selflink"
>#</a
@@ -1754,7 +1754,7 @@
>Quux</a
> a b c) -> <a href="#" title="Instances"
>Quux</a
- > a c <a href="#" title="Data.Bool"
+ > a c <a href="#" title="GHC.Exts"
>Bool</a
> -> <a href="#" title="Instances"
>Quux</a
@@ -2020,7 +2020,7 @@
>Norf</a
> <a href="#" title="Data.Int"
>Int</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
></span
> <a href="#" class="selflink"
@@ -2053,7 +2053,7 @@
>Plugh</a
> <a href="#" title="Data.Int"
>Int</a
- > (a, b) <a href="#" title="Data.Bool"
+ > (a, b) <a href="#" title="GHC.Exts"
>Bool</a
></span
></td
@@ -2076,7 +2076,7 @@
>Plugh</a
> <a href="#" title="Data.Int"
>Int</a
- > (a, b) <a href="#" title="Data.Bool"
+ > (a, b) <a href="#" title="GHC.Exts"
>Bool</a
> = (a, [b])</div
></details
@@ -2093,7 +2093,7 @@
>Plugh</a
> <a href="#" title="Data.Int"
>Int</a
- > [a] <a href="#" title="Data.Bool"
+ > [a] <a href="#" title="GHC.Exts"
>Bool</a
></span
></td
@@ -2116,7 +2116,7 @@
>Plugh</a
> <a href="#" title="Data.Int"
>Int</a
- > [a] <a href="#" title="Data.Bool"
+ > [a] <a href="#" title="GHC.Exts"
>Bool</a
> = a</div
></details
@@ -2156,7 +2156,7 @@
>Int</a
> [a] = <a id="v:Thuuuud" class="def"
>Thuuuud</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
></div
></details
@@ -2228,13 +2228,13 @@
>Plugh</a
> <a href="#" title="Data.Int"
>Int</a
- > c <a href="#" title="Data.Bool"
+ > c <a href="#" title="GHC.Exts"
>Bool</a
> -> <a href="#" title="Data.Int"
>Int</a
> -> (<a href="#" title="Data.Int"
>Int</a
- > -> c) -> <a href="#" title="Data.Bool"
+ > -> c) -> <a href="#" title="GHC.Exts"
>Bool</a
> <a href="#" class="selflink"
>#</a
=====================================
utils/haddock/html-test/ref/LinearTypes.html
=====================================
@@ -98,7 +98,7 @@
><li
><a href="#"
>noC</a
- > :: <a href="#" title="Data.Bool"
+ > :: <a href="#" title="GHC.Exts"
>Bool</a
></li
></ul
@@ -236,7 +236,7 @@
><dfn class="src"
><a id="v:noC" class="def"
>noC</a
- > :: <a href="#" title="Data.Bool"
+ > :: <a href="#" title="GHC.Exts"
>Bool</a
></dfn
><div class="doc empty"
@@ -324,7 +324,7 @@
><dfn class="src"
> , <a id="v:noG" class="def"
>noG</a
- > :: <a href="#" title="Data.Bool"
+ > :: <a href="#" title="GHC.Exts"
>Bool</a
></dfn
><div class="doc empty"
=====================================
utils/haddock/html-test/ref/RedactTypeSynonyms.html
=====================================
@@ -90,7 +90,7 @@
><li class="src short"
><a href="#"
>exportedFn</a
- > :: <a href="#" title="Data.Bool"
+ > :: <a href="#" title="GHC.Exts"
>Bool</a
> -> AlsoHidden</li
></ul
@@ -188,7 +188,7 @@
><p class="src"
><a id="v:exportedFn" class="def"
>exportedFn</a
- > :: <a href="#" title="Data.Bool"
+ > :: <a href="#" title="GHC.Exts"
>Bool</a
> -> AlsoHidden <a href="#" class="selflink"
>#</a
=====================================
utils/haddock/html-test/ref/T23616.html
=====================================
@@ -51,7 +51,7 @@
>null</a
> :: <a href="#" title="Data.Foldable"
>Foldable</a
- > t => t a -> <a href="#" title="Data.Bool"
+ > t => t a -> <a href="#" title="GHC.Exts"
>Bool</a
> <a href="#" class="selflink"
>#</a
=====================================
utils/haddock/html-test/ref/Test.html
=====================================
@@ -427,9 +427,9 @@
>Int</a
> -> <a href="#" title="Test"
>T3</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
> -> <a href="#" title="Test"
>T4</a
@@ -649,9 +649,9 @@
>Int</a
> -> (<a href="#" title="Test"
>T3</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
> -> <a href="#" title="Test"
>T4</a
@@ -1450,9 +1450,9 @@
>Int</a
> -> <a href="#" title="Test"
>T3</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
> -> <a href="#" title="Test"
>T4</a
@@ -2235,9 +2235,9 @@ is at the beginning of the line).</pre
><td class="src"
>-> (<a href="#" title="Test"
>T3</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
> -> <a href="#" title="Test"
>T4</a
=====================================
utils/haddock/html-test/ref/TypeFamilies3.html
=====================================
@@ -351,7 +351,7 @@
>Int</a
> = <a id="v:Baz2" class="def"
>Baz2</a
- > <a href="#" title="Data.Bool"
+ > <a href="#" title="GHC.Exts"
>Bool</a
></div
></details
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/7a308655096be1418291b9e5e067418…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/7a308655096be1418291b9e5e067418…
You're receiving this email because of your account on gitlab.haskell.org.
1
0