2,714 karma · joined October 3, 2018
Love this :)
I'm not saying this to refute your comment! This might actually be a valid idea.
Since you're looking at rust, https://www.youtube.com/user/gamozolabs/videos could be a good fit.
Seems like the loop based code wasn't so bad after all...
The location permissions system preferences behavior changes in more macOS updates than not. The current system hasn't been around for that long.
Sounds funny, but stuff happens :)
Seems like a good thing to match the chrome cycle.
A simple linker doesn't need symbols for a link plan, or even a link plan (assuming you just load all input files and ignore static library indices). It doesn't even need a symbol table, it can do a full scan of all input files every time it needs a symbol during relocation processing. The symbol table is just a performance optimization.
Again, this changes for a real linker with weak symbols, comdats, section gc, etc.
I baselessly claim that a simple linker that doesn't need to read elf can be < 200 lines :) If you want to do elf, I think that becomes difficult.
A linker in first approximation just concatenates files.
In second approximation, it splits every input file into N parts (code and data, basically), then concatenates the corresponding parts in each input file, and writes all concatenated parts ("sections") to the output file.
It needs to fix up references at the end and it needs symbols for that, but that's kind of an implementation detail.
Even diagnosing duplicate symbols is a convenience feature if you look at things this way.
Symbols become more important if you want to write a "real" linker that supports weak symbols and symbols imported from dynamic libraries. But for the understanding the basics, it helps to deemphasize symbols, in my opinion.
Taking it down means others won't be able to learn this lesson.
So hopefully just temporary transition pain while the new manager learns the ropes.