Tôi đang sử dụng GHC 7.4.1 để cố gắng biên dịch chương trình sử dụng Repa. Nhưng trong quá trình biên soạn, tôi hết bộ nhớ. Với ghc -v
, tôi có thể thấy rằng nó đang bị kẹt trong giai đoạn SpecConstr.Tôi có thể giúp SpecConstr trong GHC bằng cách nào?
SpecConstr là một trong những chuyển đổi từ Core-to-Core của GHC. Simon Peyton Jones có một mô tả tốt đẹp here, và có một số mã số here, nhưng nó khá chậm đối với tôi vì tôi không quen thuộc với các hoạt động bên trong của GHC.
Tôi muốn có thể trợ giúp trình biên dịch theo cách nào đó - có cách nào để biết nơi nó bị kẹt không? Ngoài ra, có cách nào để hạn chế sử dụng bộ nhớ trong giai đoạn này cho đến khi tôi có thể biên dịch lại trên một máy lớn hơn không?
Cảm ơn, Chad
Trên ý thích, tôi đã xóa một 'computeUnboxedS' và bây giờ nó biên dịch tốt. Tuy nhiên không có ý tưởng tại sao. –
nếu bạn đăng mã của mình, chúng tôi có thể cho bạn biết lý do. Cảnh tượng không nhìn thấy, tôi sẽ đoán bạn bogoned ma trận teutonic, và các ống jeffries đã được thông gió siêu. – rampion
Cảm ơn, rất tiếc, tôi không thể đăng toàn bộ nội dung và không rõ cách chưng cất trong trường hợp tối thiểu. Tôi đã hy vọng có thể có một thủ tục chung để theo dõi những gì một phần của SpecConstr gây ra blowup. Có thể heap hồ sơ GHC chính nó, hoặc một cái gì đó như thế. –