Re: bug in ghci module loading post 9.12.4?

George Colpitts <[email protected]> Tue, 30 Jun 2026 09:53:07 -0300
Newsgroups gmane.comp.lang.haskell.cafe
Message-ID <CAB-d4A4mH+S6qE-JiRfY8qc_0kXFouhjGdpQ14gF59_is40_tQ@mail.gmail.com>
--===============5168151128176082641==
Content-Type: multipart/alternative; boundary="000000000000ac8fb00655781080"

--000000000000ac8fb00655781080
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

fwiw I can't duplicate on MacOS 26.5.2 and ghc 9.12.5 rc2:

 ghci -fobject-code
Loaded package environment from
/Users/gcolpitts/.ghc/aarch64-darwin-9.12.4.20260614/environments/default
GHCi, version 9.12.4.20260614: https://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration from /Users/gcolpitts/.ghci
=CE=BB> :load BugC
[1 of 3] Compiling BugA             ( BugA.hs, BugA.o )
[2 of 3] Compiling BugB             ( BugB.hs, BugB.o )
[3 of 3] Compiling BugC             ( BugC.hs, BugC.o )
Ok, three modules loaded.
(0.41 secs,)
=CE=BB> bug
ld: warning: duplicate -rpath
'/opt/homebrew/Cellar/gcc/15.2.0_1/lib/gcc/current/gcc/aarch64-apple-darwin=
25/15'
ignored
ld: warning: -U option is redundant when using -undefined dynamic_lookup
13
it :: ()
(3.58 secs, 70,664 bytes)
=CE=BB> :r
[1 of 3] Compiling BugA             ( BugA.hs, BugA.o ) [Source file
changed]
Ok, three modules reloaded.
=CE=BB> bug
ld: warning: duplicate -rpath
'/opt/homebrew/Cellar/gcc/15.2.0_1/lib/gcc/current/gcc/aarch64-apple-darwin=
25/15'
ignored
ld: warning: -U option is redundant when using -undefined dynamic_lookup
14
it :: ()
(0.34 secs, 67,952 bytes)

On Tue, Jun 30, 2026 at 4:31=E2=80=AFAM Evan Laforge <[email protected]> wr=
ote:

> On Tue, Jun 23, 2026 at 10:48=E2=80=AFAM Evan Laforge <[email protected]>=
 wrote:
> >
> > On Tue, Jun 23, 2026 at 6:44=E2=80=AFAM Zubin Duggal <zubin@well-typed.=
com>
> wrote:
> > > Which platform/OS are you building on and how did you obtain
> > > GHC?
> >
> > Oh I should have mentioned, it's OSX, 26.5.1.  Obtained via ghcup, and
> > using the "ghcup" channel rather than vanilla.
> >
> > However, I just tested this with linux on a GCP VM and ghc 9.10.3 and
> > I still see the issue.  One thing, I see in your non-reproduction that
> > it says "[1 of 3] Compiling BugA             ( BugA.hs, BugA.o )",
> > which implies -fobject-code is still on.  The bug only seems to happen
> > when you are in bytecode mode, but there are .o files available to
> > load, so you'd have to restart ghci without -fobject-code.
>
> Hate to nag but... has anyone managed to reproduce it?  I can make it
> happen on linux and OSX, and I can verify that it doesn't happen in
> 9.2.8, and that it starts happening at 9.4.  I believe this is when
> ghc got a new recompilation avoidance mechanism that was supposed to
> use hashes instead of mtimes, so that's my guess about what introduced
> it.
>
> I guess I can go ahead and file a bug on gitlab now.  I'm pretty sure
> now it's a bug so I guess I don't need to wait for someone else to
> repro but it would be nice to verify...
>
> Since permanently leaving on -fobject-code seems to be a workaround
> and processors are so fast now, I may just leave that flag on now.
> I'm surprised more people haven't run into this problem in the years
> since 9.4.
> _______________________________________________
> Haskell-Cafe mailing list -- [email protected]
> To (un)subscribe, modify options or view archives go to:
> Only members subscribed via the mailman list are allowed to post.

--000000000000ac8fb00655781080
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:times ne=
w roman,serif;font-size:large">fwiw I can&#39;t duplicate on MacOS 26.5.2 a=
nd ghc 9.12.5 rc2:<br><br>=C2=A0ghci -fobject-code <br>Loaded package envir=
onment from /Users/gcolpitts/.ghc/aarch64-darwin-9.12.4.20260614/environmen=
ts/default<br>GHCi, version 9.12.4.20260614: <a href=3D"https://www.haskell=
.org/ghc/">https://www.haskell.org/ghc/</a> =C2=A0:? for help<br>Loaded GHC=
i configuration from /Users/gcolpitts/.ghci<br>=CE=BB&gt; :load BugC<br>[1 =
of 3] Compiling BugA =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ( BugA.hs, B=
ugA.o )<br>[2 of 3] Compiling BugB =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 ( BugB.hs, BugB.o )<br>[3 of 3] Compiling BugC =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 ( BugC.hs, BugC.o )<br>Ok, three modules loaded.<br>(0.41=
 secs,)<br>=CE=BB&gt; bug<br>ld: warning: duplicate -rpath &#39;/opt/homebr=
ew/Cellar/gcc/15.2.0_1/lib/gcc/current/gcc/aarch64-apple-darwin25/15&#39; i=
gnored<br>ld: warning: -U option is redundant when using -undefined dynamic=
_lookup<br>13<br>it :: ()<br>(3.58 secs, 70,664 bytes)<br>=CE=BB&gt; :r<br>=
[1 of 3] Compiling BugA =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ( BugA.hs=
, BugA.o ) [Source file changed]<br>Ok, three modules reloaded.<br>=CE=BB&g=
t; bug<br>ld: warning: duplicate -rpath &#39;/opt/homebrew/Cellar/gcc/15.2.=
0_1/lib/gcc/current/gcc/aarch64-apple-darwin25/15&#39; ignored<br>ld: warni=
ng: -U option is redundant when using -undefined dynamic_lookup<br>14<br>it=
 :: ()<br>(0.34 secs, 67,952 bytes)</div></div><br><div class=3D"gmail_quot=
e gmail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Jun =
30, 2026 at 4:31=E2=80=AFAM Evan Laforge &lt;<a href=3D"mailto:qdunkan@gmai=
l.com">[email protected]</a>&gt; wrote:<br></div><blockquote class=3D"gmail=
_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204=
,204);padding-left:1ex">On Tue, Jun 23, 2026 at 10:48=E2=80=AFAM Evan Lafor=
ge &lt;<a href=3D"mailto:[email protected]" target=3D"_blank">qdunkan@gmail=
.com</a>&gt; wrote:<br>
&gt;<br>
&gt; On Tue, Jun 23, 2026 at 6:44=E2=80=AFAM Zubin Duggal &lt;<a href=3D"ma=
ilto:[email protected]" target=3D"_blank">[email protected]</a>&gt; w=
rote:<br>
&gt; &gt; Which platform/OS are you building on and how did you obtain<br>
&gt; &gt; GHC?<br>
&gt;<br>
&gt; Oh I should have mentioned, it&#39;s OSX, 26.5.1.=C2=A0 Obtained via g=
hcup, and<br>
&gt; using the &quot;ghcup&quot; channel rather than vanilla.<br>
&gt;<br>
&gt; However, I just tested this with linux on a GCP VM and ghc 9.10.3 and<=
br>
&gt; I still see the issue.=C2=A0 One thing, I see in your non-reproduction=
 that<br>
&gt; it says &quot;[1 of 3] Compiling BugA=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0( BugA.hs, BugA.o )&quot;,<br>
&gt; which implies -fobject-code is still on.=C2=A0 The bug only seems to h=
appen<br>
&gt; when you are in bytecode mode, but there are .o files available to<br>
&gt; load, so you&#39;d have to restart ghci without -fobject-code.<br>
<br>
Hate to nag but... has anyone managed to reproduce it?=C2=A0 I can make it<=
br>
happen on linux and OSX, and I can verify that it doesn&#39;t happen in<br>
9.2.8, and that it starts happening at 9.4.=C2=A0 I believe this is when<br=
>
ghc got a new recompilation avoidance mechanism that was supposed to<br>
use hashes instead of mtimes, so that&#39;s my guess about what introduced<=
br>
it.<br>
<br>
I guess I can go ahead and file a bug on gitlab now.=C2=A0 I&#39;m pretty s=
ure<br>
now it&#39;s a bug so I guess I don&#39;t need to wait for someone else to<=
br>
repro but it would be nice to verify...<br>
<br>
Since permanently leaving on -fobject-code seems to be a workaround<br>
and processors are so fast now, I may just leave that flag on now.<br>
I&#39;m surprised more people haven&#39;t run into this problem in the year=
s<br>
since 9.4.<br>
_______________________________________________<br>
Haskell-Cafe mailing list -- <a href=3D"mailto:[email protected]" ta=
rget=3D"_blank">[email protected]</a><br>
To (un)subscribe, modify options or view archives go to:<br>
Only members subscribed via the mailman list are allowed to post.</blockquo=
te></div>

--000000000000ac8fb00655781080--

--===============5168151128176082641==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Haskell-Cafe mailing list -- [email protected]
To (un)subscribe, modify options or view archives go to:
Only members subscribed via the mailman list are allowed to post.
--===============5168151128176082641==--