No, ChatGPT is way cooler than that. It's already read every line of kernel code ever written. I start with a subsystem: the device mapper is a good recent example. I ask things like "explain the linux device mapper. if it was a class in an object-oriented language, what would its interface look like?" and "give me dm_target as a python class". I get stuff like:
def linear_ctr(target, argc, argv):
print("Constructor called with args:", argc, argv)
# Initialize target-specific data here
return 0
def linear_dtr(target):
print("Destructor called")
# Clean up target-specific data here
def linear_map(target, bio):
print("Mapping I/O request")
# Perform mapping here
return 0
linear_target = DmTarget(name="linear", version=(1, 0, 0), module="dm_mod")
linear_target.set_ctr(linear_ctr)
linear_target.set_dtr(linear_dtr)
linear_target.set_map(linear_map)
info = linear_target.get_info()
print(info)
(A bunch of stuff elided). I don't care at all about the correctness of this code, because I'm just using it as a roadmap for the real Linux kernel code. The example use case code is an example of something GPT 4o provides that I didn't even know I wanted.
No, but only because I have no use for it. I wouldn't be surprised if it did a fine job! I'd be remiss if I didn't note that it's way better at doing this for the Linux kernel than with codebases like Zookeeper and Kubernetes (though: maybe o1 makes this better, who knows?).
I do feel like someone who skipped like 8 iPhone models (cross-referencing, EIEIO, lsp-mode, code explorers, tree-sitter) and just got an iPhone 16. Like, nothing that came before this for code comprehension really matters all that much?
Do you have an example chat of this output? Sounds interesting. Do you just dump the C source code into the prompt and ask it to convert to Python?