-
Notifications
You must be signed in to change notification settings - Fork 135
In-place binary/jit updating #1087
Copy link
Copy link
Open
Labels
A-jitArea: JIT compilationArea: JIT compilationC-enhancementCategory: An issue proposing an enhancement or a PR with one.Category: An issue proposing an enhancement or a PR with one.compile-timeHow fast is the code compiledHow fast is the code compiled
Metadata
Metadata
Assignees
Labels
A-jitArea: JIT compilationArea: JIT compilationC-enhancementCategory: An issue proposing an enhancement or a PR with one.Category: An issue proposing an enhancement or a PR with one.compile-timeHow fast is the code compiledHow fast is the code compiled
Type
Fields
Give feedbackNo fields configured for issues without a type.
Loris Cro and Andrew Kelley recently published a blog post (https://kristoff.it/blog/zig-new-relationship-llvm/) about Ziglang's new self-hosted compiler. Part of the post is about how they can do in-place patching of the binary to avoid doing linking when changing small amounts of code (or maybe larger amounts too, I'm not sure). This seems extremely powerful. Linking is consistently a significant bottleneck in compiling rust, and completely skipping it would probably result in crazy speedups for compiling.
I'm proposing that this project pursue this either in a similar way to Zig, by patching individual functions in the output binary, or by keeping the jit open and recompiling individual functions as the source changes.