2012-07-17 7 views

risposta

18

I campi provengono dal file .cabal del pacchetto, che elenca alcuni metadati per il pacchetto. Molti campi possono avere valori in forma libera, in modo che lo sviluppatore decida da sé cosa scrivere in quel campo e non ci sono "regole" fisse per ciò che ogni campo non deve contenere.

Portabilità: Descrive quanto è portatile il pacchetto tra i compilatori Haskell e talvolta anche tra i sistemi operativi. Gli unici valori che ho visto sono "portable" e "unportable". Un pacchetto non trasportabile è un pacchetto che può dipendere da un'estensione di linguaggio Haskell che esiste solo nel compilatore GHC e non funziona su nessun altro compiler Haskell come UHC o che potrebbe dipendere da qualche libreria di sistema che esiste solo in UNIX e non funziona in Windows

Stabilità: Specifica come stabile una libreria è, che comprende la sua affidabilità (per esempio quanto spesso si blocca), ma soprattutto la frequenza suoi cambiamenti API. Ho visto i valori "sperimentale", "provvisorio" e "stabile", ma potrebbe esserci una lista con più da qualche parte (cose nella documentazione della Cabala sono a volte impossibili da trovare). Quando un pacchetto è sperimentale, significa che la sua interfaccia probabilmente cambia tra ogni versione, perché lo sviluppatore non ha ancora deciso come dovrebbe essere implementato, o perché lo sviluppatore ha appena implementato alcune funzionalità teoriche da un foglio da qualche parte, e non lo fa intendo mantenere il pacchetto; Voleva solo implementare la funzionalità per vedere se era possibile e pubblicare il pacchetto come dimostrazione. Quando un pacchetto è provvisorio, significa che l'API generale è stabile, quindi potrebbero esserci aggiornamenti al pacchetto che corregge solo bug interni e non aggiunge o rimuove alcuna funzione. Perché è provvisorio, tuttavia, potrebbe cambiare in futuro quando gli sviluppatori decidono di aggiungere nuove funzionalità o ristrutturare la libreria. Con una libreria stabile, questo in pratica non succede mai; l'API probabilmente non cambierà mai, e l'implementazione è "solida come una roccia" o un'implementazione di riferimento di un'API o qualcosa del genere.

Il manutentore per un pacchetto è la persona o il gruppo di persone responsabili del pacchetto. L'e-mail specifica come possono essere raggiunti questi manutentori.

Il campo "Safe Haskell" fa riferimento a un'estensione GHC che è possibile leggere di più su here. Un modulo che è non sicuro utilizza funzioni come unsafePerformIO che interrompe alcune delle "regole" fondamentali di Haskell come trasparenza referenziale. Un modulo non sicuro potrebbe anche utilizzare estensioni della lingua non sicure. A safe module è un modulo che non utilizza funzioni non sicure, ecc. E non importa altri moduli non sicuri.Un fidato modulo utilizza funzioni non sicure (Direttamente affidabile, indirettamente Trusted), ma l'autore ha fatto in modo che l'API pubblica del modulo nasconde questo fatto in modo sicuro, in modo che da fuori sembra che il modulo è sicuro a tutti gli effetti. Quelle sono le opzioni per il campo "Safe Haskell".

Problemi correlati