Ho installato Haskell Platform 2012.4 su Windows. Mi piacerebbe provare le nuove estensioni in GHC 7.6.2. Sembra che il download di GHC 7.6.2 x86_64 non includa un programma di installazione ed è solo un file binario. Qual è il modo corretto per installare l'ultima versione e impostarla come predefinita per la creazione di progetti Haskell? Grazie.Come aggiornare la piattaforma Haskell
risposta
Se si scarica GHC stesso, si ottiene GHC e una piccola manciata di librerie. Se scarichi la piattaforma Haskell, ottieni GHC plus una raccolta molto più ampia di librerie. Tuttavia, la piattaforma Haskell viene aggiornata di rado, quindi otterrai una versione precedente di GHC.
Se stai chiedendo "come installo la piattaforma Haskell e poi lo faccio funzionare con un GHC più recente?", La risposta è "non si". Le librerie Haskell devono essere compilate per la versione specifica di GHC che stai utilizzando.
Che, fondamentalmente, sono due opzioni:
- utilizzano la piattaforma Haskell, insieme con la versione di GHC che fornisce.
- Utilizzare l'ultimo GHC e compilare le librerie desiderate manualmente.
Su Linux non è male, ma le librerie Haskell che si legano al codice C esterno tendono ad essere labili da compilare su Windows. (Stuff come OpenGL, zlib, ecc.) I pacchetti che sono al 100% codice hashell di vaniglia sono facili da compilare su qualsiasi sistema.
Non l'ho fatto e sono al lavoro, quindi non riesco a testarlo, ma guardando the GHC docs Penso che si possa usare il flag --with-compiler=path
per selezionare quale versione di GHC usare?
Vedere anche this question, relativo all'utilizzo della cabala con più versioni di ghc installato. Direi che probabilmente vorrai usare cabal-dev o qualcosa di simile a sandbox, altrimenti il tuo database dei pacchetti potrebbe diventare un casino.
MODIFICA: per impostazione predefinita, penso che sia possibile impostarlo in un file di configurazione cabale. Vedi i commenti alla risposta accettata in quella domanda che ho collegato.
Grazie, avvicinandosi. Ora la cabala sta usando GHC-7.6.2 ma sto ricevendo errori come questo quando provo ad installare le librerie ..................... Registrando nats-0.1 ... cabal: autorizzazione negata cabal: Errore: alcuni pacchetti non sono stati installati: nats-0.1 non riuscito durante la fase di installazione finale. L'eccezione era: ExitFailure 1. È perché questi pacchetti non sono progettati per essere costruiti con questa nuova versione ghc, o è qualcosa che ho impostato errato? – MFlamer
Non sono sicuro di cosa si tratti del permesso negato. Guardando a quel pacchetto nats, sembra che dovrebbe costruire con l'ultimo GHC. Hai eseguito l'aggiornamento della cabala prima di eseguire la cabal? Sarò onesto, anche per me questo è un territorio sconosciuto, quindi buona fortuna e assicurati di aggiornarci su ciò che funziona. So che le persone parlano sempre di quanto possa essere difficile far funzionare le cose su Windows, potresti essere un pioniere qui :) – tredontho
Capisco che le librerie devono essere compilate con ogni versione di GHC. Sto solo cercando di specificare la versione da utilizzare per la costruzione con "runhaskell". Ho scaricato 7.6.2 che è solo una cartella di file eseguibili, librerie, ecc. Cosa succederà? Come posso scegliere tra le 2 opzioni? Grazie. – MFlamer
Hmm, è interessante. Erano soliti fornire programmi di installazione MSI per Windows. Immagino che ora sia arrivata la piattaforma Haskell che non si preoccupa più. La mia ipotesi sarebbe che è necessario modificare la variabile 'PATH' in modo che il nuovo GHC sia elencato per primo. – MathematicalOrchid