Почему не там хорошая схема/шепелявость на llvm?

Существует Схема Гамбита, Схема MIT, Схема PLT, Куриная Схема, Bigloo, Воровство...; затем существует все шепелявить.

Все же, нет (к моему знанию) единственной популярной схемы/шепелявости на LLVM, даже при том, что LLVM обеспечивает много хороших вещей как:

  • легче сгенерировать код, чем x86
  • легкий выполнить вызовы FFI C...

Итак, почему случается так, что нет хорошей схемы/шепелявости на LLVM?

39
задан Community 8 January 2014 в 22:47
поделиться

4 ответа

LLVM предоставляет многое, но это лишь небольшая часть среды выполнения, которая необходима функциональному языку. И вызовы C FFI несложны, потому что LLVM оставляет управление памятью кому-то другому. Взаимодействие со сборщиком мусора - это то, что затрудняет вызовы FFI в таких языках, как Scheme.

Возможно, вас заинтересует HLVM , но на данный момент он все еще более чем экспериментален.

23
ответ дан 27 November 2019 в 02:36
поделиться

семантически, обе версии оператора удаления в C ++ могут «есть» любой указатель; Однако, если указатель на один объект отдается Удалить [] [] , то Ub приведет к тому, что означает, что все может произойти, включая сбой системы или вообще ничего.

C ++ требует, чтобы программитор выбрал правильную версию оператора удаления в зависимости от предмета DealLocation: массив или один объект.

Если компилятор может автоматически определить, прошел ли указатель к оператору удаления, был массивом указателя, то будет только один оператор удаления в C ++, что будет достаточно для обоих случаев.

-121--3473195-

Одним из них следует помнить, так это то, что многие из этих реализаций имеют C FFIS и компиляторы Nature-Code, которые значительно предписывают LLVM.

7
ответ дан 27 November 2019 в 02:36
поделиться

GHC экспериментирует с бэкэндом схемы и получает действительно интересные предварительные результаты с помощью своего компилятора собственного кода. Конечно, это haskell. Но недавно они внесли новые изменения в LLVM, упростив хвостовые вызовы IIRC. Это может быть полезно для реализации какой-то схемы.

0
ответ дан 27 November 2019 в 02:36
поделиться

нет (насколько мне известно) ни одной популярной схемы / лиспа на LLVM

В настоящее время llvm-gcc - это ближайшая к популярной реализации любого языка на LLVM. В частности, еще нет зрелых реализаций языка на основе LLVM со сборкой мусора. Я уверен, что LLVM будет использоваться в качестве основы для множества интересных реализаций языков следующего поколения, но это потребует много времени и усилий, и в этом контексте LLVM только начинается.

Мой собственный проект HLVM - одна из немногих реализаций на основе LLVM со сборкой мусора, а его сборщик мусора поддерживает многоядерность, но имеет слабые привязки: я использовал теневой стек для «несовместимой среды», а не для взлома код C ++ в LLVM для интеграции реального обхода стека.

3
ответ дан 27 November 2019 в 02:36
поделиться