The reason I started this was to add support for "binary" plugins to my media player/center (http://movian.tv). Movian runs on some platforms which does not allow loading code runtime (Google NaCl is one). I haven't gotten that far yet though. Still fixing stuff and testing what kind of performance I can get out of it.
Also I did it for fun and, as always, one learns a lot along the way.
I was thinking of building something like this, a lightweight IR engine. IR is designed to be exceptionally crappy for a direct interpretation, so I was thinking of converting it to an intermediate stack-based machine first (and then do an indirect threading).
ISC is the shortest permissive free-software license with a warranty disclaimer under current law.
Here it is:
Copyright (c) Year(s), Company or Person's Name
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Please don't use WTFPL, unless you enjoy getting sued over implied warranties, or arguing with people over what rights they've really given you, or ...
Thanks for the heads up. I've normally used MIT style and haven't worried about that sort of thing but I'm getting into "as public domain as possible" licenses lately. Do you think ISC is a good license?
Right, my bad. Though there is hardly any 'code' in there. I copied the defines from LLVM initially as I couldn't find any good documentation except in the header file. I suppose I will have to retype it or something :-)
Or you could just reproduce the original license, which is all that's required. It's really the stripping of the license out of the file that is the problem, since the original LLVM license specifically states that the license grant is incumbent upon keeping the license text in place. Even though in reality you copied/pasted the text out in to a new file, it's really the equivalent of removing the license text and all of the other code you didn't need.
Thanks Oracle/Google. :) Sorry, it is just that I write code that ends up passing hands through multiple entities. Each time one entity has to include an attribution notice, their willingness to include the library drops dramatically.
I'm in the camp of "I'm glad if anybody includes my code", and I still submit bug reports/patches to upstream projects with "public domain" licenses, even though I am not required to. It just makes sense, provided your employer recognizes the value it brings.
Basically to avoid polluting symbol namespace without having to have very long function names. Also it gives the compiler a good chance of inlining without having to resort to LTO.
Eventually I might do some "make dist" thing that just concats it all into one amalgamation file similar to projects like Sqlite and Duktape.