Estoy usando GHC 7.4.1 para intentar compilar un programa que usa Repa. Pero a mitad de la compilación, me estoy quedando sin memoria. Con ghc -v
, puedo ver que se está estancando en la fase SpecConstr.¿Cómo puedo ayudar a SpecConstr en GHC?
SpecConstr es una de las transformaciones Core-to-Core de GHC. Simon Peyton Jones tiene una bonita descripción here, y hay algún código here, pero es bastante lento para mí, ya que no estoy muy familiarizado con el funcionamiento interno de GHC.
Me gustaría poder ayudar al compilador de algún modo, ¿hay alguna forma de saber dónde se está atascando? Alternativamente, ¿hay alguna manera de limitar el uso de memoria en esta fase hasta que pueda recompilar en una máquina más grande?
Gracias, Chad
Por un capricho, eliminé 'computeUnboxedS', y ahora se compila muy bien. Todavía no tengo idea de por qué, sin embargo. –
si publica su código, es posible que podamos decirle por qué. Vista sin ser vista, voy a adivinar que cuadraste la matriz teutónica, y que los tubos de jeffries estaban hiperventilados. – rampion
Gracias, lamentablemente no puedo publicar todo, y no está claro cómo destilar a un caso mínimo. Tenía la esperanza de que podría haber un procedimiento general para rastrear qué parte de SpecConstr está causando la explosión. Tal vez montón perfilando GHC en sí, o algo así. –