[llvm-dev] I am leaving llvm

Rafael Avila de Espindola via llvm-dev llvm-dev at lists.llvm.org
Wed May 2 09:37:41 PDT 2018


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/


More information about the llvm-dev mailing list