Я хочу установить HLint с помощью cabal в HardenedBSD (cabal install HLint), но он запускает какую-то ошибку памяти:

cabal install HLint
...
ghc: mmap 131072 bytes at 0x0: Operation not permitted

Я попытался добавить пространство подкачки, но это не слишком хорошо работает.

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

Как ни странно, часть swapon -aL выходит из состояния 1, даже если она печатает swapon: adding /dev/md99 as swap device . Кроме того, swapctl (на мой взгляд, для начинающих) указывает на то, что этот раздел подкачки был достаточно активирован:

$ swapctl -l
Device:       1024-blocks     Used:
/dev/ada0s1b     655324         0
/dev/md99       4194304         0

Я не совсем уверен, правильно ли я настроил своп. Когда я запускаю top для мониторинга cabal/ghc во время cabal install HLint , top показывает, что доступно 4 ГБ пространства подкачки, но, похоже, что подкачка никогда не используется на самом деле. В конце концов Cabal умирает из-за ошибок mmap во время компиляции библиотек haskell-src-exts, uniplate или aeson Haskell из-за ошибок в ghc, и HardenedBSD никогда не использовал своп.

Я неправильно настраиваю своп? Есть ли способ заставить HardenedBSD поменяться более активно?

Это начинает выглядеть как ошибка в GHC, в частности порт HardenedBSD. Перенос обсуждения на https://ghc.haskell.org/trac/ghc/ticket/14988.

0