Eu quero instalar o HLint com cabal em HardenedBSD ( cabal install HLint
), mas ele está executando algum tipo de erro de memória:
cabal install HLint
...
ghc: mmap 131072 bytes at 0x0: Operation not permitted
Eu tentei adicionar espaço de troca, mas isso não está funcionando muito bem.
sudo dd if=/dev/zero of=/usr/cabal-swap bs=1m count=4k &&
sudo chmod 0600 /usr/cabal-swap &&
sudo sh -c "echo 'md99 none swap sw,file=/usr/cabal-swap,late 0 0' >>/etc/fstab" &&
sudo swapon -aL
Estranhamente, a parte swapon -aL
sai do status 1, apesar de imprimir swapon: adding /dev/md99 as swap device
. Além disso, o swapctl parece (para meus olhos novatos) indicar que esta partição swap foi suficientemente ativada:
$ swapctl -l
Device: 1024-blocks Used:
/dev/ada0s1b 655324 0
/dev/md99 4194304 0
Não tenho certeza se configuramos a troca corretamente. Quando eu executo top
para monitorar cabal / ghc durante cabal install HLint
, top mostra que os 4GB de espaço de troca estão disponíveis, mas a troca nunca parece ser realmente usada. Cabal eventualmente morre com mmap
erros durante o ghc compilando as bibliotecas de dependências haskell-src-exts, uniplate ou aeson Haskell, sem que o HardenedBSD faça uso da troca.
Estou configurando a troca errada? Existe uma maneira de forçar o HardenedBSD a trocar de forma mais proativa?
Isso está começando a parecer um erro no GHC, especificamente na porta HardenedBSD. Movendo a discussão para o link .