lljvm-translator
lljvm-translator copied to clipboard
A lightweight library to inject LLVM bitcode into JVMs
 message: ``` io.github.maropu.lljvm.LLJVMRuntimeException: Package(GeneratedClass20180731HMKjwzxmew) not supported at io.github.maropu.lljvm.util.analysis.SupportedMethodPackages.checkIfPackageSupported(SupportedMethodPackages.java:42) at io.github.maropu.lljvm.util.analysis.BytecodeVerifier$SupportedBytecodeChecker$1.visitMethodInsn(BytecodeVerifier.java:144) at org.objectweb.asm.ClassReader.readCode(ClassReader.java:2211) at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1274) at org.objectweb.asm.ClassReader.accept(ClassReader.java:679) at org.objectweb.asm.ClassReader.accept(ClassReader.java:391) at io.github.maropu.lljvm.util.analysis.BytecodeVerifier.checkIfBytecodeSupported(BytecodeVerifier.java:86) at io.github.maropu.lljvm.util.analysis.BytecodeVerifier.verify(BytecodeVerifier.java:44) at io.github.maropu.lljvm.util.JVMAssembler.doCompile(JVMAssembler.java:73) at io.github.maropu.lljvm.util.JVMAssembler.compile(JVMAssembler.java:47) at io.github.maropu.lljvm.LLJVMTranslator.main(LLJVMTranslator.java:61) ```...
We currently have many options for JDK builds (e.g., the OpenJDK community build, Oracle JDK, AdoptOpenJDK, ...). If the number of AdoptOpenJDK users increases, it might be worth supporting the...
``` [WARNING] Expected all dependencies to require Scala version: 2.11.8 [WARNING] io.github.maropu:lljvm-core:0.3.0-EXPERIMENTAL requires scala version: 2.11.8 [WARNING] org.scalatest:scalatest_2.11:3.0.3 requires scala version: 2.11.8 [WARNING] org.scalactic:scalactic_2.11:3.0.3 requires scala version: 2.11.8 [WARNING] org.scala-lang:scala-reflect:2.11.8...
https://gitlab.com/the-language/the-language/blob/c661c4f3fc13026a80d57fef31cdcdd2422d7ba2/core/arch/c/lang.c ``` $ ./bin/lljvm-translator lang.bc /home/1828_sandbox/src/github.com-maropu-lljvm-translator/lljvm-translator-master/bin/../target/lljvm-core_0.3.0-EXPERIMENTAL-with-dependencies.jar not found, so use pre-compiled /home/1828_sandbox/src/github.com-maropu-lljvm-translator/lljvm-translator-master/bin/../assembly/lljvm-core_0.3.0-EXPERIMENTAL-with-dependencies.jar io.github.maropu.lljvm.LLJVMRuntimeException: Unsupported types in alloca: Type=StructTyID at io.github.maropu.lljvm.LLJVMNative.throwException(LLJVMNative.java:65) at io.github.maropu.lljvm.LLJVMNative.asJVMAssemblyCode(Native Method) at io.github.maropu.lljvm.LLJVMTranslator.main(LLJVMTranslator.java:50) ```
https://medium.com/trivago-tech/teardown-rebuild-migrating-from-hive-to-pyspark-324176a7ce5
https://lgtm.com/
Is there any way to set it up so that other languages can call out to arbitrary java classes/methods? Something ugly (like the array example in readme) is okay, so...
e.g., ```scala val clazz = LLJVMClassLoader.loadClassFromBytecode( className = "GeneratedClass", bitcode = PythonFunc.compile( s"""def pyfunc(x, y): | return x + y """ )) ... ```
http://dawn.cs.stanford.edu/2018/03/22/weld-update/
https://go.googlesource.com/gollvm/#building