12 dépôts
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 est un framework de programmation GPU et un compilateur de périphériques qui permet le développement et l'exécution de noyaux (kernels) haute performance sur du matériel NVIDIA en utilisant Rust. Il fournit un wrapper de pilote pour gérer l'allocation de mémoire du périphérique et le lancement des noyaux, servant efficacement de système pour écrire une logique de calcul GPU sans dépendre du C++. Le projet inclut une bibliothèque de calcul avec des primitives optimisées pour le matériel pour l'accélération des réseaux neuronaux et le raytracing accéléré par le matériel. Il utilise une chaîne de compilation qui traduit le code source en une représentation intermédiaire de bas niveau pour l'exécution sur les processeurs graphiques. Le framework couvre la gestion des ressources du périphérique, le développement de noyaux et la simulation d'opérations entières de haute précision. Il prend également en charge la génération de nombres aléatoires côté périphérique et des optimisations de calcul spécifiques à la cible. Des images de conteneurs pré-configurées sont disponibles pour simplifier le provisionnement de la chaîne de compilation et de l'environnement de développement à travers différentes architectures matérielles.
Defines specific hardware compute capabilities during compilation to optimize machine code for target versions.
Rust-bindgen est un générateur de liaisons d'interface de fonction étrangère au moment de la construction et un analyseur d'en-têtes C conçu pour automatiser l'interopérabilité entre les langages. Il fonctionne comme un outil pour relier Rust aux bibliothèques C, C++ et Objective-C en produisant des déclarations spécifiques à la plateforme pendant le processus de compilation. Le projet se distingue par sa capacité à gérer des constructions de langage de la famille C complexes, y compris l'héritage et les méthodes C++, ainsi que les classes et protocoles Objective-C. Il garantit la compatibilité binaire entre différentes architectures en calculant les dispositions de mémoire sensibles à la cible et en validant que les tailles et alignements de structure générés correspondent aux définitions source originales. L'outil fournit un mappage de type étendu pour les unions C, les champs de bits et les membres de tableau flexibles, tout en mappant les types de bibliothèque standard intraduisibles ou complexes vers des blobs d'octets opaques. Il inclut un système de configuration pour filtrer les liaisons, substituer des types complexes et contrôler la dérivation de traits ou la visibilité des champs. Les liaisons générées peuvent inclure une documentation extraite des en-têtes système et sont traitées via un formateur standard pour garantir un style de code cohérent.
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.
Ce projet est un modèle de base de synthèse vocale expressif et un système de clonage de voix conçu pour synthétiser une parole humaine avec une nuance émotionnelle et une haute fidélité. Il fonctionne comme un modèle de parole affinable qui peut générer de l'audio imitant une personne spécifique en utilisant un échantillon de voix de référence. Le système se distingue par un moteur d'inférence haute performance qui utilise la mise en cache mémoire et la compilation matérielle pour réduire la latence pendant le processus de génération audio. Il permet en outre des améliorations de la qualité de synthèse en entraînant le modèle de langage sur des jeux de données personnalisés composés de fichiers audio et de légendes correspondantes. Le framework couvre les domaines plus larges du clonage de voix personnalisé, de la synthèse vocale expressive et de l'affinage de modèles de parole.
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.