[llvm-dev] I am leaving llvm

Summary: I am leaving llvm effectively immediately. I am sorry for any inconvenience this may cause. Practicalities: I can unsubscribe myself from the email lists and I disabled email notification on bugzilla and phabricator. Could someone please disable my account on phabricator and delete my svn access? Thanks. The long story: I first became aware of llvm during a compiler course at university. I wanted to write a toy scheme frontend to a real compiler. To my shame I missed that llvm had a mem2reg pass and selected gcc to avoid having to compute ssa form myself. After contributing a few patches to gcc it was clear that the frontend interface needed some cleanup. At the time llvm was being considered as a potential new gcc architecture and the idea of a well defined IR with a textual representation was a revolution. On my first job (indt) we were using arm cpus and I was able to sell the idea of starting an llvm backend for arm. My first commit was on May 14, 2006. I am incredibly grateful to both indt and the llvm developers for trusting and helping such an inexperienced and unknown developer with such a large task. It is only in May 2007 in the dev meeting that I got to meet the other developers in person. It was an incredibly fun event and people were as friendly in person as on the list. In the next few years I was working at google. First as an sre and then a compiler developer on gcc. During that time I kept llvm as my 20% project as much as possible. Working on it was always a refreshing experience. It was far easier to change and far less political than gcc at the time. My opportunity to be back full time on llvm came with portable native client (pnacl). They needed to be able to emit elf objects from llvm ir and so I went to work on elf support for mc. Unfortunately another job change (mozilla) made llvm a side project again after that. I still managed to contribute to llvm/clang as I helped mozilla transition away from gcc 4.2 on OS X. It is only about 5 years ago that I started working on llvm full time again. The big item this time was elf support in lld. I was really excited when Rui posted a new design for a coff linker and did my best to find a corresponding design for elf. Unfortunately the last few years haven't been the same. On the technical side llvm now feels far bigger and slower to change. There are many incomplete transitions. That, by itself, would not be sufficient reason to leave. llvm still seems better than the competition and lld itself is still awesome. The reason for me leaving are the changes in the community. The current license change discussions unfortunately bring to memory the fsf politics when I was working on gcc. That would still not be sufficient reason to leave. As with the code, llvm will still have the best license and if the only community change was the handling of the license change I would probably keep going. The community change I cannot take is how the social injustice movement has permeated it. When I joined llvm no one asked or cared about my religion or political view. We all seemed committed to just writing a good compiler framework. Somewhat recently a code of conduct was adopted. It says that the community tries to welcome people of all "political belief". Except those whose political belief mean that they don't agree with the code of conduct. Since agreement is required to take part in the conferences, I am no longer able to attend. The last drop was llvm associating itself with an organization that openly discriminates based on sex and ancestry (1,2). This goes directly against my ethical views and I think I must leave the project to not be associated with this. So long, and thanks for all the bugs, Rafael [1] http://lists.llvm.org/pipermail/llvm-dev/2018-February/121161.html [2] https://www.outreachy.org/apply/eligibility/