Wie unterscheiden sich die verschiedenen ANSI CL-Implementierungen?
Als ich angefangen zu lernen, CL-aus der Praxis Common Lisp, wie gepredigt wird in dem Buch, ich begann mit Allegro CL-compiler. Ich stoppte, es zu benutzen, da seine kommerzielle noch frei bit nicht beeindrucken mich. Es benötigt eine Verbindung zu Ihrer remote-server für die Lizenzierung stopft.
Wechselte ich zu "clisp" und benutze es. Nun, ich habe gehört, über SBCL und Planung zu beginnen, es zu verwenden, wie gut.
So, die Frage ist: Wie gehen die verschiedenen ANSI CL-Implementierungen unterscheiden? Jede praktische Erfahrung mit dem Einsatz von einen über den anderen ?
Danke.
InformationsquelleAutor der Frage | 2009-02-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es Teile von ANSI CL verlassen, dass bestimmte details für die Implementierung zu bestimmen; Sie werden feststellen, dass für diejenigen Teile der standard, jede Anwendung hat seine eigenen Macken.
Sehen Sie sich auch für Dinge, die wichtig sind, um die Laufzeit, aber nicht definiert in der Sprache: Dinge wie threading und multiprocessing und die garbage-collection variieren erheblich in Leistung und Zuverlässigkeit.
Habe ich gefunden SBCL werden, die einfachste Implementierung, um die Arbeit mit Linux; es hat eine gute Unterstützung für threading im Linux. Ich kann nicht sagen viel über den garbage collector, weil es nicht darauf ankam, mir viel noch.
Unter Windows, Ihre beste Wette wird wahrscheinlich sein, Allegro oder LispWorks, obwohl ich ' ve hatte einigen Erfolg mit clisp auf Windows. Der Windows-port von SBCL voran, aber ich habe nicht verwendet es viel, also kann ich nicht wirklich kommentieren.
Allgemein gesprochen, ein Verständnis für diese Arten von Dinge, die sind schwierig zu bekommen, durch recherche oder Analyse; es kommt durch Erfahrung. Wählen Sie einfach eine anständige Umsetzung, dass Sie sind bequem mit, und an die Arbeit. Musst du die kniffligen Sachen, wie Sie gehen.
InformationsquelleAutor der Antwort Ben Collins
Sehen Common Lisp-Implementierungen: Eine Umfrage von Daniel Weinreb.
InformationsquelleAutor der Antwort huaiyuan
Wenn Sie auf einer Maschine ausgeführt werden können, SBCL, sollten Sie es verwenden. Es ist
der Schnellste Kostenlose Lisp-compiler (kann code generiert werden, wird so schnell
als Haskell, OCaml, Java, C und C++, die sind alle sehr sehr schnell,
vor allem im Vergleich zu Python und Ruby). Es ist auch ein ziemlich komplettes
Umsetzung und unterstützt die meisten Swank Funktionen (SCHLEIM), das ist schön, wenn Sie entwickeln.
Als einige der anderen Kommentare erwähnt, wirst du nicht wirklich bemerken
Unterschiede, wenn Sie beim ersten Start aus. Alle freien CL
Implementierungen sind "schnell genug" und unterstützt alle Funktionen, die Sie benötigen. Aber wenn Sie zu schreiben beginnen
- Produktions-software, schätzen Sie SBCL Funktionen. OTOH, es gibt wirklich keinen Grund, nicht zu wechseln jetzt.
InformationsquelleAutor der Antwort jrockway
Schaue ich Win32-Lösungen für die gleiche Frage. Wie weit freien Lisp-Implementierungen unter Windows, würde ich dringend empfehlen Clozure CL (CCL). Es gibt mehrere Gründe für diese. Die erste ist, dass Clozure unterstützt 32 - und 64-bit-Binärdateien. Es ist sehr schnell, und etwas kompakter. Aber am wichtigsten ist, es ist konsistent und korrekt sind. Ich finde, es ist eine extrem Reife Lisp, nach der Arbeit mit Lispworks (die vermisse ich) für mehrere Jahre. CCL hat eine sehr schöne Aufgabe, mit native OS-threads, sockets und einige andere Elemente, die nicht Teil der CL-spec. Die Implementierung von CLOS scheint zu sein, sehr gründlich. Und es ist GC-und Speicher-management sind hervorragend. Ich im Vergleich CCL -, SBCL auf Win32, und während SBCL war etwas schneller auf mehrere benchmarks, Nachteile würde up viel mehr, und Ihr Bild wuchs und wuchs, auch nach mehreren gezwungen GCs. Mittlerweile, CCL konsequent war, klein, schnell, und schön zu verwenden. Und wenn Sie möchten, eine Plattform, die konsistent über Windows -, Mac -, und Linux, und hat sowohl für die 32 - und 64-bit-Unterstützung, dann suchen Sie nicht weiter.
Ich habe versucht, CormanLisp auf Win32, und es gab viele Dinge über Sie, die ich mochte. Aber es läuft nicht richtig auf 64-bit-Windows-Plattformen und ist begrenzt auf Win32. Es ist auch nicht frei, und irgendwie hatte ich es Absturz bei mir, wenn ich werfen Sie einige Müll-code. Ich war auch leicht in der Lage zu machen SBCL Absturz. Nicht so bei CCL. Rock-solid. Wirklich, die Jungs haben einen fantastischen job, und letztlich wird helfen, Lisp lebendig.
Als für SCHLEIM, ich habe nicht versucht, Sie zu bekommen SLIME arbeiten mit SBCL, aber ich habe es wunderbar funktioniert mit CCL. Egal, was Ihre Lust ist, empfehle ich, dass die Leute den code schreiben, der leicht tragbar. Ziel für Windows, Mac, und Linux, und das Ziel für 64-bit. Wenn Sie diese betrachten, dann CCL ist Ihre beste Wahl insgesamt.
Einen letzten Versuch, eine Antwort auf diese ist zu überlegen, was falsch ist mit den anderen. Hier ist, was ich kam zu finden:
Es scheint auch, dass Roger Corman ist nicht aktiv an der Entwicklung CormanLisp, die
schade, aber so ist die Realität.
wenn Sie bereits wissen, CL, dann ist es nicht Wert, den Aufwand learning Clojure ' s
viele Unterschiede. Ich bin sicher, einige können Sie abholen schnell, aber ich sicherlich nicht.
(Wenn Java-code kompatibel ist, was Sie nach, dann suchen Sie in ABCL).
dave
InformationsquelleAutor der Antwort Dave Bakhash
Ich weiß nicht genug, um Ihnen eine ausführliche Antwort, aber ich bemerkte, dass SBCL war wesentlich schneller dann Clisp, wenn ich arbeite mit der CL für meine AI-Klasse. Es sei denn, Sie haben einen zwingenden Grund, nicht zu, würde ich vorschlagen, gehen mit SBCL.
Ich habe gehört, dass Clisp ist einfacher zu installieren und ist mehr tragbar als SBCL (die viel Prozessor-spezifische Optimierungen), aber wenn Sie mit Linux sind Sie sowohl leicht genug, um fetch, die vom Paket-manager.
InformationsquelleAutor der Antwort Kyle Cronin
Fand ich die Fehlermeldungen in clisp zu sein, freundlicher, und mir helfen, das problem schneller.
InformationsquelleAutor der Antwort Arthur Ulfeldt
Scheint es, dass SBCL s REPL ist nicht freundlich, im Vergleich mit clisp ? E. G. ich kann mit der TAB-Taste, um auto-complete-Eingang in clisp.
so clisp ist besser für lisp-Neuling.
InformationsquelleAutor der Antwort z_axis
Ich habe ziemlich viel Glück mit der Installation von clisp mit cygwin wenn Sie ' re unter windows.
InformationsquelleAutor der Antwort Jason Baker
Hängt von Ihrem Betriebssystem der Wahl
EDIT:
Sbcl auf windows fehlt threading und ist im Allgemeinen nicht stabil, und keiner von core-maintainer windows verwenden.
ecl ist die deutlich bessere Wahl für cross-Plattform-lisps, die das feature-set ist equaly stabil auf allen gängigen Plattformen.
BEARBEITEN 2011-10:
Sbcl windows hat nun threading-Unterstützung. Es ist noch nicht vollständig verschmolzen mainiline, aber es gibt eine Gabel, die ist ziemlich stabil, die Gewinde-und andere Windows-spezifische goodies.
InformationsquelleAutor der Antwort Marko