2 dépôts
Removal of unreachable code blocks and propagation of constants specifically within a compiled abstract syntax tree.
Distinct from Unused Code Identification: Distinct from Unused Code Identification: focuses on the active pruning and transformation of the AST rather than just identification.
Explore 2 awesome GitHub repositories matching development tools & productivity · AST Code Pruning. Refine with filters or upvote what's useful.
Rhai est un moteur de script embarqué et un langage à typage dynamique conçu pour être intégré dans des applications Rust. Il fonctionne comme un compilateur d'arbre de syntaxe abstraite (AST) et une couche d'interopérabilité native, permettant aux développeurs de mapper des types et des fonctions Rust dans un environnement de script pour une communication bidirectionnelle. Le projet sert de framework pour créer des langages dédiés (DSL) personnalisables. Il permet de définir des opérateurs, une syntaxe et des environnements d'exécution restreints personnalisés, facilitant la création de langages spécialisés avec des jeux de fonctionnalités sur mesure. Le moteur couvre un large éventail de capacités, notamment le sandboxing avec limitation de ressources pour une exécution sécurisée, l'organisation modulaire du code et un traitement complet des données pour les types numériques, chaînes de caractères et binaires. Il fournit également des outils pour la manipulation d'AST, la sérialisation de l'état d'exécution et l'observabilité au runtime via l'inspection de la pile d'appels et des interfaces de débogage. Le moteur est conçu pour un déploiement multiplateforme sur tout CPU ou système d'exploitation supporté par le compilateur natif.
Removes unreachable code blocks and propagates constants within the compiled AST before evaluation.
Wire is a cross-platform code generator and implementation of gRPC and Protocol Buffers. It transforms schema definitions into type-safe native language bindings for Kotlin, Swift, and Java to ensure consistent data exchange and communication between distributed systems. The project provides specialized tools for protocol buffer schema management, including the ability to prune unused types and filter fields by version to reduce final binary sizes. It also handles namespace management and allows for the creation of custom schema handlers to execute user-defined logic during the compilation ph
Removes unwanted types and fields from generated code via exclusion lists or reachability analysis to reduce binary size.