4 ms·
You can call that linking, but it's not linking.
by michaelfeathers 12y ago
You can call that linking, but it's not linking.
- ChuckMcM 12y ago"direct to exe" perhaps. Of course things like dynamic link libraries screw up your assumptions about what the things you call actually do. And that can bite you, hence the previous model where you had 3, 4, even 6 copies of the C run time on your windows machine loaded into memory. Thank heaven they are dumping that model.
- jerf 12y agoTerminology warfare is so tedious. Whatever it is, it isn't going to flip one bit of it for us sitting here and arguing about what word best describes it, and the space of possible practical compilers is so, so much larger than the space of words we might have for them that it's not even funny. That is to say, it's not like there is a word for this, so why argue about whether it's "linking"? (It's not like looking at a functional language and calling it OO, where even if the all the terms involved are fuzzy, it's still clearly wrong.) If compilers were somehow first developed on machines with the resources we have today, I bet we wouldn't even have a "link" step in practice. It's an artifact of having to break compilation up into little units that fit into small-numbers-of-kilobytes. Linkers inevitably fading into the background of just general "partial compilation" and "final compilation" steps is pretty inevitable, and that only as a form of caching the compilation rather than any sort of theoretically necessary step.
- michaelfeathers 12y ago> That is to say, it's not like there is a word for this I'd argue that there is a word, er, term for this - code generation. It's the last phase of compilation. It doesn't matter whether the linker does it. In fact, I'm not sure there even is a real identifiable linker in this scheme.