vault backup: 2024-07-02 09:02:28

This commit is contained in:
zleyyij 2024-07-02 09:02:28 -06:00
parent 20c06e7211
commit 159c4aee23

View File

@ -20,12 +20,15 @@ At a broad level, copy and patch code compilation works by having a pre-built li
First, prior to compilation, MetaVar generates a stencil library. First, prior to compilation, MetaVar generates a stencil library.
That stencil library is used as input for a copy and patch code generator, alongside a bytecode sequence or AST node. In the copy step, stencils are copied from the stencil library that implement the bytecode/AST node. In the patch step, pre-determined places in the binary code are That stencil library is used as input for a copy and patch code generator, alongside a bytecode sequence or AST node. In the copy step, stencils are copied from the stencil library that implement the bytecode/AST node. In the patch step, pre-determined places in the binary code (Operands of machine instructions, jump addresses, the values of constants).
Even though machine code is patched, a copy and patch compiler doesn't need to have knowledge of platform specific machine instructions, and is portable across architectures supported by the patch library.
## MetaVar ## MetaVar
MetaVar generates binary stencils, which allows the user to systematically generate the binary stencil variants in clean and pure C++, and leverages the MetaVar generates binary stencils, which allows the user to systematically generate the binary stencil variants in clean and pure C++, and leverages the
Clang + LLVM compiler infrastructure to hide all platform-specific low-level detail. Clang + LLVM compiler infrastructure to hide all platform-specific low-level detail.
The MetaVar compiler generates binary stencils of different optimization levels for every bytecode or AST node. MetaVar can generate binary stencils of different optimization levels for every bytecode or AST node, which the generator can select from at generation time.
# Terminology # Terminology
| Phrase | Definition | | Phrase | Definition |