|
|
|
|
|
by nappy-doo
2474 days ago
|
|
Go currently does DWARF generation in the linker, but is in the process of moving that into the compiler. Also, most closures linking problems are relatively easy in Go. As far as stack variables for the GC, the stack is exactly scanned for all but the last frame (I believe), but conservatively scanned for the last frame. This makes it much easier. Types -- you're partially right. It is mostly all generated in the compiler, and deduped by the linker. There's no reason Go's linker couldn't be much simpler and likely even simpler than a standard C linker. You might argue that Go will give up things like LTO, but Go designs out lots of the LTO problem (not PGO) by nature of how packages work, and the fact that there aren't cyclic dependencies. Overall, the Go linker could be quite simple. It just needs some rework is all. :) |
|