2009-11-02 4 views
5

Secondo Wikipedia: "IronScheme, un'imminente implementazione di Scheme, stava progettando di basarsi sul DLR, ma ha deciso di abbandonare questa idea perché il ramo DLR utilizzato dal progetto non era sincronizzato con il trunk e anche perché il DLR, secondo gli sviluppatori, non è in grado di supportare la maggior parte dei requisiti dello schema "Quali sono alcuni dei requisiti che IronScheme non è stato in grado di completare?

Qualcuno sa quali requisiti non sono stati soddisfatti e perché?

+0

Probabilmente continuazioni. – jrockway

+0

@jrockway: le continuazioni limitate sono più un problema di runtime. – leppie

risposta

8

In origine, uno dei grandi limiti era la possibilità di generare assiemi. Credo tuttavia che l'abbiano risolto.

In secondo luogo, ho richiesto il supporto per le chiamate di coda, ma ciò non è mai accaduto, ed è assolutamente necessario per Scheme.

Infine, il DLR sembrava molto incentrato su Python e disponeva di tonnellate di funzionalità non richieste per Scheme (ad es. Ambienti di prima classe) che rallentavano solo le cose e impedivano ulteriori ottimizzazioni.

In ogni caso, il piano per la versione 2, è quello di riscrivere il compilatore in Scheme, e quindi andare barebone con Reflection.Emit, o usare un 'assemblatore' non linguistico come la CCI.

*** Probabilmente mi sto dimenticando di più

+1

Ottimo per vedere una risposta direttamente dalla fonte. –

+0

Sono stato fortunato, ho visto questo 40 secondi dopo che è stato pubblicato, mi sono inviato un promemoria quando ho iniziato a lavorare :) – leppie

+0

Grazie mille per la risposta. Mi piacerebbe sapere più limitazioni. – unj2