Как установить Haskell на Mac OS

Я пытаюсь установить Haskell на свой Macbook два дня и не могу добиться успеха.

Что я сделал:

$ brew install ghc

Хорошо. Сейчас пытаюсь установить

$ cabal install text

и получите следующие сообщения об ошибках:

Data/Text.hs:1074:4:
     error: invalid preprocessing directive
      #-}
       ^

Я погуглил и нашел это.

Так:

  • заваривать установить GCC48

    $ /usr/local/bin/gcc-4.8 --version  
    gcc-4.8 (GCC) 4.8.2
    Copyright (C) 2013 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    $ cat /usr/local/lib/ghc-7.6.3/settings
      [("GCC extra via C opts", " -fwrapv"),
       ("C compiler command", "/usr/local/bin/gcc-4.8"),
       ("C compiler flags", " -m64 -fno-stack-protector  -m64"),
       ...
    
  • заваривать установить cabal-установить

  • Кабаль установить текст

И я получаю те же сообщения.

Как я могу их исправить?

7 ответов

Решение

Попробуйте использовать версию платформы Haskell для Mac, у меня нет Mac, чтобы попробовать его, но я надеюсь, что cabal будет работать "из коробки" на платформе Haskell.

brew install ghc cabal-install

Если вы предпочитаете доморощенный.

Примечание: (отредактировано, чтобы добавить) Homebrew может иметь более старую (или более новую) версию ghc, чем загрузка платформы Haskell для OSX, и могут быть другие различия. Вы можете проверить примечания к выпуску здесь для версии, включенной в платформу Haskell, а также другую интересную информацию. brew info ghc cabal-install предоставит вам актуальную информацию о версиях Homebrew.

Если вы хотите установить Haskell Platform бинарные файлы с помощью homebrew:

brew install cask
brew cask install haskell-platform

cabal install cabal-install

Следующая информация предполагает, что может быть доступен установщик Mac:

brew info haskell-platform

We no longer package haskell-platform. Consider installing ghc
and cabal-install instead:

brew install ghc cabal-install

A binary installer is available:
https://www.haskell.org/platform/mac.html

В 2022 году платформа Haskell устарела , и для большинства платформ, включая Mac, официально рекомендуется сначала установить GHCup . по сути является менеджером пакетов для цепочки инструментов Haskell (,Stack,Cabal,HLS). Он может установить несколько версий каждого из них в домашний каталог и «установить» (символическая ссылка) команды /... на конкретную версию.

Для установки используйте скрипт установки (исходник ). Это устанавливает иGHC, задает несколько вопросов о настройке PATH и т. д. и предлагает установить инструменты командной строки разработчика Apple, если заметит их отсутствие.

      curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh

Если вы работаете на Mac M1 и хотите использовать версию 8.10.7 или более раннюю, вам также потребуется установить версиюllvmмежду 9 и 12 (включительно) и поместите его на путь такghcможет найти его. Однако в настоящее время по умолчанию используется версия 9.2.4, которая имеет встроенный генератор кода (NCG), работающий на M1 из коробки. Тем не менее, он все еще может содержать ошибки на M1 (подробности см. здесь ), поэтому рассмотрите возможность обновления до 9.4.2 сghcup install ghc 9.4.2 && ghcup set ghc 9.4.2. В настоящее время в версии 9.4.2 отсутствует поддержка пакетов, которой обладает версия 8.10.7, но в ней меньше известных ошибок.


Если вы столкнулись с проблемой установки, вы можете начать с чистого листа и переустановить как инструменты разработчика, так и:

      sudo rm -rf /Library/Developer/CommandLineTools
ghcup nuke
rm -rf ~/.ghcup
rm -rf ~/.stack
rm -rf ~/.cabal
# For the cautious, a reboot here is advised before proceeding
xcode-select --install
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh

Также возможна установкаGHCupчерез Homebrew, хотя для этого требуется вручную обновить $PATH и установить/установить нужные инструменты.

      brew install ghcup
# Now add $HOME/.ghcup/bin to $PATH
ghcup install ghc && ghcup set ghc

Существует новый проект ghc-dot-app, который является альтернативой формуле Homebrew и официальным установщиком платформы Haskell. Вот веб-страница проекта: Haskell для Mac OS X. Вот что обсуждается в Haskell Cafe: " Автономный GHC для Mac". Вот цитата из авторского поста:

Как это работает?

В https://github.com/ghcformacosx/ghc-dot-app меня есть скрипт Main.hs, который загружает / собирает / и т.д. все предпосылки. Затем он исправляет сценарии оболочки, чтобы использовать путь относительно себя (после следующих символических ссылок) вместо жесткого кодирования места установки. Он также исправляет файлы package.conf.d для использования относительных путей ${pkgroot}.

Отдельно есть проект Xcode, который включает все метаданные, чтобы он выглядел как настоящий комплект приложений Mac (icons, Info.plist), и небольшое приложение Cocoa, которое имеет кнопку для открытия документов и предоставляет инструкции по добавлению их в ПУТЬ в.bashrc. Из-за эвристики в человеке Mac OS X, это также автоматически заставит справочные страницы работать.

Попробуйте установить Haskell, используя brew install haskell-platform,

Если вы уже используете Mavericks, вам нужно установить GCC (так как Mavericks поставляется с Clang). Следуйте инструкциям здесь: https://gist.github.com/cartazio/7131371.

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