2013-01-19 10 views

risposta

12

Se stai usando OSX 10.8 o versione successiva (uname -r ti dà qualcosa a partire da 12 o superiore), SML/NJ pre 110.75 non funziona troppo bene senza alcun adattamento in più. E 'un known issue che può essere risolto con l'aggiunta di scelta 10.8 (vedi la linea 12 sotto) per il codice di rilevamento del sistema operativo in .arch-n-opsys:

: 
    10*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.6 
    11*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.7 
    12*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.8 
    13*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.9 Mavericks 
    14*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.10 Yosemite 
    15*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.11 El Capitan 
    16*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.12 Sierra 
    17*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.13 High Sierra 

    *) exit 1;; 
esac;; 
+0

Gli stessi problemi sono/erano presenti per il kernel di Linux 3.x : s –

+4

In particolare, è necessario aggiungerlo a '/ usr/local/smlnj/bin/.arch-n-opsys'. (Menzionalo qui perché il collegamento è interrotto e il problema persiste ancora con 110.79 e 10.11 El Capitan ...) –

12

Il problema con le recenti installatori binari OS X ancora persistono solo l'attenzione si è spostata al 10,9 Mavericks e 10.10 versioni di Yosemite di OS X. Sebbene la causa principale sia stata risolta nella recente versione del codice sorgente.

Ecco perché da qualche tempo a risolvere questo problema si tratta solo di avere un pacchetto binario appena compilato. E per questo potrebbe essere meglio installare smlnj tramite homebrew. Si può fare con questi comandi:

brew update 
brew install smlnj 

Questo compilerà il pacchetto per voi in modo da poter risparmiare la fatica di check-out il codice sorgente e fare la compilazione da soli.

Solo per ripulire il sistema ed evitare la duplicazione è possibile rimuovere l'installazione precedente semplicemente effettuando le seguenti operazioni:

sudo rm -rf /usr/local/smlnj* 

Per l'asterisco: ho avuto una cartella smlnj nudo con l'110.76 al suo interno e uno smlnj Cartella -110.75 Immagino di aver provato ad installare due versioni precedenti ...

Potrebbe essere necessario rimuovere tutti i softlink creati dall'utente che puntano alla cartella smlnj precedente direttamente in/usr/local/removed nella precedente passo.

+0

Ho provato a installare bre, solo per ricevere quanto segue: '/usr/local/Cellar/smlnj/110.77/SMLNJ_HOME/ bin/.run/run.x86-darwin: Errore irreversibile - Eccezione non rilevata SysErr con generato a config/install.sh !!! Codice di avvio non riuscito, nessuna immagine di heap (sml.x86-darwin). È apparentemente un problema noto. https://github.com/Homebrew/homebrew/issues/32915 (Inoltre, potresti ricordare alle persone di aggiornare le loro formule di preparazione prima di eseguire l'installazione? È facile dimenticare se non sei un utente frequente di birra). –

+0

ha fatto un aumento di 10 volte per specificità. troppo male le regole di voto Idol non si applicano. ;-) – vwvan

0

Mi sono imbattuto in questo problema dopo aver accidentalmente installato una versione precedente di SML/NJ. Ho rimosso la mia installazione precedente cacciando /usr/local/smlnj e reinstallato utilizzando the pre-built system of OS X for SML/NJ 110.78. Il download più recente è disponibile sotto Downloadhere, che è quello che i futuri richiedenti dovrebbero consultare, poiché i dettagli della mia soluzione saranno probabilmente superati nel momento in cui verranno visualizzati.

5

come aggiornamento di risposta di paxdiablo, se si sta eseguendo MacOS Sierra (versione 10.12) è necessario inserire la seguente riga di ottenere SML in esecuzione:

16*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # macOS 10.12 Sierra 

Quindi, con più contesto, sarà simile a questa :

 11*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.7 Lion 
     12*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.8 Mountain Lion 
     13*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.9 Mavericks 
     14*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.10 Yosemite 
     15*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.11 El Capitan 
     16*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # macOS 10.12 Sierra 
     17*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # macOS 10.13 High Sierra 
     *) exit 1;; 
    esac;; 

SML/NJ versione 110.79 ha avuto l'OS X fino a El Capitan configurato, ma Sierra mancava ancora.

+0

Salvato il mio bacon. Sistema operativo aggiornato tra sessioni di lavoro. Tutto è rotto. Doh. Grazie per il salvataggio. – brntsllvn

0

Sierra 10.12.6

Installare SML tramite Homebrew brew install smlnj

Modificare il .bash_profile e aggiungere export PATH=/usr/local/Cellar/smlnj/110.81/bin:$PATH alla fine del file.

Dopo che source ~/.bash_profile per applicare il nuovo percorso in modo che il sistema aggiunge le nuove posizioni e quindi sa dove trovare il file di cui ha bisogno quando si digita sml

Problemi correlati