Jeśli GHC zajmuje dużo czasu, aby skompilować coś, czy istnieje sposób, aby dowiedzieć się, co robi?Monitorowanie aktywności GHC
Po pierwsze, byłoby miło wiedzieć, czy faktycznie uszkodziłem kompilator (to znaczy, jakoś go w jakiś sposób nieskończoną pętlę), czy też faktycznie robi postępy, ale bardzo powoli.
drugie, byłoby miło wiedzieć dokładnie, jaka część procesu kompilacji GHC ma problemy z. Czy jest to parsowanie, usuwanie lub sprawdzanie typu, optymalizacja rdzenia, generowanie kodu, czy ...?
Czy istnieje jakiś sposób, aby monitorować to, co się dzieje? (Mając na uwadze, że jeśli GHC trwa długo, prawdopodobnie oznacza to, że robi dużo pracy, więc jeśli poprosić o zbyt dużej mocy to będzie ogromne!)
GHC już powie Ci jakie moduły próbuje (ponownie) skompilować. W moim przypadku problemem jest pojedynczy samodzielny moduł. Chciałbym wiedzieć, gdzie GHC utknął.
Można budować profilowaną wersję GHC a następnie za pomocą standardowych narzędzi profilowania zobaczyć co to jest po fakcie. – Davorak
Możesz poprosić go o rozmowę, określając poziom szczegółowości "-v4", informując o ** tym, co się dzieje - tak, wynik będzie ogromny, ale jeśli chcesz go tylko monitorować, pozwól mu przejść do terminal, który zwykle pamięta tylko ostatnie 1000 linii. –
Z mojego doświadczenia wynika, GHC wchodząc w nieskończoną pętlę można rozpoznać, ponieważ nic produktywnego byłoby to robić powoli ogólnie sprawia, że jedzą dużo pamięci, jak również ... –