-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomers
Description
We currently use a lot of jargon without much in the way of explanation. Having a glossary helps users and developers understand the docs and code. Here's a possible initial implementation:
# Lafleur Glossary
## A
**AST (Abstract Syntax Tree)**: A tree representation of the syntactic structure of Python code. Lafleur operates on ASTs rather than raw text to ensure syntactically valid mutations.
## C
**Child/Mutant**: A test case created by applying mutations to a parent test case.
**Corpus**: The collection of interesting test cases that have discovered unique coverage.
**Coverage Edge**: A transition between two micro-operations (uops) in the JIT trace, representing control flow.
## E
**Evolutionary Fuzzing**: A fuzzing approach where test cases evolve over time through mutation and selection based on fitness (coverage).
## H
**Harness**: A function that executes the test logic in a loop to trigger JIT compilation.
**Havoc**: A mutation strategy that applies many random transformations to create significantly different code.
## J
**JIT (Just-In-Time) Compiler**: CPython's experimental compiler that converts hot Python bytecode into machine code.
## L
**Lineage**: The chain of parent-child relationships from a test case back to its original seed.
**Lineage Coverage**: The union of all coverage discovered by a test case and all its ancestors.
## M
**Mutation**: A transformation applied to a test case to create a new variant.
## P
**Parent**: A test case selected from the corpus to be mutated.
## R
**Rare Event**: A JIT trace event that indicates unusual behavior (bailouts, failures, etc.).
## S
**Seed**: An initial test case, either generated by fusil or provided manually.
**Spam**: A mutation strategy that repeatedly applies the same transformation type.
**Sterile**: A parent that has been mutated many times without producing new coverage.
## T
**Test Case**: A Python script that exercises JIT behavior.
## U
**Uop (Micro-operation)**: A low-level operation in CPython's JIT intermediate representation.Feel free to add more entries or modify suggested ones.
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomers