Componentes de la cadena de herramientas
Describe la función de una cadena de herramientas de bajo nivel separada, Whale, y los límites de los componentes del ecosistema Wave.
Wave Foundation
WhaleIrán
Whale es una cadena de herramientas de bajo nivel que maneja ensamblajes y representaciones intermedias. Los componentes que manejan ensamblajes, objetos, enlaces y representaciones intermedias están diseñados para ser reutilizables en Wave y otras herramientas de generación de código nativo.
Whale no es el nombre de todo el entorno de desarrollo Wave. Las responsabilidades de cada proyecto se dividen de la siguiente manera:
| proyecto | responsabilidad |
|---|---|
wavec |
Wave Examina la fuente y crea un archivo ejecutable. |
| Vex | Gestiona el paquete Wave, manifest, el gráfico de dependencia, lockfile y las compilaciones de paquetes. |
| Whale | Proporciona componentes independientes assembler, object, linker y IR. |
Wave std |
El tiempo de ejecución y el sistema API se proporcionan como módulos fuente Wave. |
componente
Whale workspace consta de cuatro áreas de biblioteca principales:
assembler: Tokenización, AMD64 Análisis/Codificación, section, symbol y relocationobject: modelo de archivo de objeto y ELF64 writerlinker: Capa de enlaceir: Whale IR tipo, builder, salida, verificación y opcional frontend socket
El ejecutable whale proporciona a esta región los comandos asm, object, link y ir.
borde de herramienta
El programa Wave se construye como wavec. Cuando trabaje directamente con ensamblados, archivos de objetos y IR, utilice el comando whale.
La instalación de Whale no cambia el método de compilación de wavec. Vex usa wavec para compilar el paquete Wave y Whale lo ejecuta directamente en una tarea que maneja artefactos de bajo nivel.
Verificación entregable
Al vincular el artefacto Whale a su proceso de compilación, asegúrese de que object format y el objetivo architecture coincidan. symbol y relocation se pueden verificar con herramientas independientes como readelf y objdump. Las compilaciones que usan IR socket deben usar socket schema del mismo productor que Whale.