ГНУ молния
Разработчик(и) | Проект GNU |
---|---|
Первоначальный выпуск | 19 января 2001 г [1] |
Стабильная версия | 2.2.3 [2] / 8 февраля 2024 г. |
Репозиторий | |
Операционная система | Кросс-платформенный |
Платформа | ГНУ |
Тип | Компиляция точно в срок |
Лицензия | 2007: LGPL-3.0 или новее [а] 2002: LGPL-2.1 или новее [б] |
Веб-сайт | Официальный сайт |
GNU Lightning — это библиотека бесплатного программного обеспечения для генерации кода на языке ассемблера во время выполнения. Версия 2.1.3, выпущенная в сентябре 2019 года, поддерживает серверные части для SPARC (32-разрядные версии), x86 (32- и 64-разрядные версии), MIPS , ARM (32- и 64-разрядные версии), ia64 , HPPA , PowerPC (32-разрядные версии). бит), Alpha , S390 и RISC-V (64-бит). [5] [6]
Преимущества перед другими библиотеками
[ редактировать ]Возможности, предоставляемые GNU Lightning, делают его полезным для JIT-компиляции . По сравнению с такими библиотеками, как LLVM или libJIT , GNU Lightning предоставляет только низкоуровневый интерфейс для сборки из стандартизированного языка ассемблера RISC, основанного на SPARC и MIPS. архитектурах [7] — на машинный язык целевой архитектуры.
Недостатки
[ редактировать ]Он не обеспечивает распределение регистров , анализ потока данных или потока управления или оптимизацию . [ нужна ссылка ] Начиная с версии 2.x, он генерирует код через промежуточный граф, а не по одному из каждой стандартизированной инструкции. Это изменение позволяет осуществлять оптимизацию между командами, такую как распределение регистров и устранение мертвого кода [1] .
Набор инструкций
[ редактировать ]Набор инструкций GNU Lightning во многом основан на существующих RISC- архитектурах.
Типы
[ редактировать ]При необходимости инструкции обрабатывают данные следующих 9 типов:
Тип | Эквивалент C |
---|---|
с | подписанный символ |
Калифорнийский университет | беззнаковый символ |
с | короткий |
нас | беззнаковый короткий |
я | интервал |
пользовательский интерфейс | беззнаковое целое число |
л | длинный |
ж | плавать |
д | двойной |
Проекты, использующие GNU Lightning
[ редактировать ]ГНУ Смоллток , [8] ГНУ Коварство , [9] и КЛИСП [10] используйте GNU Lightning для своевременной компиляции . GNU Lightning был впервые разработан как инструмент для использования в динамическом трансляторе GNU Smalltalk из байт-кодов в собственный код. [11] GNU Guile 2.9.2 и более поздние версии прекращают использовать GNU Lightning 2.x вместо своей собственной вилки на основе GNU Lightning 1.4 для генерации собственного кода, поскольку GNU Lightning 2.x усложняет оптимизацию между инструкциями. [12]
Примечания
[ редактировать ]Ссылки
[ редактировать ]- ^ «Журнал изменений» . Проект ГНУ . Проверено 22 февраля 2009 г.
- ^ Пауло Сезар Перейра де Андраде (8 февраля 2024 г.). «Выпущена версия GNU Lightning 2.2.3!» . Проверено 8 марта 2024 г.
- ^ «README-взлом» .
- ^ "молния-1.1.1.tar.gz" .
- ^ «Молния GNU» . Проверено 15 января 2020 г.
- ^ «Выпущена версия GNU Lightning 2.1.3!» . 18 сентября 2019 г.
- ^ «Использование и портирование GNU Lightning» . Проверено 22 февраля 2009 г.
- ^ «Страница проекта GNU Smalltalk» . Проверено 17 мая 2014 г.
- ^ «Собственный код, обновляемый точно в срок» . Архивировано из оригинала 13 мая 2020 г. Проверено 11 марта 2019 г.
- ^ «Замечания по реализации GNU CLISP» . Проверено 23 февраля 2009 г.
- ^ «Руководство пользователя GNU Lightning, благодарности» . Проверено 17 мая 2014 г.
- ^ «облегчение генерации кода во время выполнения — wingolog» . Проверено 10 декабря 2021 г.