Почему делает пакет Macports GHC, занимают много времени для компиляции?

И почему? Существует процесс начальной загрузки и компиляция реального процесса компилятора, но какая часть использует большую часть времени?

8
задан Don Stewart 19 April 2011 в 03:27
поделиться

4 ответа

С точки зрения Gentoo:

В Gentoo все скомпилировано. Что мы делаем для GHC, так это то, что мы, разработчики (включая неофициальных разработчиков, таких как я), компилируем новую версию GHC из более старой для создания бинарной версии начальной загрузки, а затем упаковываем ее и позволяем пользователям использовать ее для компиляции новой версии.

Компиляция двоичного файла из памяти может занять более чем в два раза больше времени (около 45 минут, чтобы использовать двоичный файл для компиляции новой версии на моем ноутбуке). Есть некоторые отличия (документация создается и поставляется с двоичным файлом, а не каждый пользователь, создающий его самостоятельно), но я не вижу ни одного, чтобы учесть такую ​​большую разницу во времени. Фактический ebuild, используемый для создания как двоичного файла, так и для конечных пользователей, можно найти здесь (включение флага ghcbootstrap означает, что он создает двоичный файл, включение двоичного флага означает, что пользователи устанавливают и используют предварительно созданный двоичный файл, а не сами создают GHC): http://code.haskell.org/gentoo/gentoo-haskell/dev-lang/ghc/ghc-6.12.3.ebuild

Таким образом, я предполагаю, что это начальный процесс начальной загрузки, который занимает так много времени, если Macports действительно создает начальный двоичный файл начальной загрузки (особенно если он делает это с последней версии, предназначенной только для C, и загружается до версии, которую вы действительно хотите установить).

9
ответ дан 5 December 2019 в 09:24
поделиться

Строительство GHC печально известно тем, что длилось вечно. Я слышал ужасные истории о том, что сборка из исходного кода занимала более 8 часов. Насколько я понимаю, это в основном связано с тем, что стандартная сборка GHC пытается выполнить огромные объемы оптимизации, чтобы повысить производительность собственной среды выполнения. Даже с частично готовой системой (которую, как я полагаю, предоставляет macports) этот процесс может занять некоторое время из-за наличия всех ссылок.

РЕДАКТИРОВАТЬ: См. Следующее http://hackage.haskell.org/trac/ghc/wiki/Building/Using#HowtomakeGHCbuildquickly

4
ответ дан 5 December 2019 в 09:24
поделиться

Некоторые процессы сборки занимают довольно много времени, и это количество времени сильно зависит от скорости вашего процессора и того, сколько процессорного времени можно посвятить сборке.

Если вас беспокоит, что он может зависнуть в какой-то момент, запустите install с флагом -v , чтобы получить более подробный вывод, относящийся к процессу сборки. Таким образом, команда будет выглядеть примерно так:

sudo port -v install [portfile]
2
ответ дан 5 December 2019 в 09:24
поделиться

Это может занять некоторое время. Когда я собирал его на своем iBook G4, это заняло целых 7 часов. Даже на MacBook Pro с большим объемом оперативной памяти и быстрым процессором это может занять 2-3 часа.

3
ответ дан 5 December 2019 в 09:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: