Coupled with emscripten, which compiles LLVM IR to asm.js, this could be huge. Questions of IP and legality aside for the moment, imagine being able to port everything from old games to VST audio plugins to the browser... without needing access to the source code!
I've actually used dagger to transform a very simple library into IR. I had trouble trying/was unable to do the same with the other two projects. Unfortunately when I contacted the dagger authors for some tips on how to fix some deficiencies that I found with a more complex binary, I received no response. =(
I have been waiting for something like this to be solved by those more capable than myself. My dream is to combine this with ZeroVM for cloud execution and LLVM Polly for automatic parallelism (and other static analysis), and to have a runtime that seemingly magically takes a simple scientific app and runs it on a huge virtual machine in the cloud.
Pardon my ignorance, (I don't mean to be dense here) but what the heck is this doing? It sounds like recompiling machine code into intermediate code. Is that a fair (if short and over simple) description?
Others have already had similar ideas: see https://lobste.rs/s/m39toj/a_preview_of_mcsema_a_framework_f...
Of course nothing other than trivial examples will work at this early stage... but we can only dream!