Skip to content

Latest commit

 

History

History
108 lines (72 loc) · 6.07 KB

File metadata and controls

108 lines (72 loc) · 6.07 KB

Languages: English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Français | Deutsch | Español | Italiano | Русский | العربية

← NeverC project

Same locale: use the language bar above; sub-pages (dyncode guide) are linked in that language from this index.

NeverC Documentation

Design notes, API reference, and guides for every NeverC subsystem.


DynCode Compiler

The dyncode compilation pipeline is NeverC's primary research focus. For architecture, CLI options, platform matrix, and examples, see:

DynCode Compiler →

Document Description
README Overview, quick start, supported targets
Pipeline & PIC IR → object → extraction design
IR Pass Design Rationale for each IR pass
MIR Pass Design Backend MIR passes
Kernel-Mode DynCode Ring-0 compilation
Cross-Platform Architecture TargetDesc and extractors
Platform Extension Guide Adding new targets
ARM64 Assembly Tutorial ARM64 instructions from a dyncode perspective
Roadmap Planned work
Progress Implementation status

The .nc File Extension

NeverC recognizes .nc as its native source file extension. When you use .nc, the compiler automatically enables all NeverC language extensions (-fneverc-types, -fbuiltin-string) — no extra flags needed.

.nc Extension →


Built-in Runtimes

NeverC extends standard C with opt-in built-in runtimes embedded as LLVM bitcode. Each is controlled by a -fbuiltin-<name> flag. For .nc files, string is enabled automatically.

Built-in Runtime System →

Built-in Flag Description
Built-in String -fbuiltin-string Value-semantic string type with dot-call methods, automatic memory management, and native UTF-8
Built-in mimalloc -fbuiltin-mimalloc Transparent high-performance mimalloc allocator override for malloc/free/calloc/realloc
String Encryption (xorstr) -fencrypt-call-strings Compile-time string encryption with stack-allocated XOR decryption and anti-signature algorithm
String Hashing (strhash) -fstrhash-algo / -fstrhash-fold Compile-time string hashing with matching runtime and optional IR constant folding

Plugin API

NeverC exposes its whole toolchain through a pure C ABI. A plugin is a shared module (.dll / .so / .dylib) that attaches to any of 130 named compiler phases — from command-line parsing to the final linked image — as an observer, an interceptor, or a replacement provider. The SDK is header-only: no LLVM headers, no compiler linkage.

Plugin API →

Document Description
README Entry point, phases, interface negotiation, registration, ABI rules
Driver API Command line, toolchain selection, action graph, job graph
Source and I/O API VFS providers, source locations, buffers, output sinks, dependencies
Preprocessor API Tokens, macros, pragmas, includes, feature queries, 39 event kinds
AST and semantic API Parser extension, AST mutation, name lookup, types, constants
IR API LLVM IR reading, transactional building, analyses, passes, providers
MIR API Machine functions, registers, frames, MIR passes and analyses
Target, MC, assembly, object Target registration, calling conventions, MC encoding, object graphs
Link and LTO API Link graph, symbol resolution, GC/ICF, linker and LTO providers
DynCode API Flat position-independent images, import lowering, charset encoding
Custom calling conventions Data-driven calling-convention plugins

Roadmap

Major planned directions for the NeverC project: standard library, EVM smart contract backend, and Solana eBPF backend.

Roadmap →

Feature Description
Standard Library (std) Go-style batteries-included packages: fmt, os, io, net, crypto, encoding, sync, and more
Obfuscation Plugin Suite (neverc-obfuscation) First-party VM, MBA, control flow flattening, polymorphic engine, and anti-tamper plugins
UI Component Library (neverc-ui) Qt-inspired cross-platform UI with HTML/JS/CSS renderer, drag-and-drop designer, AI-native workflow
IDE & Language Tooling (neverc-ide) VSCode extension + standalone IDE for .nc files with IntelliSense, debugging, and dyncode pipeline visualization
EVM Smart Contracts Compile C to EVM bytecode — write smart contracts in C instead of Solidity
Solana eBPF Compile C to Solana eBPF bytecode — on-chain program development in C

Local Development

Build NeverC from source and set up the local development environment with PATH configuration.

Local Development →


Examples

Complete buildable samples demonstrating NeverC's cross-platform compilation capabilities. All examples cross-compile from macOS / Linux.

Examples →