6. Developer ManualΒΆ
- 6.1. Contributing to Numba
- 6.2. Numba Architecture
- 6.2.1. Introduction
- 6.2.2. Contexts
- 6.2.3. Compiler Stages
- 6.2.3.1. Stage 1: Analyze Bytecode
- 6.2.3.2. Stage 2: Generate the Numba IR
- 6.2.3.3. Stage 3: Macro expansion
- 6.2.3.4. Stage 4: Infer Types
- 6.2.3.5. Stage 5: Rewrite Typed IR
- 6.2.3.6. Stage 6a: Generate No-Python LLVM IR
- 6.2.3.7. Stage 6b: Generate Object Mode LLVM IR
- 6.2.3.8. Stage 7: Compile LLVM IR to Machine Code
- 6.3. Extending the Numba frontend
- 6.3.1. Overview
- 6.3.2. Tutorial
- 6.3.2.1. Creating a New Numba Type
- 6.3.2.2. Organizing Type Signatures with a Registry
- 6.3.2.3. Adding an Attribute Value Type Signature
- 6.3.2.4. Adding a Function Type Signature
- 6.3.2.5. Overloading Elementary Operations
- 6.3.2.6. Installing the Registry in a Typing Context
- 6.3.2.7. Enabling Type Inference for Function Arguments and Globals
- 6.3.3. Conclusion
- 6.4. Extending the Numba backend
- 6.5. Polymorphic dispatching
- 6.6. Notes on generators
- 6.7. Notes on Numba Runtime
- 6.8. Using the Numba Rewrite Pass for Fun and Optimization