Ответ 1
РЕДАКТИРОВАТЬ: сообщение неясно об истинной проблеме, поэтому игнорируйте этот ответ, поскольку он был написан с чем-то другим, но имеет некоторые полезные комментарии.
Я думаю, что если вы нарушаете потребление памяти в Cabal или GHC до 1 ГБ, вы начнете получать много неудачных сборок из-за ранних завершений с помощью защиты памяти Linux (или как бы там ни называлось - кто-нибудь, пожалуйста?). Возможно, это не так, если вы найдете способ убедить Cabal в том, чтобы использовать меньше памяти, и убедить GHC пойти на диету тоже.
Я столкнулся с этим совсем недавно, создав Curry KiCS2 на виртуальной машине емкостью 1 Гб с 1 Гб места подкачки. (Конечно, моя цель состояла не в том, чтобы ограничить потребление памяти, а вместо этого получить чертову вещь, чтобы закончить строительство, поэтому все, что я сделал, это увеличение памяти VM до 4 ГБ и свопинг до 8 ГБ, но это явно не то, что вам нужно.)
Итак, я думаю, что, вероятно, нет никакого обходного пути для GHC, потребляющего много памяти во время компиляции. Просто убедитесь, что параллельная компиляция отключена. И исследование означает сокращение потребления памяти GHC, флагов компиляции (самого GHC, возможно) или отключения фаз оптимизации, которые могут потреблять много памяти и т.д.
Более яркий ум может доказать, что я не прав.