2009-11-02 3 views
5

Laut Wikipedia: "IronScheme, eine kommende Scheme-Implementierung, plante, auf dem DLR aufzubauen, entschied sich jedoch, diese Idee aufzugeben, weil die DLR-Filiale das Projekt nicht mehr mit dem Stamm synchronisierte, und auch weil das DLR laut den Entwicklern, konnte nicht die Mehrheit der Anforderungen des Scheme unterstützen "Welche Anforderungen konnte IronScheme nicht erfüllen?

Weiß jemand, welche Anforderungen nicht erfüllt wurden und warum?

+0

Wahrscheinlich Fortsetzungen. – jrockway

+0

@jrockway: begrenzte Fortsetzungen ist eher ein Laufzeitproblem. – leppie

Antwort

8

Ursprünglich bestand eine der größten Einschränkungen darin, Baugruppen zu generieren. Ich glaube jedoch, dass sie das gelöst haben.

Zweitens habe ich Unterstützung für Tail Calls angefordert, aber das ist nie passiert, und es ist ein absolutes Muss für Scheme. Schließlich schien das DLR sehr Python-zentrisch zu sein und hatte Tonnen von Funktionalität, die für Scheme nicht erforderlich waren (z. B. Umgebungen der ersten Klasse), was die Dinge nur verlangsamte und weitere Optimierungen verhinderte.

Wie auch immer, der Plan für Version 2 ist, den Compiler in Scheme umzuschreiben und dann entweder Barebones mit Reflection.Emit zu verwenden oder einen nicht sprachzentrischen 'Assembler' wie den CCI zu verwenden.

*** Ich vergesse wahrscheinlich mehr

+1

Schön, eine Antwort direkt von der Quelle zu sehen. –

+0

Ich hatte Glück, sah diese 40 Sekunden, nachdem es veröffentlicht wurde, schickte mir eine Erinnerung, wenn ich zur Arbeit kam :) – leppie

+0

Vielen Dank für Ihre Antwort. Ich würde gerne mehr Einschränkungen erfahren. – unj2