Implementazioni comuni di Lisp: threading e multipiattaforma?

6

Sto imparando Common Lisp, principalmente come un hobby per la "mente palestra", ma voglio finire con un insieme di abilità che potrebbero anche essere utilizzabili "nella vita reale", perché quando impari una lingua, anche tu accumulare conoscenze sulla gestione dei moduli e dei pacchetti, sulla distribuzione e sulle cose, che piaccia o meno, quindi voglio imparare con un'implementazione CL che è anche utilizzabile in produzione. Quindi la mia domanda è:

Quale implementazione CL è più utilizzabile "in produzione", con attributi come questi? :

  • è multipiattaforma - si dovrebbe essere in grado di utilizzare la stessa implementazione linguistica e le stesse lingue su un server Linux, una macchina dev di Windows e una MacOS (la cosa più bella sarebbe essere in grado di compilare per Android, Windows Phone e RT e forse anche iOS)
  • ha una buona concorrenza , parallelismo , multi-threading e queste funzioni funzionano multipiattaforma , altrimenti non conta
  • è facile interfaccia con altri linguaggi - lavorare con le librerie C è un must, ma qualsiasi altra cosa, come una semplice interfaccia CL-Python sarebbe bella

Insisto sulla parte multipiattaforma perché so che uno degli argomenti seri per Reddit Ditching CL (CMUCL - btw, so che SBCL è fork di CMUCL, ma come si confrontano?) era che gli sviluppatori non potevano basta usare i loro Mac per svilupparsi senza essere ssh'd in un ambiente di server di sviluppo (citazione: "Sul mio Mac, le mie scelte di implementazioni di thread Lisp erano limitate a OpenMCL, e in FreeBSD è CMUCL." ) . Sì, si può usare una VM di sviluppo, ma ancora ...

Nota 1: stavo quasi per stabilirmi su CLISP ma non conosco le sue caratteristiche di concorrenza, e mi sono imbattuto anche in questo: " tutto-ma-forza il tuo codice a essere rilasciato come GPL "(non riesco a capire cosa questo significhi o in che modo la licenza di una lingua possa essere forzata sul tuo codice, ma non sono fluente in legalese ...).

Nota n. 2: Non mi piace molto la JVM, e se dovessi usare un Lisp su di esso sarebbe Clojure e nient'altro, quindi nessun suggerimento JVM Lisps , per favore:)

    
posta NeuronQ 20.01.2013 - 10:36
fonte

1 risposta

6

Dichiarazione di non responsabilità: sono un contributore (minore) di SBCL, ma prima ero un utente. Come felice utente di CLISP, CMUCL e SBCL, ecco perché SBCL è la mia implementazione CL "go to":

Steel Lisp comune soddisfa i criteri che hai citato:

  • Funziona su MacOS, Windows e Linux (tra altre piattaforme )

  • Fornisce un'API identica per il threading e il controllo della concorrenza su tutte queste piattaforme

  • Ha un'interfaccia di funzione straniera completa per consentire l'interfacciamento con C

Inoltre, SBCL è un buon ambiente Lisp in generale:

  • è un Lisp nativo - nessuna JVM, nessun bytecode

  • è supportato da SLIME e Quicklisp

  • è un'implementazione matura e completa

  • è stato sviluppato attivamente e ho riscontrato buoni inversioni di tendenza quando ho riscontrato errori

risposta data 23.01.2013 - 04:52
fonte

Leggi altre domande sui tag