1. 17
  1.  

  2. 1

    Do note they have changed the license: https://github.com/llvm/llvm-project/blob/master/llvm/LICENSE.TXT

    This is as per https://llvm.org/foundation/relicensing/

    There’s a bunch of issues with the new license. Some discussion here: https://lists.llvm.org/pipermail/llvm-dev/2018-October/126992.html

    1. 3

      I am not a lawyer, but my understanding based on conversations with lawyers is that this claim in that email is misleading:

      Relicensing will also encourage privately held software patents on LLVM. Under US [1] and European [2] law, public disclosure of intellectual property invalidates patentability. That means if you release source code without filing patents, the code becomes unpatentable by anyone. When code is committed under the current license, everyone gains a permanent right to use it.

      First, in the US there is a surprisingly large window between disclosure and patenting (one year?). Second, changing the license does not change anything with respect to patent disclosure. Under the previous license, I could file a patent on X, upstream a patch using X to LLVM, and then go and sue everyone. They might be able to argue estoppel as a defence, but they might not. Even if they didn’t, it would spend enough time in court that it would be expensive for everyone. With the new license, I can file a patent on X, upstream a patch using X to LLVM, and if I try to sue anyone they can point to the license and say ‘sorry, I have a license for that patent’ and it will be thrown out of court pretty immediately, if it even gets that far.

      Both the old and new licenses provide an equal lack of defence against the more worrying case of a person filing a patent and then silently waiting for someone to contribute something and then suing everyone. Unfortunately, nothing in a license can protect you against patent trolls.

      LLVM is an good example of a successful open source project doing something that couldn’t be done at all easily in a proprietary setting. The largest corporate contributors to LLVM are all direct competitors. The new license was, in a large part, pushed because none of these companies want to be in a situation where another can use patents to take control of LLVM or prevent them from being able to benefit from their contributions to LLVM. The intent of the new license is specifically to say ‘you can patent whatever you like, but you can’t then enforce that patent against any LLVM user. If you want to spend money on patenting stuff, go ahead, it won’t affect us or our downstream users’.

      On a n unrelated note, I’m very happy to see a shout out to the Windows CFG implementation in the release highlights. This was the first LLVM patch (and the first attempt at hacking on a compiler) by my colleague, Andrew Paverd.