Sto utilizzando GHC 7.4.1 per provare a compilare un programma che utilizza Repa. Ma a parte la compilazione, sto esaurendo la memoria. Con ghc -v
, posso vedere che si blocca nella fase SpecConstr.Come posso aiutare SpecConstr in GHC?
SpecConstr è una delle trasformazioni Core-to-Core di GHC. Simon Peyton Jones ha una bella descrizione here, e c'è del codice here, ma è piuttosto lento per me dal momento che non ho molta familiarità con il funzionamento interno di GHC.
Mi piacerebbe essere in grado di aiutare il compilatore in qualche modo - c'è un modo per dire dove si blocca? In alternativa, c'è un modo per limitare l'utilizzo della memoria in questa fase fino a quando non posso ricompilare su una macchina più grande?
Grazie, Chad
Per un capriccio, ho rimosso un 'computeUnboxedS', e ora compila bene. Ancora nessuna idea del perché, però. –
se pubblichi il tuo codice, potremmo essere in grado di dirti perché. Vista invisibile, ho intenzione di indovinare che hai bogato la matrice teutonica, e le valvole jeffries erano iper-ventilate. – rampion
Grazie, purtroppo non riesco a postare il tutto, e non è chiaro come distillare in un caso minimale. Speravo che potesse esserci una procedura generale per tenere traccia di quale parte di SpecConstr sta causando l'esplosione. Forse l'HQ di profilazione heap, o qualcosa del genere. –