12 repositorios
Requirements and design goals for translating high-level programming languages into a specific low-level binary format.
Distinct from High-Level: Existing candidates focus on the act of compiling or specific emulator levels, not the specification of the target format itself.
Explore 12 awesome GitHub repositories matching programming languages & runtimes · Compilation Target Specifications. Refine with filters or upvote what's useful.
This repository contains the design specifications for WebAssembly, serving as a technical standard for portable low-level code. It defines the binary format, instruction set, and execution semantics required to ensure consistent behavior across different hardware platforms. The project establishes the framework for a language compilation target, detailing the requirements for translating high-level programming languages into a low-level binary format. It includes a security model that defines operational rules and safety goals for executing untrusted binary code. The specifications cover th
Details the requirements for mapping high-level language constructs to a low-level binary execution format.
This project is a multi-language compiler collection and cross-platform toolchain used to translate source code from various programming languages into optimized machine code for different hardware architectures. It provides a suite of tools including an optimizing compiler backend, a machine code generator, and a comprehensive runtime library suite that implements necessary execution environments and support functions. The system utilizes a multi-pass compilation pipeline and pluggable language front-ends to process source code into intermediate representations. It distinguishes itself throu
Maps intermediate representations to specific registers and opcodes to produce optimized machine instructions for various CPUs.
This project is an educational blog and learning resource dedicated to the Rust programming language. It provides a collection of curated guides, technical articles, and structured learning paths designed to teach language fundamentals, concurrency, and systems programming. The repository distinguishes itself by offering practical implementation tutorials for complex systems. This includes detailed guides on compiler development—specifically translating source code into targets such as ARM64, x86_64, LLVM IR, and WebAssembly—as well as networking examples for building multithreaded chat serve
Provides tutorials on generating assembly code for ARM64, x86_64, and WebAssembly targets.
Bases is a collection of pre-defined TypeScript configuration files designed to be extended by other projects. It serves as a TypeScript configuration base and build standard, providing shared files that unify language feature support and module resolution across multiple development targets. The project provides runtime-specific compiler presets that tune compiler targets and library options for specific execution environments. These presets ensure consistent build behavior and runtime compatibility by aligning the compiler with the requirements of the target engine. The system manages Type
Provides sets of compiler targets and library options tuned for specific execution environments.
rust-cuda es un framework de programación GPU y compilador de dispositivos que permite el desarrollo y ejecución de kernels de alto rendimiento en hardware NVIDIA utilizando Rust. Proporciona un wrapper de driver para gestionar la asignación de memoria del dispositivo y el lanzamiento de kernels, sirviendo efectivamente como un sistema para escribir lógica de cómputo GPU sin depender de C++. El proyecto incluye una librería de cómputo con primitivas optimizadas por hardware para aceleración de redes neuronales y raytracing acelerado por hardware. Utiliza una cadena de herramientas de compilación que traduce el código fuente a una representación intermedia de bajo nivel para su ejecución en procesadores gráficos. El framework cubre la gestión de recursos del dispositivo, desarrollo de kernels y la simulación de operaciones de enteros de alta precisión. También soporta la generación de números aleatorios en el lado del dispositivo y optimizaciones de cómputo específicas para el objetivo. Imágenes de contenedor preconfiguradas están disponibles para simplificar el aprovisionamiento de la cadena de herramientas del compilador y el entorno de desarrollo a través de diferentes arquitecturas de hardware.
Defines specific hardware compute capabilities during compilation to optimize machine code for target versions.
Rust-bindgen es un generador de enlaces de interfaz de funciones extranjeras en tiempo de compilación y analizador de encabezados C diseñado para automatizar la interoperabilidad entre lenguajes. Funciona como una herramienta para unir Rust con librerías C, C++ y Objective-C produciendo declaraciones específicas de la plataforma durante el proceso de compilación. El proyecto se distingue por su capacidad para manejar construcciones de lenguaje de la familia C complejas, incluyendo herencia y métodos de C++, así como clases y protocolos de Objective-C. Asegura la compatibilidad binaria entre diferentes arquitecturas calculando diseños de memoria conscientes del objetivo y validando que los tamaños y alineaciones de las estructuras generadas coincidan con las definiciones de origen originales. La herramienta proporciona un mapeo de tipos extenso para uniones C, campos de bits y miembros de matriz flexibles, mientras mapea tipos de librería estándar complejos o intraducibles a blobs de bytes opacos. Incluye un sistema de configuración para filtrar enlaces, sustituir tipos complejos y controlar la derivación de rasgos o la visibilidad de campos. Los enlaces generados pueden incluir documentación extraída de los encabezados del sistema y se procesan a través de un formateador estándar para asegurar un estilo de código consistente.
Specifies a target platform or compiler version to ensure generated bindings match the deployment binary format.
Bitwise is a computer architecture education kit and a comprehensive set of guides for building a custom CPU, operating system, and compiler from scratch. It serves as a CPU design tutorial and a practical framework for implementing a unique instruction set architecture. The project provides a custom instruction set architecture toolchain, including resources for creating a matching assembler and compiler. It further includes a hardware development guide for synthesizing computer components and peripheral controllers for deployment on programmable logic devices and FPGAs. The kit covers full
Provides a backend that translates abstract syntax trees into machine-specific instructions for a custom CPU architecture.
TileLang is a Python-embedded domain-specific language compiler that JIT-compiles and autotunes GPU kernels. It uses a tile-based DSL, automatic software pipelining, and parallel autotuning to generate optimized GPU kernels at runtime. It supports tensor core operations with Pythonic syntax, automatic memory management, and thread mapping. The compiler searches over tile sizes, thread counts, and scheduling policies, compiling and benchmarking candidates in parallel to find the fastest kernel. It also caches compiled binaries and tuning results to disk for reuse across sessions. TileLang inc
Identifies GPU generation to guide architecture-specific kernel optimizations during compilation.
Chisel is a hardware construction language and description tool used to define digital circuits. It functions as a generator that converts high-level hardware descriptions into synthesizable Verilog code for use in ASIC and FPGA design. The project enables the creation of parameterizable hardware templates and reusable digital components. It leverages functional and object-oriented programming patterns to transform complex circuit representations into finalized hardware descriptions. The toolset covers the register-transfer level design workflow, allowing users to model digital circuits usin
Applies automated transformations and technology-specific specializations to a design before final code generation.
Este proyecto es un modelo base de texto a voz expresivo y un sistema de clonación de voz diseñado para sintetizar voz humana con matices emocionales y alta fidelidad. Funciona como un modelo de voz ajustable que puede generar audio imitando a una persona específica utilizando una muestra de voz de referencia. El sistema se distingue por un motor de inferencia de alto rendimiento que utiliza caché de memoria y compilación de hardware para reducir la latencia durante el proceso de generación de audio. Además, permite mejoras en la calidad de la síntesis mediante el entrenamiento del modelo de lenguaje en conjuntos de datos personalizados que consisten en archivos de audio y subtítulos coincidentes. El framework cubre los dominios más amplios de clonación de voz personalizada, síntesis de voz expresiva y ajuste fino de modelos de voz.
Transforms the neural network graph into operators optimized for specific chipsets to minimize latency.
IREE is an MLIR-based compiler toolchain and runtime designed to translate machine learning models from various frameworks into optimized binaries for execution across diverse hardware targets. It provides a unified pipeline to ingest models from PyTorch, TensorFlow, JAX, and ONNX, lowering them into a common intermediate representation for deployment on CPUs, GPUs, and bare-metal embedded systems. The project distinguishes itself through a bytecode virtual machine and a hardware abstraction layer that decouple high-level model logic from specific hardware instruction sets. It supports sophis
Defines the target execution environment for the compiler, such as LLVM, WASM, or SPIR-V.
WiringPi is a GPIO hardware control library and embedded hardware interface designed for managing General Purpose Input Output pins on single board computers. It provides a standardized software layer for interacting with hardware registers, facilitating low-latency pin manipulation. The project includes a GPIO command line interface that allows users to inspect pin states and manage hardware input and output levels directly from the terminal. It supports embedded hardware prototyping and hardware state monitoring, specifically targeting Raspberry Pi boards to interact with external electron
Adjusts physical memory offsets based on the processor architecture to ensure correct hardware register targeting.