The UIUC license contains the clauses

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimers.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimers in the documentation and/or other materials provided with the distribution.

(emphasis mine)

If compiling a project that contains code from a project released under this license, from C/C++ to Javascript using Emscripten, for the purposes of the license is the output of the compilation source code, binary, or neither?

My specific case is using the standard library libc++ in a project, which I believe is included with clang/fastcomp that comes with Emscripten.

  • Can you clarify what code exactly is licensed under the NCSA? Jan 30 '16 at 14:31

The GNU libstdc++ is under GPLv3, with some special dispensations. The LLVM C++ library libc++ is dual licensed, under MIT and UIUC.

Presumably the generated code is less than readable, and I would consider it morally binary code. If in doubt, comply with both requests, and add original source.

  • The GPL defines source code and object code already: The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. From these definitions the output of any compiler or so-called transpiler is object code, even if the resulting object code is JavaScript.
    – Brandin
    Apr 17 '18 at 8:14

I am not a lawyer.

For me binary form (in your context) is anything which is not source code.

And source code is the preferred form on which human developers want to work.

In that sense generated C or C++ code (which is generally unreadable) is not source code, and generated Javascript code is also not source code.

So broadly speaking, generated Javascript can be considered as "binary form" (in particular, because it is practically unreadable).

But it is just my opinion, and IANAL. Perhaps you should ask your lawyer.

Probably what ultimately would matter is what is judged by some court.

BTW, it looks like you might handle generated Javascript both as binary and as source. Maybe you could copy/paste a copyright notice from libc++ source to generated Javascript...

FWIW, my GCC MELT is somehow copying copyright comments from MELT source to generated C++ (which I feel is binary)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.