Существует Схема Гамбита, Схема MIT, Схема PLT, Куриная Схема, Bigloo, Воровство...; затем существует все шепелявить.
Все же, нет (к моему знанию) единственной популярной схемы/шепелявости на LLVM, даже при том, что LLVM обеспечивает много хороших вещей как:
Итак, почему случается так, что нет хорошей схемы/шепелявости на LLVM?
LLVM предоставляет многое, но это лишь небольшая часть среды выполнения, которая необходима функциональному языку. И вызовы C FFI несложны, потому что LLVM оставляет управление памятью кому-то другому. Взаимодействие со сборщиком мусора - это то, что затрудняет вызовы FFI в таких языках, как Scheme.
Возможно, вас заинтересует HLVM , но на данный момент он все еще более чем экспериментален.
семантически, обе версии оператора удаления в C ++ могут «есть» любой указатель; Однако, если указатель на один объект отдается Удалить [] []
, то Ub приведет к тому, что означает, что все может произойти, включая сбой системы или вообще ничего.
C ++ требует, чтобы программитор выбрал правильную версию оператора удаления в зависимости от предмета DealLocation: массив или один объект.
Если компилятор может автоматически определить, прошел ли указатель к оператору удаления, был массивом указателя, то будет только один оператор удаления в C ++, что будет достаточно для обоих случаев.
-121--3473195-Одним из них следует помнить, так это то, что многие из этих реализаций имеют C FFIS и компиляторы Nature-Code, которые значительно предписывают LLVM.
GHC экспериментирует с бэкэндом схемы и получает действительно интересные предварительные результаты с помощью своего компилятора собственного кода. Конечно, это haskell. Но недавно они внесли новые изменения в LLVM, упростив хвостовые вызовы IIRC. Это может быть полезно для реализации какой-то схемы.
нет (насколько мне известно) ни одной популярной схемы / лиспа на LLVM
В настоящее время llvm-gcc
- это ближайшая к популярной реализации любого языка на LLVM. В частности, еще нет зрелых реализаций языка на основе LLVM со сборкой мусора. Я уверен, что LLVM будет использоваться в качестве основы для множества интересных реализаций языков следующего поколения, но это потребует много времени и усилий, и в этом контексте LLVM только начинается.
Мой собственный проект HLVM - одна из немногих реализаций на основе LLVM со сборкой мусора, а его сборщик мусора поддерживает многоядерность, но имеет слабые привязки: я использовал теневой стек для «несовместимой среды», а не для взлома код C ++ в LLVM для интеграции реального обхода стека.