Ian Lance Taylor

airs.com · Personal blog · on HN since 2008

Ian Lance Taylor, a compiler and linker engineer known for the gold linker and Go, writes about toolchains and programming.

What HN saysCommenters call his 20-part linkers series the best source on how linkers work, and also praise his cross-compiler explanation and programming posts as insightful.
52HN people shared it
22linked it in comments
41stories submitted
857story points
6 months agolast shared
2008people per year2026

Most-shared posts

  1. 1
    Linkers (2007)
    10 people · 174 points · first shared 2010 · 7 comments on HN
  2. 2
    Go Experience Report: The Append Function
    3 people · 5 points · first shared 2017 · discussion on HN
  3. 3
    C++ 'const'
    3 people · 4 points · first shared 2015 · discussion on HN
  4. 4
    Gccgo in GCC
    3 people · 4 points · first shared 2010 · discussion on HN
  5. 5
    Linkers Part 4
    3 people · 2 points · first shared 2010 · discussion on HN
  6. 6
    Archives 51
    3 people · first shared 2010
  7. 7
    Leaving Google
    2 people · 565 points · first shared 2025 · 382 comments on HN
  8. 8
    Debugging (2003)
    2 people · 50 points · first shared 2013 · 5 comments on HN
  9. 9
    DejaGNU (2011)
    2 people · 5 points · first shared 2025 · discussion on HN
  10. 10
    Go Interfaces, by one of the Go authors
    2 people · 4 points · first shared 2009 · discussion on HN
  11. 11
    The Conversation Game
    2 people · 4 points · first shared 2025 · discussion on HN
  12. 12
    Executable Stack
    2 people · 2 points · first shared 2011 · discussion on HN
  13. 13
    Gold Linker(2008) [pdf]
    2 people · 2 points · first shared 2016 · discussion on HN
  14. 14
    Signed Overflow (2008)
    2 people · 1 points · first shared 2013 · discussion on HN
  15. 15
    Destructors
    2 people · 1 points · first shared 2010 · discussion on HN

What HN people wrote when they linked it

sheepscreek · 2025-05-11
Interestingly, the blog has very few posts. What I would really like to read is a follow up to https://www.airs.com/blog/archives/552 (“The 2016 Election”)
canucker2016 · 2023-07-27
Best source I've read is Ian Taylor's blog about his work on the gold linker: https://www.airs.com/blog/archives/38 "Once again, the goal is speed, in this case being faster than my second linker. That linker has been significantly slowed down over the years by adding support for ELF and for shared libraries. This support was patched in rather than being designed in. Future plans for the new linker include support for incremental linking–which is another way of increasing speed." Just think of the apps that were written in early Unix days - simple single-purpose apps, probably just one source code file , just one obj and libc to link together, no shared libs et al. The linker code just grew organically as new "must-have" features were added. Correctness of features was more important than speed esp. when spinning rust was a limiting factor.
weinzierl · 2019-09-02
Best piece on linkers is in my opinion Ian Lance Taylor's (author of the gold linker) write up[1]. It obviously has been written in a hurry and could need some polish but the content is gold. LWN published an overview with links to the different parts, to make it a little more accessible[2]. I always hoped Ian would turn it into the book he mentioned in the post. [1] https://www.airs.com/blog/archives/38 [2] https://lwn.net/Articles/276782/
code4life · 2014-03-31
Here is a great explanation of why setting up a cross compiler is so difficult. http://www.airs.com/blog/archives/492
saljam · 2012-08-13
Ian Lance Taylor (author of the gold linker) wrote a wonderful 20 part essay to how linkers work: http://www.airs.com/blog/archives/38 I'd also recommend reading the rest of his blog, at least the programming section. It's very insightful.
dfawcus · 2026-03-22
Attribute (qualifier), or storage class? https://www.airs.com/blog/archives/428 The use of 'const' in C is very much a mixed blessing; I certainly have experience of the 'const poisoning' issue. Possibly it would have been better as a storage class. For bool, yes it was a useful addition. Especially for the cases where old code would have something like: #define FLAG_A 1u #define FLAG_B 2u int has_flag_B (something *some) { return some->field & FLAG_B; } and that was then combined with logic expecting 'true' to be 1; which could sneak in over time.
InDubioProRubio · 2024-08-22
https://www.airs.com/blog/archives/51 Pattermatching on assembler code and rearranging and reusage of sequences..
grey-area · 2020-06-16
Ian Lance Taylor has been involved in the language for a long time, since 2008. Here he is talking about the built-in function append and why it shouldn't really exist in 2017 https://www.airs.com/blog/archives/559
nwellnhof · 2017-12-04
That's because ELF allows symbol interposition and PE (Portable Executable) doesn't have a comparable feature. Symbol interposition doesn't come without a price, though, and is often criticized: https://www.macieira.org/blog/2012/01/sorry-state-of-dynamic-libraries… | https://www.airs.com/blog/archives/307 | https://news.ycombinator.com/item?id=8029564
cwzwarich · 2015-12-20
It looks like the optimization I remember was implemented in gccgo, but maybe they never added it to the main compiler: http://www.airs.com/blog/archives/277
maxlybbert · 2014-08-27
> Why bother running through a destructor chain ... The Gold linker (written in C++) doesn't ( http://www.airs.com/blog/archives/362 ): "[I]n the gold linker I often deliberately omitted destructors, because many of the data structures live for the life the program; in such a case, destructors serve only to slow down program exit." However, there are some things that you really want to know happened when the process exits for any reason. If possible, you'd probably like your files closed in a way that allows them to be re-opened. That's easy to do with destructors. Destructors: they were always for more than just memory management.
jacobparker · 2013-01-21
The common case is (probably) not that a compiler detects an instance of signed over/underflow. Instead, it can assume that this never happens and generate "dangerous" code. A good post describing how these optimizations come about is http://www.airs.com/blog/archives/120 More options to warn about uses of or disable these optimizations would be welcome in compilers.
nkurz · 2011-05-16
There is some good level-headed non-dogmatic discussion in this thread. Here's some: http://gcc.gnu.org/ml/gcc/2010-05/msg00757.html As another comment points out, this decision was made a year ago. Any updates on how the transition is going? I searched a little, but found nothing. I did happen across an interesting earlier proposal though: http://www.airs.com/blog/archives/187
sambeau · 2011-03-29
Ian Lance Taylor is the creator and maintainer of gccgo the Go front-end for gcc. http://golang.org/doc/gccgo_install.html He also has an interesting blog: http://www.airs.com/blog/
shailesh · 2011-03-26
Ian Lance Taylor, contributor of the GCC Go frontend addresses the same concern, in http://www.airs.com/blog/archives/448 Basically, yes, it'll be increasingly out of date. Edit: clarity.
kragen · 2011-03-06
> The articles I see on the sites you list are typically narrow, sensationalist, or self-serving. I'm shocked that you would say that about LWN, or Ian Lance Taylor's blog, or Landon Dyer's blog, or James Hamilton's blog, or Google Research Videos. It's so far from reality that I feel compelled to ask if you've actually read them. > many of them are written to gain votes on these sites, which are themselves advertising driven. Or that. I mean, maybe Mark? Or Gruber? But can you seriously see James Hamilton or James Hague or Raymond Chen or LWN writing an article "to gain votes on these sites"? I mean, come on. > But most of what gets posted on HN is junk. True. But Byte published less than one article per day, and only a minority of its articles were of the high quality that we're talking about here. > What you may not be aware of is that a well written technical magazine article takes weeks of research writing and careful editing, not to mention interviewing experts and preparing of graphics. Professional writers add breadth and perspective gathered from multiple domain experts and synthesize it to produce something with added value. Well, I haven't written for Byte, but my limited experience writing magazine articles falls pretty far short of what you're describing there. Byte did have some pretty good stuff, it's true. But as often as not, professional writers synthesize those perspectives with errors and FUD. And I'd like to point out that in…
andrewf · 2010-12-04

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close