2013-02-18 13 views
11

Mam zainstalowaną platformę Haskell 2012.4 w systemie Windows. Chciałbym wypróbować nowe rozszerzenia w GHC 7.6.2. Wygląda na to, że pobieranie GHC 7.6.2 x86_64 nie zawiera instalatora i jest tylko plikami binarnymi. Jaki jest właściwy sposób na zainstalowanie najnowszej wersji i ustawienie jej jako domyślnej dla budowania projektów Haskell? Dzięki.Jak zaktualizować platformę Haskell

Odpowiedz

9

Jeśli pobierzesz samą GHC, otrzymasz GHC i niewielką liczbę bibliotek. Jeśli pobierzesz platformę Haskell, otrzymasz GHC oraz znacznie większy zbiór bibliotek. Jednak platforma Haskell jest rzadko aktualizowana, więc otrzymasz starszą wersję GHC.

Jeśli pytasz "w jaki sposób zainstalować platformę Haskell, a następnie uruchomić ją z nowszą wersją GHC?", Odpowiedź brzmi "nie". Biblioteki Haskell muszą być kompilowane dla konkretnej wersji GHC, której używasz.

Zasadniczo są dwie opcje:

  1. korzystać z platformy Haskell, wraz z wersją GHC że zapasy.
  2. Użyj najnowszego GHC i skompiluj dowolne biblioteki, które chcesz ręcznie.

W Linuksie nie jest tak źle, ale biblioteki Haskell, które wiążą zewnętrzny kod C, wydają się być skomplikowane do budowania na systemie Windows. (Rzeczy takie jak OpenGL, zlib, itp.) Pakiety, które są w 100% waniliowym kodem Haskella, są łatwe do kompilacji w każdym systemie.

+0

Rozumiem, że biblioteki muszą być budowane z każdą wersją GHC. Po prostu próbuję określić wersję, która będzie używana do budowania z "runhaskell". Pobrałem 7.6.2, który jest tylko folderem z plikami wykonywalnymi, bibliotekami itp. Co dalej? Jak wybrać między Twoimi 2 opcjami? Dzięki. – MFlamer

+0

Hmm, to interesujące. Służyły do ​​dostarczania instalatorów MSI dla systemu Windows. Chyba teraz pojawiła się platforma Haskella, już się tym nie przejmują. Domyślam się, że musisz edytować zmienną 'PATH', aby nowy GHC był wymieniony jako pierwszy. – MathematicalOrchid

3

Nie zrobiłem tego i jestem w pracy, więc nie mogę tego przetestować, ale patrząc na the GHC docs sądzę, że możesz użyć flagi --with-compiler=path, aby wybrać wersję GHC do użycia?

Zobacz także this question, związane z używaniem cabal z zainstalowanymi wieloma wersjami ghc. Domyślam się, że prawdopodobnie chcesz użyć cabal-dev lub czegoś takiego do piaskownicy, w przeciwnym razie twoja baza danych pakietów może stać się bałaganem.

EDYCJA: O ile domyślnie, myślę, że można ustawić to w pliku konfiguracyjnym cabal. Zobacz komentarze do zaakceptowanej odpowiedzi w tym pytaniu, które połączyłem.

+0

Dzięki, coraz bliżej. Teraz cabal używa GHC-7.6.2, ale otrzymuję takie błędy podczas próby instalacji bibliotek ..................... Rejestracja nats-0.1 ... cabal: pozwolenie odmówiono cabal: Błąd: niektóre pakiety nie powiodły się: nats-0.1 nie powiodło się podczas ostatniego etapu instalacji. Wyjątkiem był: ExitFailure 1. Czy to dlatego, że te pakiety nie zostały zaprojektowane do zbudowania za pomocą tej nowej wersji GHC, czy jest to coś, co mam źle skonfigurowany? – MFlamer

+0

Nie jestem pewien, na czym polega odmowa uprawnień. Patrząc na ten pakiet nats, wygląda na to, że powinien on być zbudowany z najnowszą wersją GHC. Czy uruchomiłeś aktualizację cabal przed uruchomieniem cabal? Będę szczery, to także dla mnie nieznany teren, więc powodzenia i pamiętaj, aby poinformować nas o tym, co działa. Wiem, że ludzie zawsze mówią o tym, jak ciężko jest sprawić, by działało w systemie Windows, możesz być pionierem tutaj :) – tredontho