-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
- Loading branch information
There are no files selected for viewing
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
<!doctype html> | ||
<html lang="en" dir="ltr"> | ||
<head> | ||
<meta charset="UTF-8"> | ||
<meta name="viewport" content="width=device-width,initial-scale=1"> | ||
<meta name="generator" content="Docusaurus v2.0.0-beta.15"> | ||
<title data-react-helmet="true">IOG GHC Update #28 | IOG Engineering</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://engineering.iog.io/2024-05-02-ghc-update"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docusaurus_tag" content="default"><meta data-react-helmet="true" property="og:title" content="IOG GHC Update #28 | IOG Engineering"><meta data-react-helmet="true" name="description" content="Triweekly update from the GHC DevX team at IOG."><meta data-react-helmet="true" property="og:description" content="Triweekly update from the GHC DevX team at IOG."><meta data-react-helmet="true" property="og:type" content="article"><meta data-react-helmet="true" property="article:published_time" content="2024-05-02T00:00:00.000Z"><meta data-react-helmet="true" property="article:author" content="https://iog.io/en/"><meta data-react-helmet="true" property="article:tag" content="ghc,ghc-update"><link data-react-helmet="true" rel="icon" href="/img/favicon.ico"><link data-react-helmet="true" rel="canonical" href="https://engineering.iog.io/2024-05-02-ghc-update"><link data-react-helmet="true" rel="alternate" href="https://engineering.iog.io/2024-05-02-ghc-update" hreflang="en"><link data-react-helmet="true" rel="alternate" href="https://engineering.iog.io/2024-05-02-ghc-update" hreflang="x-default"><link rel="stylesheet" href="/assets/css/styles.10ad4647.css"> | ||
<link rel="preload" href="/assets/js/runtime~main.68753360.js" as="script"> | ||
<link rel="preload" href="/assets/js/main.79729c6e.js" as="script"> | ||
</head> | ||
<body> | ||
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus"> | ||
<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/iohk-logo.png" alt="IOG" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/iohk-logo-inverted.png" alt="IOG" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title">Engineering</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/">Recent</a><a class="navbar__item navbar__link" href="/tags">Tags</a><a class="navbar__item navbar__link" href="/archive">Archive</a></div><div class="navbar__items navbar__items--right"><div class="toggle_Pssr toggle_TdHA toggleDisabled_jDku"><div class="toggleTrack_SSoT" role="button" tabindex="-1"><div class="toggleTrackCheck_XobZ"><span class="toggleIcon_eZtF">🌜</span></div><div class="toggleTrackX_YkSC"><span class="toggleIcon_eZtF">🌞</span></div><div class="toggleTrackThumb_uRm4"></div></div><input type="checkbox" class="toggleScreenReader_JnkT" aria-label="Switch between dark and light mode"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper blog-wrapper blog-post-page"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_a9qW thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_uKok margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Kvuv"><li class="sidebarItem_CF0Q"><a aria-current="page" class="sidebarItemLink_miNk sidebarItemLinkActive_RRTD" href="/2024-05-02-ghc-update">IOG GHC Update #28</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2024-04-11-ghc-update">IOG GHC Update #27</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2024-03-21-ghc-update">IOG GHC Update #26</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2024-02-29-ghc-update">IOG GHC Update #25</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2024-02-08-ghc-update">IOG GHC Update #24</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2024-01-18-ghc-update">IOG GHC Update #23</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2024-01-04-ghc-update">IOG GHC Update #22</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2023-12-07-ghc-update">IOG GHC Update #21</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2023-11-16-ghc-update">IOG GHC Update #20</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2023-10-26-ghc-update">IOG GHC Update #19</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2023-10-25-internship">Internship in GHC at IOG</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2023-10-05-ghc-update">IOG GHC Update #18</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2023-09-14-ghc-update">IOG GHC Update #17</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2023-08-24-ghc-update">IOG GHC Update #16</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2023-08-03-ghc-update">IOG GHC Update #15</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2023-07-13-ghc-update">IOG GHC Update #14</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2023-06-29-ghc-update">IOG GHC Update #13</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2023-06-28-p2p">Unveiling Cardano's Dynamic P2P: a leap forward in decentralization</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2023-06-15-ghc-update">IOG GHC Update #12</a></li><li class="sidebarItem_CF0Q"><a class="sidebarItemLink_miNk" href="/2023-06-01-ghc-update">IOG GHC Update #11</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="http://schema.org/Blog"><article itemprop="blogPost" itemscope="" itemtype="http://schema.org/BlogPosting"><header><h1 class="blogPostTitle_rzP5" itemprop="headline">IOG GHC Update #28</h1><div class="blogPostData_Zg1s margin-vert--md"><time datetime="2024-05-02T00:00:00.000Z" itemprop="datePublished">May 2, 2024</time> · <!-- -->2 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_FlmR"><div class="avatar margin-bottom--sm"><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a itemprop="url"><span itemprop="name">Sylvain Henry</span></a></div><small class="avatar__subtitle" itemprop="description">Haskell DevX Engineer @ IOG</small></div></div></div><div class="col col--6 authorCol_FlmR"><div class="avatar margin-bottom--sm"><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://iog.io/en/" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Jeffrey M. Young</span></a></div><small class="avatar__subtitle" itemprop="description">Haskell DevX Engineer @ IOG</small></div></div></div><div class="col col--6 authorCol_FlmR"><div class="avatar margin-bottom--sm"><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a itemprop="url"><span itemprop="name">Luite Stegeman</span></a></div><small class="avatar__subtitle" itemprop="description">Haskell DevX Engineer @ IOG</small></div></div></div></div></header><div id="post-content" class="markdown" itemprop="articleBody"><p>Triweekly update from the GHC DevX team at IOG.</p><p>Previous updates can be found <a href="https://engineering.iog.io/tags/ghc-update" target="_blank" rel="noopener noreferrer">here</a>.</p><ul><li><p>Sylvain: completed and merged someone's patch opened for 4 years to make GHC | ||
generate better LLVM IR for complete switches. | ||
<a href="https://gitlab.haskell.org/ghc/ghc/-/issues/24717" target="_blank" rel="noopener noreferrer">GHC#24717</a>, | ||
<a href="https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12491" target="_blank" rel="noopener noreferrer">GHC!12491</a>.</p></li><li><p>Sylvain: fixed issue with code using DeriveLift and when building | ||
template-haskell. | ||
<a href="https://gitlab.haskell.org/ghc/ghc/-/issues/22229" target="_blank" rel="noopener noreferrer">GHC#22229</a>, | ||
<a href="https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12456" target="_blank" rel="noopener noreferrer">GHC!12456</a>.</p></li><li><p>Sylvain: fixed a segfault in GHCi when using breakpoints. | ||
<a href="https://gitlab.haskell.org/ghc/ghc/-/issues/24712" target="_blank" rel="noopener noreferrer">GHC#24712</a>, | ||
<a href="https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12500" target="_blank" rel="noopener noreferrer">GHC!12500</a></p></li><li><p>Sylvain: fixed a JS codegen issue because GHC generates code that computes | ||
with RUBBISH literals. There may be more to it as it's not really supposed to | ||
happen, but at least the generated JS code is valid code now . | ||
<a href="https://gitlab.haskell.org/ghc/ghc/-/issues/24664" target="_blank" rel="noopener noreferrer">GHC#24664</a>, | ||
<a href="https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12463" target="_blank" rel="noopener noreferrer">GHC!12463</a>.</p></li><li><p>Jeff: After a long exhausting battle with the GHC testsuite, jeff expanded the testsuite capabilites to track binary sizes for each backend in GHC's CI and their dependencies. <a href="https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12372#c591f85f122007bac88228c5ff6fd76b40e6a811" target="_blank" rel="noopener noreferrer">MR</a> is merging now.</p></li><li><p>Jeff: Published the <a href="https://haskell.foundation/hs-opt-handbook.github.io/src/Measurement_Observation/Binary_Profiling/linux_perf.html#perf-chapter" target="_blank" rel="noopener noreferrer">perf</a> chapter for the <a href="https://github.com/haskellfoundation/hs-opt-handbook.github.io" target="_blank" rel="noopener noreferrer">Haskell Optimization Handbook</a>.</p></li><li><p>Hamish: added support for the JS backend in Miso | ||
<a href="https://github.com/dmjio/miso/pull/738" target="_blank" rel="noopener noreferrer">Miso#738</a>. This led to a discussion | ||
about generated code size. Sylvain opened two issues about ideas to reduce | ||
code size (<a href="https://gitlab.haskell.org/ghc/ghc/-/issues/24743" target="_blank" rel="noopener noreferrer">GHC#24743</a> and | ||
<a href="https://gitlab.haskell.org/ghc/ghc/-/issues/24744" target="_blank" rel="noopener noreferrer">GHC#24744</a>) and one MR to | ||
prepare for #24743 | ||
<a href="https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12538" target="_blank" rel="noopener noreferrer">GHC!12538</a>.</p></li><li><p>Luite: Made a new implementation of the functionality of starting/stopping | ||
profiling counters for cost centre profiling <a href="https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12478" target="_blank" rel="noopener noreferrer">GHC!12478</a>. | ||
This implementation is simpler than the previous one <a href="https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12440" target="_blank" rel="noopener noreferrer">GHC!12440</a>, | ||
but requires reading a global variable for each counter increment. Initial performance | ||
measurements have shown that the cost is minor. We haven't merged this yet because of ongoing | ||
work on even finer control of cost centre counters (multiple counters per cost centre stack and per-thread | ||
settings), which might supersede this patch.</p></li></ul></div><footer class="row docusaurus-mt-lg blogPostDetailsFull_h6_j"><div class="col"><b>Tags:</b><ul class="tags_XVD_ padding--none margin-left--sm"><li class="tag_JSN8"><a class="tag_hD8n tagRegular_D6E_" href="/tags/ghc">ghc</a></li><li class="tag_JSN8"><a class="tag_hD8n tagRegular_D6E_" href="/tags/ghc-update">ghc-update</a></li></ul></div><div class="col margin-top--sm"><a href="https://github.com/input-output-hk/engineering/tree/master/blog/2024-05-02-ghc-update-28.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Blog post page navigation"><div class="pagination-nav__item"></div><div class="pagination-nav__item pagination-nav__item--next"><a class="pagination-nav__link" href="/2024-04-11-ghc-update"><div class="pagination-nav__sublabel">Older Post</div><div class="pagination-nav__label">IOG GHC Update #27</div></a></div></nav></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items"><li class="footer__item"><a href="https://twitter.com/iog_eng" target="_blank" rel="noopener noreferrer" class="footer__link-item"><span>Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items"><li class="footer__item"><a href="https://iohk.io/en/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">IOG Blog</a></li><li class="footer__item"><a href="https://github.com/input-output-hk/" target="_blank" rel="noopener noreferrer" class="footer__link-item"><span>GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2024 IOG Engineering, Inc. Built with Docusaurus.</div></div></div></footer></div> | ||
<script src="/assets/js/runtime~main.68753360.js"></script> | ||
<script src="/assets/js/main.79729c6e.js"></script> | ||
</body> | ||
</html> |