Недостаточно памяти при компиляции с помощью GHC

Недавно я обновил свое приложение до GHC 8.4 и пытаюсь развернуть приложение в производственной среде. К сожалению, когда я пытаюсь скомпилировать приложение на сервере непрерывной интеграции, ему каждый раз не хватает памяти. (Это приложение уже много лет компилируется на том же сервисе без проблем.) Есть ли способ настроить GHC / Stack, чтобы компиляция использовала меньше ресурсов? Ничего страшного, если это замедлит компиляцию.

Для контекста вот где происходит сбой компилятора:

Progress 171/271: aeson-1.2.4.0                               aeson-1.2.4.0: copy/register
Progress 171/271: aeson-1.2.4.0                               Progress 172/271

--  While building custom Setup.hs for package Cabal-2.2.0.1 using:
      /root/.stack/setup-exe-cache/x86_64-linux/Cabal-simple_mPHDZzAJ_2.2.0.1_ghc-8.4.3 --builddir=.stack-work/dist/x86_64-linux/Cabal-2.2.0.1 build --ghc-options " -ddump-hi -ddump-to-file -fdiagnostics-color=always"
    Process exited with code: ExitFailure (-9) (THIS MAY INDICATE OUT OF MEMORY)

ETA: Этот вопрос был помечен как дубликат Критерий установки Cabal: нехватка памяти, но, к сожалению, это решение мне не помогает. Если я заменю stack build на stack build --ghc-options '+RTS -M1500M -RTS', это только приведет к тому, что сбой произойдет немного раньше:

Cabal-2.2.0.1: copy/register
Progress 171/271: Cabal-2.2.0.1                               Progress 172/271

--  While building custom Setup.hs for package tzdata-0.1.20180501.0 using:
      /root/.stack/setup-exe-cache/x86_64-linux/Cabal-simple_mPHDZzAJ_2.2.0.1_ghc-8.4.3 --builddir=.stack-work/dist/x86_64-linux/Cabal-2.2.0.1 build --ghc-options " -ddump-hi -ddump-to-file -fdiagnostics-color=always"
    Process exited with code: ExitFailure (-9) (THIS MAY INDICATE OUT OF MEMORY)

Вы уже передаете аргумент -j1 (или stack.yamljobs: 1)?

bergey 12.10.2018 05:05

@bergey нет, просто stack build

Libby 12.10.2018 05:12

@bergey omg stack build -j1 работал. СПАСИБО

Libby 12.10.2018 06:19

Так как насчет того, чтобы ответить самому себе и принять вопрос?

leftaroundabout 12.10.2018 11:28

Что ж, оказывается, что было является дубликатом того другого вопроса, и я просто пропустил часть -j1 ... Так что вместо этого я отмечу себя. XD

Libby 12.10.2018 15:33
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
5
593
0

Другие вопросы по теме