Компоненты инструментальной цепочки
Описывает роль отдельной низкоуровневой цепочки инструментов Whale и границ компонентов экосистемы Wave.
Wave Foundation
WhaleИран
Whale — это набор инструментов низкого уровня, который обрабатывает сборки и промежуточные представления. Компоненты, которые обрабатывают сборки, объекты, ссылки и промежуточные представления, предназначены для повторного использования в Wave и других собственных инструментах генерации кода.
Whale — это не название всей среды разработки Wave. Обязанности по каждому проекту распределяются следующим образом:
| проект | ответственность |
|---|---|
wavec |
Wave Проверяет исходный код и создает исполняемый файл. |
| Vex | Управляет пакетом Wave, manifest, графом зависимостей, lockfile и сборками пакетов. |
| Whale | Предоставляет независимые компоненты assembler, object, linker и IR. |
Wave std |
Среда выполнения и система API предоставляются как исходные модули Wave. |
компонент
Whale workspace состоит из четырёх основных библиотечных зон:
assembler: Токенизация, AMD64 Синтаксический анализ/кодирование, section, symbol и relocationobject: модель объектного файла и ELF64 writerlinker: Слой связи.ir: Whale IR тип, builder, вывод, проверка и опция frontend socket
Исполняемый файл whale предоставляет этой области команды asm, object, link и ir.
граница инструмента
Программа Wave строится как wavec. При работе непосредственно со сборками, объектными файлами и IR используйте команду whale.
Установка Whale не меняет метод сборки wavec. Vex использует wavec для сборки пакета Wave, а Whale запускает его непосредственно в задаче, которая обрабатывает артефакты низкого уровня.
Проверка результатов
При связывании артефакта Whale с процессом сборки убедитесь, что object format и целевой объект architecture совпадают. symbol и relocation можно проверить с помощью независимых инструментов, таких как readelf и objdump. Сборки, использующие IR socket, должны использовать socket schema от того же производителя, что и Whale.