<div dir="ltr">Since this seems to be a regression in 9.2.4, I'd suggest not to wait too long with reporting this on GHC's issue tracker. The GHC devs can also give you advice on diagnosing this further.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Am Di., 6. Sept. 2022 um 00:01 Uhr schrieb Doug Burke <<a href="mailto:dburke.gw@gmail.com">dburke.gw@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I have noticed I can't run one of my tests when building with ghc<br>
9.2.4 (tried via stack and nix) that doesn't happen with ghc 9.2.3 (or<br>
older versions).<br>
<br>
Is there a way to diagnose the problem (so I can look at the ghc bug<br>
tracker or try and make the code smaller for testing)?<br>
<br>
I can see this behavior with the following reproducer (it's a bit<br>
heavyweight at the moment!):<br>
<br>
% git clone <a href="https://gitlab.com/dburke/swish" rel="noreferrer" target="_blank">https://gitlab.com/dburke/swish</a> temp<br>
% cd temp<br>
<br>
Added to get the timings, but it's not strictly necessary:<br>
<br>
% sed -i -e "s/-Wall /-Wall -ddump-timings /" swish.cabal<br>
<br>
Now try to build and run the test. The following build and run the<br>
test quickly if using an older GHC (e.g. "--resolver lts" for the<br>
stack case or "--argstr compiler ghc923" for the nix case).<br>
<br>
First with stack<br>
<br>
% sed -i -e "s/-Wall /-Wall -ddump-timings /" swish.cabal<br>
% stack test --resolver nightly-2022-09-05 :test-rdfproof<br>
Stack has not been tested with GHC versions above 9.0, and using<br>
9.2.4, this may fail<br>
Stack has not been tested with Cabal versions above 3.4, but version<br>
3.6.3.0 was found, this may fail<br>
swish> configure (lib + test)<br>
Configuring swish-0.10.2.0...<br>
swish> build (lib + test)<br>
Preprocessing library for swish-0.10.2.0..<br>
Building library for swish-0.10.2.0..<br>
Preprocessing test suite 'test-rdfproof' for swish-0.10.2.0..<br>
Building test suite 'test-rdfproof' for swish-0.10.2.0..<br>
*** initializing unit database:<br>
initializing unit database: alloc=7350056 time=8.753<br>
*** initializing unit database:<br>
initializing unit database: alloc=3999144 time=16.194<br>
*** Chasing dependencies:<br>
*** systool:cpp:<br>
systool:cpp: alloc=271104 time=1.991<br>
Chasing dependencies: alloc=10233768 time=8.400<br>
[2 of 2] Compiling Main<br>
*** Parser [Main]:<br>
Parser [Main]: alloc=24346344 time=33.067<br>
*** Renamer/typechecker [Main]:<br>
Renamer/typechecker [Main]: alloc=101896128 time=134.992<br>
*** Desugar [Main]:<br>
Desugar [Main]: alloc=24628816 time=24.813<br>
*** Simplifier [Main]:<br>
Simplifier [Main]: alloc=667236400 time=775.137<br>
*** Specialise [Main]:<br>
Specialise [Main]: alloc=45057312 time=40.543<br>
*** Float out(FOS {Lam = Just 0,<br>
                   Consts = True,<br>
                   OverSatApps = False}) [Main]:<br>
Float out(FOS {Lam = Just 0, Consts = True, OverSatApps = False})<br>
[Main]: alloc=208806472 time=330.396<br>
*** Simplifier [Main]:<br>
Simplifier [Main]: alloc=603245992 time=747.067<br>
*** Simplifier [Main]:<br>
Simplifier [Main]: alloc=564322584 time=709.583<br>
*** Simplifier [Main]:<br>
Simplifier [Main]: alloc=728039528 time=835.525<br>
*** Float inwards [Main]:<br>
*** Called arity analysis [Main]:<br>
*** Simplifier [Main]:<br>
Float inwards [Main]: alloc=23720 time=0.017<br>
Called arity analysis [Main]: alloc=25848 time=0.016<br>
Progress 0/2<br>
<br>
<br>
Now with nix<br>
<br>
% nix-shell --argstr compiler ghc924<br>
... wait an indeterminate amount of time<br>
% ghc --version<br>
The Glorious Glasgow Haskell Compilation System, version 9.2.4<br>
% cabal test test-rdfproof<br>
Warning: The package list for '<a href="http://hackage.haskell.org" rel="noreferrer" target="_blank">hackage.haskell.org</a>' is 19 days old.<br>
Run 'cabal update' to get the latest list of available packages.<br>
Resolving dependencies...<br>
Build profile: -w ghc-9.2.4 -O1<br>
In order, the following will be built (use -v for more details):<br>
 - swish-0.10.2.0 (lib) (first run)<br>
 - swish-0.10.2.0 (test:test-rdfproof) (first run)<br>
Configuring library for swish-0.10.2.0..<br>
Preprocessing library for swish-0.10.2.0..<br>
Building library for swish-0.10.2.0..<br>
[ 1 of 55] Compiling Data.Interned.URI<br>
[ 2 of 55] Compiling Data.Ord.Partial<br>
[ 3 of 55] Compiling Data.String.ShowLines<br>
[ 4 of 55] Compiling Network.URI.Ord<br>
[ 5 of 55] Compiling Swish.GraphClass<br>
...<br>
... a lot more, including some annoying non-exhaustive patterns I<br>
don't know how to fix<br>
... but that's for a different post<br>
...<br>
[55 of 55] Compiling Swish<br>
Configuring test suite 'test-rdfproof' for swish-0.10.2.0..<br>
Preprocessing test suite 'test-rdfproof' for swish-0.10.2.0..<br>
Building test suite 'test-rdfproof' for swish-0.10.2.0..<br>
*** initializing unit database:<br>
initializing unit database: alloc=7389248 time=4.436<br>
*** initializing unit database:<br>
initializing unit database: alloc=4001312 time=11.992<br>
*** Chasing dependencies:<br>
*** systool:cpp:<br>
systool:cpp: alloc=319464 time=0.520<br>
Chasing dependencies: alloc=12863280 time=6.581<br>
[1 of 2] Compiling TestHelpers      ( tests/TestHelpers.hs,<br>
/home/dburke/rdf/temp/dist-newstyle/build/x86_64-linux/ghc-9.2.4/swish-0.10.2.0/t/test-rdfproof/build/test-rdfproof/test-rdfproof-tmp/TestHelpers.o<br>
)<br>
*** Parser [TestHelpers]:<br>
Parser [TestHelpers]: alloc=5469952 time=2.325<br>
*** Renamer/typechecker [TestHelpers]:<br>
Renamer/typechecker [TestHelpers]: alloc=94049744 time=106.001<br>
*** Desugar [TestHelpers]:<br>
Desugar [TestHelpers]: alloc=5551840 time=2.974<br>
*** Simplifier [TestHelpers]:<br>
Simplifier [TestHelpers]: alloc=45720248 time=28.537<br>
*** Specialise [TestHelpers]:<br>
Specialise [TestHelpers]: alloc=2198344 time=0.717<br>
*** Float out(FOS {Lam = Just 0,<br>
                   Consts = True,<br>
                   OverSatApps = False}) [TestHelpers]:<br>
Float out(FOS {Lam = Just 0, Consts = True, OverSatApps = False})<br>
[TestHelpers]: alloc=6183280 time=3.109<br>
*** Simplifier [TestHelpers]:<br>
Simplifier [TestHelpers]: alloc=27272104 time=16.042<br>
*** Simplifier [TestHelpers]:<br>
Simplifier [TestHelpers]: alloc=20805544 time=12.332<br>
*** Simplifier [TestHelpers]:<br>
Simplifier [TestHelpers]: alloc=6175584 time=2.825<br>
*** Float inwards [TestHelpers]:<br>
Float inwards [TestHelpers]: alloc=26272 time=0.012<br>
*** Called arity analysis [TestHelpers]:<br>
Called arity analysis [TestHelpers]: alloc=28392 time=0.012<br>
*** Simplifier [TestHelpers]:<br>
Simplifier [TestHelpers]: alloc=14755744 time=7.017<br>
*** Demand analysis [TestHelpers]:<br>
Demand analysis [TestHelpers]: alloc=2061096 time=1.296<br>
*** Constructed Product Result analysis [TestHelpers]:<br>
Constructed Product Result analysis [TestHelpers]: alloc=466968 time=0.197<br>
*** Worker Wrapper binds [TestHelpers]:<br>
Worker Wrapper binds [TestHelpers]: alloc=436552 time=0.201<br>
*** Simplifier [TestHelpers]:<br>
Simplifier [TestHelpers]: alloc=31897488 time=18.652<br>
*** Exitification transformation [TestHelpers]:<br>
Exitification transformation [TestHelpers]: alloc=29808 time=0.013<br>
*** Float out(FOS {Lam = Just 0,<br>
                   Consts = True,<br>
                   OverSatApps = True}) [TestHelpers]:<br>
Float out(FOS {Lam = Just 0, Consts = True, OverSatApps = True})<br>
[TestHelpers]: alloc=5508568 time=4.009<br>
*** Common sub-expression [TestHelpers]:<br>
Common sub-expression [TestHelpers]: alloc=27896 time=0.013<br>
*** Float inwards [TestHelpers]:<br>
Float inwards [TestHelpers]: alloc=26272 time=0.021<br>
*** Simplifier [TestHelpers]:<br>
Simplifier [TestHelpers]: alloc=24835440 time=15.291<br>
*** Demand analysis [TestHelpers]:<br>
Demand analysis [TestHelpers]: alloc=2214560 time=1.044<br>
*** CoreTidy [TestHelpers]:<br>
CoreTidy [TestHelpers]: alloc=2814672 time=1.457<br>
*** CorePrep [TestHelpers]:<br>
CorePrep [TestHelpers]: alloc=1965920 time=2.636<br>
*** CoreToStg [TestHelpers]:<br>
CoreToStg [TestHelpers]: alloc=3134560 time=1.484<br>
*** CodeGen [TestHelpers]:<br>
CodeGen [TestHelpers]: alloc=80232584 time=46.410<br>
*** WriteIface [/home/dburke/rdf/temp/dist-newstyle/build/x86_64-linux/ghc-9.2.4/swish-0.10.2.0/t/test-rdfproof/build/test-rdfproof/test-rdfproof-tmp/TestHelpers.hi]:<br>
WriteIface [/home/dburke/rdf/temp/dist-newstyle/build/x86_64-linux/ghc-9.2.4/swish-0.10.2.0/t/test-rdfproof/build/test-rdfproof/test-rdfproof-tmp/TestHelpers.hi]:<br>
alloc=1780688 time=0.766<br>
*** systool:as:<br>
systool:as: alloc=137200 time=0.360<br>
[2 of 2] Compiling Main             ( tests/RDFProofTest.hs,<br>
/home/dburke/rdf/temp/dist-newstyle/build/x86_64-linux/ghc-9.2.4/swish-0.10.2.0/t/test-rdfproof/build/test-rdfproof/test-rdfproof-tmp/Main.o<br>
)<br>
*** Parser [Main]:<br>
Parser [Main]: alloc=25235720 time=8.851<br>
*** Renamer/typechecker [Main]:<br>
Renamer/typechecker [Main]: alloc=58415520 time=45.291<br>
*** Desugar [Main]:<br>
Desugar [Main]: alloc=22098688 time=46.709<br>
*** Simplifier [Main]:<br>
Simplifier [Main]: alloc=654052760 time=511.390<br>
*** Specialise [Main]:<br>
Specialise [Main]: alloc=44439912 time=34.132<br>
*** Float out(FOS {Lam = Just 0,<br>
                   Consts = True,<br>
                   OverSatApps = False}) [Main]:<br>
Float out(FOS {Lam = Just 0, Consts = True, OverSatApps = False})<br>
[Main]: alloc=208317448 time=252.154<br>
*** Simplifier [Main]:<br>
Simplifier [Main]: alloc=601002912 time=546.343<br>
*** Simplifier [Main]:<br>
Simplifier [Main]: alloc=564371608 time=546.970<br>
*** Simplifier [Main]:<br>
Simplifier [Main]: alloc=726902400 time=613.423<br>
*** Float inwards [Main]:<br>
Float inwards [Main]: alloc=23720 time=0.024<br>
*** Called arity analysis [Main]:<br>
Called arity analysis [Main]: alloc=25856 time=0.013<br>
*** Simplifier [Main]:<br>
<br>
At this point my laptop just sits there making whooshing noises as if<br>
it's trying to become an aeroplane, but it never gets to where it's<br>
going (to mix up my metaphors).<br>
<br>
Any help would be appreciated,<br>
Doug<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div>