<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>



<style>img {
max-width: 100%; height: auto;
}
</style>
</head>
<body>
<div class="content">

<h3>
Ben Gamari pushed to branch wip/unloading
at <a href="https://gitlab.haskell.org/ghc/ghc">Glasgow Haskell Compiler / GHC</a>
</h3>
<h4>
Commits:
</h4>
<ul>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c2ed5e81d39f39688aade7a65820fbdee4cf11ca">c2ed5e81</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2020-10-30T19:52:22-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix and enable object unloading in GHCi

Fixes #16525

See Note [Object unloading] in CheckUnload.c for details.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/75ae73faebcfde6d527b9cd78a892dd6b2ae316d">75ae73fa</a></strong>
<div>
<span>by Ray Shih</span>
<i>at 2020-10-30T19:52:22-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add loadNativeObj and unloadNativeObj

(This change is originally written by niteria)

This adds two functions:
* `loadNativeObj`
* `unloadNativeObj`
and implements them for Linux.

They are useful if you want to load a shared object with Haskell code
using the system linker and have GHC call dlclose() after the
code is no longer referenced from the heap.

Using the system linker allows you to load the shared object
above outside the low-mem region. It also loads the DWARF sections
in a way that `perf` understands.

`dl_iterate_phdr` is what makes this implementation Linux specific.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a888e94bf4c3bb964a46de87125a1602cef1c00f">a888e94b</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2020-10-30T19:52:22-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Introduce highMemDynamic
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/708ea4cf8be9803fb100f20d44531f9be5f7a13f">708ea4cf</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2020-10-30T19:52:23-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Introduce test for dynamic library unloading

This uses the highMemDynamic flag introduced earlier to verify that
dynamic objects are properly unloaded.
</pre>
</li>
</ul>
<h4>30 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#3556223cd3ef45d787321b5290bf33535a361873">
compiler/GHC/Runtime/Linker.hs
</a>
</li>
<li class="file-stats">
<a href="#ae6b27fda1cc1591738c66625518d3472c48163f">
includes/rts/Linker.h
</a>
</li>
<li class="file-stats">
<a href="#94ca41c5afbb3d932bd6f37ee16458322988fb69">
includes/rts/storage/GC.h
</a>
</li>
<li class="file-stats">
<a href="#ba1d62598dfbf5ddb817dd9c93461a02a0bba43d">
rts/CheckUnload.c
</a>
</li>
<li class="file-stats">
<a href="#67cc28da78ad5c427434fbe2efdcecffe61ae002">
rts/CheckUnload.h
</a>
</li>
<li class="file-stats">
<a href="#152b85a9ce66dcf385a199eab2acad9d98fd737b">
rts/Hash.c
</a>
</li>
<li class="file-stats">
<a href="#4352fec095ae082617e59e2f077ec6dc9e865ee7">
rts/Hash.h
</a>
</li>
<li class="file-stats">
<a href="#044fe9284335a9bfd17546e06c2e5c40a680dd3d">
rts/Linker.c
</a>
</li>
<li class="file-stats">
<a href="#687f0b17315e54a1692de64626391e572ca298e9">
rts/LinkerInternals.h
</a>
</li>
<li class="file-stats">
<a href="#9ed11d0519762dae04656481b089dbb5b05acf98">
rts/RtsStartup.c
</a>
</li>
<li class="file-stats">
<a href="#b7ec52d5e302083ed03503182f1293694dda24f3">
rts/linker/Elf.c
</a>
</li>
<li class="file-stats">
<a href="#c13531a3a86ee59ab6d8d4bd01fbea1ad9646bdb">
rts/linker/LoadArchive.c
</a>
</li>
<li class="file-stats">
<a href="#f4db9593d88d3c951505379e54f3db74f49ae142">
rts/linker/MachO.c
</a>
</li>
<li class="file-stats">
<a href="#9670354b74fe55079feca82e1510129734b46f4f">
rts/linker/PEi386.c
</a>
</li>
<li class="file-stats">
<a href="#1fbdc15fb59db29e00c07dc7dac3b36492baaa1c">
rts/linker/elf_got.c
</a>
</li>
<li class="file-stats">
<a href="#37a93df244a7789fddf557443b6398d06763e9cc">
rts/sm/Evac.c
</a>
</li>
<li class="file-stats">
<a href="#6477e10756faf038741e63d1ad499a1df809fe10">
rts/sm/GC.c
</a>
</li>
<li class="file-stats">
<a href="#06e70a7de800b2de9d75c2d5b5b554929f6b9bcb">
rts/sm/GC.h
</a>
</li>
<li class="file-stats">
<a href="#0bfe9d4217bccddd6b00d2d6a5e56e7de4c86273">
rts/sm/Storage.c
</a>
</li>
<li class="file-stats">
<a href="#26627baa966cfbb2801731d80e40d9793c23ab55">
testsuite/tests/ghci/T16525a/T16525a.script
</a>
</li>
<li class="file-stats">
<a href="#8f8e60113be652bd8dad559787917715363a6f6f">
testsuite/tests/ghci/T16525a/T16525a.stdout
</a>
</li>
<li class="file-stats">
<a href="#c198785d7f916bc321dc6d4f89114348bbf64d53">
testsuite/tests/ghci/T16525a/all.T
</a>
</li>
<li class="file-stats">
<a href="#2d8799bf001d0147f8d062a8f2ad48f8334e3843">
<span class="new-file">
+
testsuite/tests/ghci/T16525b/A.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#96e22c48586ff706ca32dfe75bb438fe4ebbd1e3">
<span class="new-file">
+
testsuite/tests/ghci/T16525b/B.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#cb22804bd773bfb0dff10b71f69663d0440ed1f2">
<span class="new-file">
+
testsuite/tests/ghci/T16525b/T16525b.script
</span>
</a>
</li>
<li class="file-stats">
<a href="#f94f3625fe09a9916921fbbd89430a2be0c49b61">
<span class="new-file">
+
testsuite/tests/ghci/T16525b/T16525b.stdout
</span>
</a>
</li>
<li class="file-stats">
<a href="#791d3b44264b8b784921ed1f08ba4706cf1d53c4">
<span class="new-file">
+
testsuite/tests/ghci/T16525b/all.T
</span>
</a>
</li>
<li class="file-stats">
<a href="#1544b39dc7466b4062c0515c8363c8b0f57b7a3c">
testsuite/tests/rts/linker/Makefile
</a>
</li>
<li class="file-stats">
<a href="#2b81e3889541a0e40c43862ab1d435c3cbcc15d6">
testsuite/tests/rts/linker/all.T
</a>
</li>
<li class="file-stats">
<a href="#bbe37bd969beb1a821970fb0851e5cbea0547ae8">
testsuite/tests/rts/linker/linker_error.c
</a>
</li>
</ul>
<h5>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: #777;">

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/compare/e3cff938c3f97f7072a6e1c6d79c0ad644694878...708ea4cf8be9803fb100f20d44531f9be5f7a13f">View it on GitLab</a>.
<br>
You're receiving this email because of your account on gitlab.haskell.org.
If you'd like to receive fewer emails, you can
adjust your notification settings.



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