noinia / hgeometry

HGeometry is a library for computing with geometric objects in Haskell. It defines basic geometric types and primitives, and it implements some geometric data structures and algorithms. The main two focusses are: (1) Strong type safety, and (2) implementations of geometric algorithms and data structures that have good asymptotic running time guarantees.
120 stars 40 forks source link

Build fails because "Simplifier ticks exhausted" #222

Open nh518 opened 11 months ago

nh518 commented 11 months ago

I'm working with WSL2 to build the project but I failed miserably.

I have tried different versions of ghc (8.10.7, 9.2.8, 9.4.5, 9.6.2) & cabal (3.6.2.0, 3.8.1.0, 3.10.1.0) and I still can't build the project. The furthest that I got was to the following error. Also it was very difficult to search for this error and I only found this issue to get started.

cabal build all
...
[47 of 48] Compiling Statistics.Correlation ( Statistics/Correlation.hs, dist/build/Statistics/Correlation.p_o )
Simplifier ticks exhausted
  When trying UnfoldingDone pearsonMatByRow
  To increase the limit, use -fsimpl-tick-factor=N (default 100).

  In addition try adjusting -funfolding-case-threshold=N and
  -funfolding-case-scaling=N for the module in question.
  Using threshold=1 and scaling=5 should break most inlining loops.

  If you need to increase the tick factor substantially, while also
  adjusting unfolding parameters please file a bug report and
  indicate the factor you needed.

  If GHC was unable to complete compilation even with a very large factor
  (a thousand or more), please consult the "Known bugs or infelicities"
  section in the Users Guide before filing a report. There are a
  few situations unlikely to occur in practical programs for which
  simplifier non-termination has been judged acceptable.

  To see detailed counts use -ddump-simpl-stats
  Total ticks: 9684
Error: cabal: Failed to build reanimate-svg-0.13.0.1 (which is required by
exe:showcase from hgeometry-showcase-0.13.0). See the build log above for
details.
Failed to build statistics-0.16.2.0 (which is required by
exe:hgeometry-showcase from hgeometry-showcase-0.13.0, exe:hgeometry-devel
from hgeometry-devel-0.1.0.0 and others). See the build log above for details.

Found similar issue! https://gitlab.haskell.org/ghc/ghc/-/issues/14637

noinia commented 11 months ago

Thanks for your interest in HGeometry! I'm currently working on a rewrite of some of the primitives that should hopefully make the library faster and easier to use, so I haven't payed that much attention to the current master branch in a while.

Note that the hgeometry-showcase really just are some examples that David wrote at some point. You might simply want to disable them for now by commenting the hgeometry-showcase line in the cabal.project.