2009-11-02 1 views
5

Согласно Википедии: «IronScheme, предстоящая реализация схемы, планировала использовать DLR, но решила отказаться от этой идеи, потому что ветвь DLR, используемая проектом, перестала синхронизироваться с багажником, а также потому, что DLR, по словам разработчиков, не смогли поддержать большинство требований Схемы »Каковы некоторые из требований, которые не удалось выполнить IronScheme?

Кто-нибудь знает, какие требования не были выполнены и почему?

+0

Возможно продолжение. – jrockway

+0

@jrockway: ограниченные продолжения - это скорее проблема времени выполнения. – leppie

ответ

8

Первоначально одним из больших ограничений была возможность генерации сборок. Я верю, однако, что они это разрешили.

Во-вторых, я запросил поддержку для вызовов хвоста, но этого никогда не было, и это абсолютно необходимо для Схемы.

Lastly *, DLR казался очень ориентированным на Python и имел тонны функциональности, не требуемые для Scheme (например, среды первого класса), которые только замедляли ситуацию и предотвращали дальнейшую оптимизацию.

В любом случае, план версии 2 состоит в том, чтобы переписать компилятор в Схеме, а затем либо перейти на barebone с Reflection.Emit, либо использовать ассемблер, не ориентированный на язык, как CCI.

*** Возможно, я забыл о более

+1

Замечательно видеть ответ прямо из источника. –

+0

Мне повезло, увидев это через 40 секунд после того, как он был отправлен, отправил себе напоминание, когда я начал работать :) – leppie

+0

Большое спасибо за ваш ответ. Мне бы хотелось узнать о дополнительных ограничениях. – unj2