<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en" style='--code-editor-font: var(--default-mono-font, "GitLab Mono"), JetBrains Mono, Menlo, DejaVu Sans Mono, Liberation Mono, Consolas, Ubuntu Mono, Courier New, andale mono, lucida console, monospace;'>
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>

<style data-premailer="ignore" type="text/css">
a { color: #1068bf; }
</style>


<style>img {
max-width: 100%; height: auto;
}
body {
font-size: .875rem;
}
body {
-webkit-text-shadow: rgba(255,255,255,.01) 0 0 1px;
}
body {
font-family: "GitLab Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; font-size: inherit;
}
</style>
</head>
<body style='font-size: inherit; -webkit-text-shadow: rgba(255,255,255,.01) 0 0 1px; font-family: "GitLab Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";'>
<div class="content">

<h3 style="margin-top: 20px; margin-bottom: 10px;">
Alan Zimmerman pushed to branch wip/az/ghc-cpp at <a href="https://gitlab.haskell.org/ghc/ghc">Glasgow Haskell Compiler / GHC</a>
</h3>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
Commits:
</h4>
<ul>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/66c7f65676801367f440a6a644f87d71157d2f3f">66c7f656</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-02-06T17:15:25-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>interpreter: Fix INTERP_STATS profiling code

The profiling code had slightly bitrotted since the last time it was
used. This just fixes things so that if you toggle the INTERP_STATS
macro then it just works and prints out the stats.

Fixes #25695
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f71c2835bfacac879b294bbcd475d7acfac4adfb">f71c2835</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-02-06T17:16:02-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>perf: Key the interpreter symbol cache by Name rather than FastString

Profiles showed that about 0.2s was being spend constructing the keys
before looking up values in the old symbol cache.

The performance of this codepath is critical as it translates directly
to a delay when a user evaluates a function like `main` in the
interpreter.

Therefore we implement a solution which keys the cache(s) by `Name`
rather than the symbol directly, so the cache can be consulted before
the symbol is constructed.

Fixes #25731
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8f8d3a90e8a754cfccd7c8e0c793a23ce58a6de5">8f8d3a90</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-08T01:17:28-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>base: Label threads forked by IO operations

Addresses part of #25452.

Addresses core-libraries-committee#305.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/28600825dd47154f4ed448eaacb6401a26084d79">28600825</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-08T01:17:28-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>base: Label threads forked by System.Timeout

Addresses part of #25452.

Addresses core-libraries-committee#305.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8a2498279bb2bd43ba0d969486595c5d246f7e91">8a249827</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-08T01:17:28-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>base: Label signal handling threads

Addresses part of #25452.

Addresses core-libraries-committee#305.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/26af26f0160a51ace57e643b588bbd43cdb3ddaa">26af26f0</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-08T01:17:28-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>base: Label Windows console event handling threads

Addresses part of #25452.

Addresses core-libraries-committee#305.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bf9c3d4f8c9e569123a4a6987605f085aa068ff5">bf9c3d4f</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-08T01:17:28-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>ghci: Label evaluation sandbox thread

Addresses part of #25452.

Addresses core-libraries-committee#305.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/38f78ce54ffa18187bb5ebaee992829d609db4ef">38f78ce5</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-08T01:17:28-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>base: Add changelog entry for addition of thread labels

Addresses #25452.

Addresses core-libraries-committee#305.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c100deb56d30ee0a38b29c8433051603816fbfdf">c100deb5</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-08T01:18:05-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>gen-ci: Clean up style

This cleans up a number of stylistic inconsistencies although it's still
far from perfect.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c4a7680afc5a374c668dc80a8abdb3641ab115a2">c4a7680a</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-08T01:18:05-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>gen-ci: Properly encapsulate GitLab predicates
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3b5b15e1bbd78a64b56584265a2378e20962b7a4">3b5b15e1</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:31+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>GHC-CPP: first rough proof of concept

Processes

     #define FOO
     #ifdef FOO
     x = 1
     #endif

Into

    [ITcppIgnored [L loc ITcppDefine]
    ,ITcppIgnored [L loc ITcppIfdef]
    ,ITvarid "x"
    ,ITequal
    ,ITinteger (IL {il_text = SourceText "1", il_neg = False, il_value = 1})
    ,ITcppIgnored [L loc ITcppEndif]
    ,ITeof]

In time, ITcppIgnored will be pushed into a comment
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/46c2bafd15db364787a3b2fcdf0990717564b507">46c2bafd</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:31+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Tidy up before re-visiting the continuation mechanic
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a84c84545a5b118aaf8093cffba8aa125b57a700">a84c8454</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:31+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Switch preprocessor to continuation passing style

Proof of concept, needs tidying up
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/13f1482f0133af139cfbd55e39276a0cebb8d54b">13f1482f</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:31+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Small cleanup
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/39ca42b82a46bba3a95fed90de60e3401af0555c">39ca42b8</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:31+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Get rid of some cruft
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3cbc5d68fb8b7add7f8848b5f96538ad21c5c961">3cbc5d68</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:31+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Starting to integrate.

Need to get the pragma recognised and set
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/61e2a7d7c08153f2fbf001f2b9ee3d9a57c17c87">61e2a7d7</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:31+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Make cppTokens extend to end of line, and process CPP comments
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fac69bc52ab991cdc0683f36d59ba833d81f6cb9">fac69bc5</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:31+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Remove unused ITcppDefined
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2757741bbb2dc507475d0167e0883d144400054d">2757741b</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:31+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Allow spaces between # and keyword for preprocessor directive
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cbebbd8fd5ce5a0f06ea08b853c23ecd05c7a389">cbebbd8f</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:31+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Process CPP continuation lines

They are emited as separate ITcppContinue tokens.
Perhaps the processing should be more like a comment, and keep on
going to the end.
BUT, the last line needs to be slurped as a whole.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c9a7fd91d948acdfb0f9210abc9d9cb6b234e263">c9a7fd91</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Accumulate CPP continuations, process when ready

Can be simplified further, we only need one CPP token
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cbae76a4ae39764b7021068062796da03c085175">cbae76a4</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Simplify Lexer interface. Only ITcpp

We transfer directive lines through it, then parse them from scratch
in the preprocessor.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/67cccefe345eca3b3976ccf37c50f21dd7801796">67cccefe</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Deal with directive on last line, with no trailing \n
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/51c06eca96f7eafb0cf662abd39ccc31bb300ec4">51c06eca</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Start parsing and processing the directives
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eed6c4a62dbc01b58de471b3bbbf129c30b653f7">eed6c4a6</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Prepare for processing include files
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/78e40f85ad81769c07ca38133c43b710fb3110ef">78e40f85</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Move PpState into PreProcess

And initParserState, initPragState too
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b908e27f4fef7367126d825e7c8da56c8cb7c5b8">b908e27f</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Process nested include files

Also move PpState out of Lexer.x, so it is easy to evolve it in a ghci
session, loading utils/check-cpp/Main.hs
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ddb9a0f8758f2823684284f99fa3b0aeeed3fc73">ddb9a0f8</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Split into separate files
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6747454c00555cd4463b9eff50a83ead8b1c8331">6747454c</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Starting on expression parser.

But it hangs. Time for Text.Parsec.Expr
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/051d854571be4555edfac67ace0c73a74abe7635">051d8545</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Start integrating the ghc-cpp work

>From https://github.com/alanz/ghc-cpp
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c67636908b27f8f158c90dad03d999a1f403fa01">c6763690</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>WIP
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0626b2a7ee1a4dcc9fd248dc59a18e0cbb3cb1c5">0626b2a7</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Fixup after rebase
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1dc2c5de68f4325f1ff7505565e317baa564f63d">1dc2c5de</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>WIP
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9c24c3af7db3621fd3465acc1f0c2de24802176c">9c24c3af</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Fixup after rebase, including all tests pass
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3d1c7fa2663856f3dd6a327dbbc84eec81d6bb32">3d1c7fa2</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Change pragma usage to GHC_CPP from GhcCPP
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c0750678a8d78c126d8b81984321856a59254f4f">c0750678</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Some comments
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9ba99ecec90b135f0538bd7fd5c793ecc5d257d9">9ba99ece</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Reformat
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e3bea5ac8363c48ee6f0dc147a9745223b013885">e3bea5ac</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Delete unused file
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1308c9f37f9b5706b3c714adaf31c50d834356e9">1308c9f3</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Rename module Parse to ParsePP
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/30344e7e12de248a6c11890a1d5bec81fbf614c3">30344e7e</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Clarify naming in the parser
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f1c449b134c1db9009731859c86091605293de8b">f1c449b1</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>WIP. Switching to alex/happy to be able to work in-tree

Since Parsec is not available
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6d2ebef13004ee1ff2b283843621da9ba9e1f9ef">6d2ebef1</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Layering is now correct

- GHC lexer, emits CPP tokens
- accumulated in Preprocessor state
- Lexed by CPP lexer, CPP command extracted, tokens concated with
  spaces (to get rid of token pasting via comments)
- if directive lexed and parsed by CPP lexer/parser, and evaluated
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/820e0a6a34c2a23515e28080e420234af59654c8">820e0a6a</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>First example working

Loading Example1.hs into ghci, getting the right results

```
{-# LANGUAGE GHC_CPP #-}
module Example1 where

y = 3

x =
  "hello"
  "bye now"

foo = putStrLn x
```
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/131c2d6cad418c030f82a1014e7e8b97e0288430">131c2d6c</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Rebase, and all tests pass except whitespace for generated parser
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4ec42e20ca25762b0e48f1dca60d4a62a34cee13">4ec42e20</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>More plumbing. Ready for testing tomorrow.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e64e6bb15f8f8f0379fbf9a573b65f20de218575">e64e6bb1</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Proress. Renamed module State from Types

And at first blush it seems to handle preprocessor scopes properly.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/40e24b59c9c14550dd8ae529ba5acb29ad005a11">40e24b59</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T09:36:32+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Insert basic GHC version macros into parser

__GLASGOW_HASKELL__
__GLASGOW_HASKELL_FULL_VERSION__
__GLASGOW_HASKELL_PATCHLEVEL1__
__GLASGOW_HASKELL_PATCHLEVEL2__
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1b8ae7f70fa8904e9138985fa1a942e2f4f6e7a7">1b8ae7f7</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T11:03:54+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Re-sync check-cpp for easy ghci work
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7009479af02d1119613ab8cffccc9f2f47f095a8">7009479a</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-08T12:38:03+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Get rid of warnings
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/56c761d9855194a0099ede3285e30e2b9d185a4d">56c761d9</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-09T20:18:49+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Rework macro processing, in check-cpp

Macros kept at the top level, looked up via name, multiple arity
versions per name can be stored
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c964606e494de5f11ae9838091af3760c8cf0eff">c964606e</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-02-09T22:15:29+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>WIP. Can crack arguments for #define

Next step it to crack out args in an expansion
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
80 changed files:
</h4>
<ul>
<li class="file-stats">
<a href="#22c3eac1f084ce55ce48b857bce882e5c7e553a9">
.gitlab/generate-ci/gen_ci.hs
</a>
</li>
<li class="file-stats">
<a href="#d0d96a6d03668aeab20ebe05e2c4ccb798c7e64c">
compiler/GHC.hs
</a>
</li>
<li class="file-stats">
<a href="#11e6f6a348be9920cecad0893a25350137524b4f">
compiler/GHC/ByteCode/Linker.hs
</a>
</li>
<li class="file-stats">
<a href="#e9c044b79842eca94ef683d075c4bfeca3bbb931">
compiler/GHC/Cmm/Lexer.x
</a>
</li>
<li class="file-stats">
<a href="#71e696f452eb493722d70306c6f304fc9b2f6a95">
compiler/GHC/Cmm/Parser.y
</a>
</li>
<li class="file-stats">
<a href="#c1b0959b75a7a0d23334b99aea968a34ef714ce4">
compiler/GHC/Cmm/Parser/Monad.hs
</a>
</li>
<li class="file-stats">
<a href="#dbce6cb5e8f3d5287103c66d1a56ad63bbbd11a9">
compiler/GHC/Driver/Backpack.hs
</a>
</li>
<li class="file-stats">
<a href="#0777f7813e9131f74f611814a3df9d82bdcfeada">
compiler/GHC/Driver/Config/Parser.hs
</a>
</li>
<li class="file-stats">
<a href="#2e5692f568fd7b67a6b172e2a60469da8392508c">
compiler/GHC/Driver/Flags.hs
</a>
</li>
<li class="file-stats">
<a href="#9a679a2680ef6061397f1987091ea9f96ffe095d">
compiler/GHC/Driver/Main.hs
</a>
</li>
<li class="file-stats">
<a href="#1dab250036d04cfcf3530f6ff27889f723cc2dda">
compiler/GHC/Driver/Make.hs
</a>
</li>
<li class="file-stats">
<a href="#64e68d52c0898049455e20b0d001ffe1dd07ff83">
compiler/GHC/Driver/Pipeline/Execute.hs
</a>
</li>
<li class="file-stats">
<a href="#774d88050336ef660c7a219fb06c480c2fc639bc">
compiler/GHC/Driver/Session.hs
</a>
</li>
<li class="file-stats">
<a href="#5aa3321b0f5c08d7ebfa1a4a3340d4451258988b">
compiler/GHC/Linker/Loader.hs
</a>
</li>
<li class="file-stats">
<a href="#8ddbfe39a3c8c3fc848840a31791378b5aaadcd8">
compiler/GHC/Parser.hs-boot
</a>
</li>
<li class="file-stats">
<a href="#bf951467d4a9aa443cb109cb4c84a2891945649b">
compiler/GHC/Parser.y
</a>
</li>
<li class="file-stats">
<a href="#b1092d2df4ded3655524830252278016d6aa5afd">
compiler/GHC/Parser/Annotation.hs
</a>
</li>
<li class="file-stats">
<a href="#bc838fed116397de81c10f0a33433e07c6d3a2d4">
compiler/GHC/Parser/HaddockLex.x
</a>
</li>
<li class="file-stats">
<a href="#c1078a9741c11d1e15d4c678b107092790295bb3">
compiler/GHC/Parser/Header.hs
</a>
</li>
<li class="file-stats">
<a href="#a1ae0a1be35c859d90b0756920a7198075fb91e1">
compiler/GHC/Parser/Lexer.x
</a>
</li>
<li class="file-stats">
<a href="#446cb12ca6cefaf1c6eb79b7db643632744263c7">
compiler/GHC/Parser/PostProcess.hs
</a>
</li>
<li class="file-stats">
<a href="#13755bdc5d6c6b4c6f31604eb0da778521355795">
compiler/GHC/Parser/PostProcess/Haddock.hs
</a>
</li>
<li class="file-stats">
<a href="#04169b1247bd324155ac36969ffaa6c43eb456ef">
<span class="new-file">
+
compiler/GHC/Parser/PreProcess.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#73de551f4735abee4d3a72fc24c8bf5c5007350d">
<span class="new-file">
+
compiler/GHC/Parser/PreProcess/Eval.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#52b0e990f376e611692f259b424e8554f6cee8be">
<span class="new-file">
+
compiler/GHC/Parser/PreProcess/Lexer.x
</span>
</a>
</li>
<li class="file-stats">
<a href="#d9634c0ca0e83b530011b7d2d69051d8fc571c30">
<span class="new-file">
+
compiler/GHC/Parser/PreProcess/Macro.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#6082b2b1b269d46ee2be37a9d9331d75b748dd7e">
<span class="new-file">
+
compiler/GHC/Parser/PreProcess/ParsePP.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#5140e76d23f671c3e043046dbddfbf518d026e78">
<span class="new-file">
+
compiler/GHC/Parser/PreProcess/Parser.y
</span>
</a>
</li>
<li class="file-stats">
<a href="#7a8b59bb6f04998f2961dc0436c4d7d378deb986">
<span class="new-file">
+
compiler/GHC/Parser/PreProcess/ParserM.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#b1a066a23352aedd1aa7f84cb2178178a711d78d">
<span class="new-file">
+
compiler/GHC/Parser/PreProcess/State.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#bb1b9caab4572524e970a2a69e387e704faca49a">
compiler/GHC/Parser/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#efe7444c09eed0fdaa83e6904e6328fb435620bf">
compiler/GHC/Runtime/Interpreter.hs
</a>
</li>
<li class="file-stats">
<a href="#6b29c1575b27588edcc0f976faedbffeb8343176">
compiler/GHC/Runtime/Interpreter/Types.hs
</a>
</li>
<li class="file-stats">
<a href="#873854c907f73084315fd0a79f442a5125c1d9d7">
<span class="new-file">
+
compiler/GHC/Runtime/Interpreter/Types/SymbolCache.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#0f33fd88c617246c7f89c4477d2d1d24f942df23">
compiler/ghc.cabal.in
</a>
</li>
<li class="file-stats">
<a href="#c30f4ac98f08779ad1bd5a02a27802862c1e9521">
ghc/GHCi/UI.hs
</a>
</li>
<li class="file-stats">
<a href="#f4586df19410cf938856031e0d26a0589dfe63ca">
hadrian/src/Rules/SourceDist.hs
</a>
</li>
<li class="file-stats">
<a href="#7359b6ed5fcb4ca01ad5fae3f680235363457c66">
hadrian/stack.yaml.lock
</a>
</li>
<li class="file-stats">
<a href="#392e9dfd3417e267d708c5ab16536f2994d43745">
libraries/base/changelog.md
</a>
</li>
<li class="file-stats">
<a href="#2e0f17331daaae33659159abd77d62332dfa8a9d">
libraries/base/src/Control/Concurrent.hs
</a>
</li>
<li class="file-stats">
<a href="#a25881626cb756bf5eb69bfee5eaba4004f3cdfb">
libraries/base/src/System/Timeout.hs
</a>
</li>
<li class="file-stats">
<a href="#edbc08c16613b16134f3ed604e3e999a895b4e76">
libraries/ghc-internal/src/GHC/Internal/Conc/Signal.hs
</a>
</li>
<li class="file-stats">
<a href="#a3f9edd0aacf10f399c237f2fe14ce674366f549">
libraries/ghc-internal/src/GHC/Internal/Event/Windows/ConsoleEvent.hsc
</a>
</li>
<li class="file-stats">
<a href="#7efae136aa18890c5b6388c8b727c408d2befd09">
libraries/ghc-internal/src/GHC/Internal/LanguageExtensions.hs
</a>
</li>
<li class="file-stats">
<a href="#fdd34ceb84d7b95dccbd9172ce507eaea9b5abd4">
libraries/ghci/GHCi/Run.hs
</a>
</li>
<li class="file-stats">
<a href="#539d43389593f2626a387f2c904f03c215c7c802">
rts/Interpreter.c
</a>
</li>
<li class="file-stats">
<a href="#921cf46a2036d96b67f004f8d83bb6d7b520f5e9">
rts/Interpreter.h
</a>
</li>
<li class="file-stats">
<a href="#426e9adbed6046eecf94d591c3bf3542ca040a80">
rts/RtsMain.c
</a>
</li>
<li class="file-stats">
<a href="#2dcdf7aadcff5b41822596f22b49b2851374d0cd">
testsuite/tests/count-deps/CountDepsParser.stdout
</a>
</li>
<li class="file-stats">
<a href="#9f7a74d3512ab004425ec39cbbcb9737e2ecaa82">
testsuite/tests/driver/T4437.hs
</a>
</li>
<li class="file-stats">
<a href="#13f0c9fadc06e40faed369fa6e29bcdaa7132645">
testsuite/tests/ghc-api/T11579.hs
</a>
</li>
<li class="file-stats">
<a href="#2ca7b1d6bb24cd05ca30a428efb924268c8dbc51">
testsuite/tests/interface-stability/base-exports.stdout
</a>
</li>
<li class="file-stats">
<a href="#482ce10224feee28cb25df69f2be2fd845ccb44d">
testsuite/tests/interface-stability/base-exports.stdout-javascript-unknown-ghcjs
</a>
</li>
<li class="file-stats">
<a href="#0c9107f6ffbb0ee70fe83374d94d1734a3bac3cb">
testsuite/tests/interface-stability/base-exports.stdout-mingw32
</a>
</li>
<li class="file-stats">
<a href="#e9c4dd54adbea818aa90a241f5325670bb349d53">
testsuite/tests/interface-stability/base-exports.stdout-ws-32
</a>
</li>
<li class="file-stats">
<a href="#2576d273556f3c6af6a44c20f26fdce3e3bbc9ec">
testsuite/tests/interface-stability/template-haskell-exports.stdout
</a>
</li>
<li class="file-stats">
<a href="#42eff8ba3197e9f7d632174def99c179e8678c83">
testsuite/tests/linters/notes.stdout
</a>
</li>
<li class="file-stats">
<a href="#38a8bc1a0837a855fbc0035ad995c6f673ba917f">
<span class="new-file">
+
utils/check-cpp/.ghci
</span>
</a>
</li>
<li class="file-stats">
<a href="#a3028ddb77ff247befeed69618eb4c346ebcd095">
<span class="new-file">
+
utils/check-cpp/.gitignore
</span>
</a>
</li>
<li class="file-stats">
<a href="#2144cf3d241274f5d4e45f30f529b057acab3712">
<span class="new-file">
+
utils/check-cpp/Eval.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#c47fd0183e849a280a2aa98d61597cf1f030f953">
<span class="new-file">
+
utils/check-cpp/Example1.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#ee9c04ffc12602294927a4d6eb04f76c50daf23a">
<span class="new-file">
+
utils/check-cpp/Example2.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#1b4d5a435fa508810ca495d114a6f164e8f6bbfa">
<span class="new-file">
+
utils/check-cpp/Lexer.x
</span>
</a>
</li>
<li class="file-stats">
<a href="#f4c611d099d7ae56dbf214fe9fde68087634d913">
<span class="new-file">
+
utils/check-cpp/Macro.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#a1cc38bf79c997687e7f3f3a4b43fbe5007419e5">
<span class="new-file">
+
utils/check-cpp/Main.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#da12d35f689c1b8d4f17f87387398b49ece58aad">
<span class="new-file">
+
utils/check-cpp/ParsePP.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#d15d83da7dc29b512780963f82a5cdddb8420cfc">
<span class="new-file">
+
utils/check-cpp/ParseSimulate.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#a018c64a3ea8222cf953060e85412d5dbd4a0da0">
<span class="new-file">
+
utils/check-cpp/Parser.y
</span>
</a>
</li>
<li class="file-stats">
<a href="#83c29251f9152f4fb0bf0f947f51a5c59546a0a2">
<span class="new-file">
+
utils/check-cpp/ParserM.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#04e88bf806839c38db54ac0119309ab657e9f4a0">
<span class="new-file">
+
utils/check-cpp/PreProcess.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#5c0f6b4088c4188ec07462072081f4d0f9b06e73">
<span class="new-file">
+
utils/check-cpp/README.md
</span>
</a>
</li>
<li class="file-stats">
<a href="#ced3b7c5692fc1adef9f4878a287e31f9f0b4e75">
<span class="new-file">
+
utils/check-cpp/State.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#8b98c09c364d39241a666a3002e17da9429d4b60">
<span class="new-file">
+
utils/check-cpp/run.sh
</span>
</a>
</li>
<li class="file-stats">
<a href="#a01c7c8d6870e84e6f69c9daf633c0cc2adbb1bf">
utils/check-exact/Main.hs
</a>
</li>
<li class="file-stats">
<a href="#27b1397327a9675c096810ce6d8ae48e95020750">
utils/check-exact/Parsers.hs
</a>
</li>
<li class="file-stats">
<a href="#1783b48dc32caea1463f0ef9dfa5db647ec9f430">
utils/check-exact/Preprocess.hs
</a>
</li>
<li class="file-stats">
<a href="#3257d9454efdfaae92dd011e55e59bba45faf514">
utils/check-exact/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#96c574cd50d7ddf1aa9ee28457b949696d9c685a">
utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Parser.hs
</a>
</li>
<li class="file-stats">
<a href="#307068543a3b3602f96c963b97e3a5c0cb4034c9">
utils/haddock/haddock-api/src/Haddock/Parser.hs
</a>
</li>
<li class="file-stats">
<a href="#c076b696928328c9cd5824ee5867c5c390827167">
utils/haddock/haddock-api/src/Haddock/Types.hs
</a>
</li>
</ul>
<h5 style="margin-top: 10px; margin-bottom: 10px; font-size: .875rem;">
The diff was not included because it is too large.
</h5>

</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #626168;">

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/compare/f2c26471cb9ae42192d7ee70c66a4251070817c3...c964606e494de5f11ae9838091af3760c8cf0eff">View it on GitLab</a>.
<br>
You're receiving this email because of your account on <a target="_blank" rel="noopener noreferrer" href="https://gitlab.haskell.org">gitlab.haskell.org</a>. <a href="https://gitlab.haskell.org/-/profile/notifications" target="_blank" rel="noopener noreferrer" class="mng-notif-link">Manage all notifications</a> · <a href="https://gitlab.haskell.org/help" target="_blank" rel="noopener noreferrer" class="help-link">Help</a>



</p>
</div>
</body>
</html>