ASM Bytecode Generation to unwrap Expressions of adv-expr API #94

Merged
CommanderTvis merged 44 commits from adv-expr into adv-expr 2020-06-13 21:07:15 +03:00
Showing only changes of commit fdd2551c3f - Show all commits

View File

@ -7,7 +7,6 @@ import org.objectweb.asm.Opcodes.*
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
import scientifik.kmath.operations.Algebra
import scientifik.kmath.operations.Field
import scientifik.kmath.operations.Space
import java.io.File
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
abstract class AsmCompiled<T>(@JvmField val algebra: Algebra<T>, @JvmField val constants: MutableList<T>) {
abstract fun evaluate(arguments: Map<String, T>): T
@ -223,15 +222,13 @@ class AsmGenerationContext<T>(classOfT: Class<*>, private val algebra: Algebra<T
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
evaluateMethodVisitor.visitTypeInsn(CHECKCAST, T_ALGEBRA_CLASS)
}
fun visitInvokeAlgebraOperation(owner: String, method: String, descriptor: String) {
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
fun visitAlgebraOperation(owner: String, method: String, descriptor: String) {
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
maxStack++
evaluateMethodVisitor.visitMethodInsn(INVOKEINTERFACE, owner, method, descriptor, true)
visitCastToT()
}
fun visitCastToT() {
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
evaluateMethodVisitor.visitTypeInsn(CHECKCAST, T_CLASS)
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
}
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
fun visitCastToT(): Unit = evaluateMethodVisitor.visitTypeInsn(CHECKCAST, T_CLASS)
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
companion object {
const val ASM_COMPILED_CLASS = "scientifik/kmath/expressions/AsmCompiled"
@ -243,6 +240,7 @@ class AsmGenerationContext<T>(classOfT: Class<*>, private val algebra: Algebra<T
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
const val SPACE_OPERATIONS_CLASS = "scientifik/kmath/operations/SpaceOperations"
const val FIELD_CLASS = "scientifik/kmath/operations/Field"
const val STRING_CLASS = "java/lang/String"
const val FIELD_OPERATIONS_CLASS = "scientifik/kmath/operations/FieldOperations"
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
}
}
@ -252,16 +250,12 @@ interface AsmExpression<T> {
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
internal class AsmVariableExpression<T>(val name: String, val default: T? = null) :
AsmExpression<T> {
override fun invoke(gen: AsmGenerationContext<T>) {
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
gen.visitLoadFromVariables(name, default)
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
}
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
override fun invoke(gen: AsmGenerationContext<T>): Unit = gen.visitLoadFromVariables(name, default)
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
}
internal class AsmConstantExpression<T>(val value: T) :
AsmExpression<T> {
override fun invoke(gen: AsmGenerationContext<T>) {
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
gen.visitLoadFromConstants(value)
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
}
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
override fun invoke(gen: AsmGenerationContext<T>): Unit = gen.visitLoadFromConstants(value)
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
}
internal class AsmSumExpression<T>(
@ -273,7 +267,7 @@ internal class AsmSumExpression<T>(
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
first.invoke(gen)
second.invoke(gen)
gen.visitInvokeAlgebraOperation(
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
gen.visitAlgebraOperation(
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
owner = AsmGenerationContext.SPACE_OPERATIONS_CLASS,
method = "add",
descriptor = "(L${AsmGenerationContext.OBJECT_CLASS};L${AsmGenerationContext.OBJECT_CLASS};)L${AsmGenerationContext.OBJECT_CLASS};"
@ -290,8 +284,8 @@ internal class AsmProductExpression<T>(
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
first.invoke(gen)
second.invoke(gen)
gen.visitInvokeAlgebraOperation(
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
owner = AsmGenerationContext.SPACE_CLASS,
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
gen.visitAlgebraOperation(
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
owner = AsmGenerationContext.SPACE_OPERATIONS_CLASS,
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
method = "times",
descriptor = "(L${AsmGenerationContext.OBJECT_CLASS};L${AsmGenerationContext.OBJECT_CLASS};)L${AsmGenerationContext.OBJECT_CLASS};"
)
@ -307,7 +301,7 @@ internal class AsmConstProductExpression<T>(
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
expr.invoke(gen)
gen.visitNumberConstant(const)
gen.visitInvokeAlgebraOperation(
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
gen.visitAlgebraOperation(
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
owner = AsmGenerationContext.SPACE_CLASS,
method = "multiply",
descriptor = "(L${AsmGenerationContext.OBJECT_CLASS};L${AsmGenerationContext.OBJECT_CLASS};)L${AsmGenerationContext.OBJECT_CLASS};"
@ -324,8 +318,8 @@ internal class AsmDivExpression<T>(
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
expr.invoke(gen)
second.invoke(gen)
gen.visitInvokeAlgebraOperation(
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
owner = AsmGenerationContext.FIELD_CLASS,
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
gen.visitAlgebraOperation(
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
owner = AsmGenerationContext.FIELD_OPERATIONS_CLASS,
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
method = "divide",
descriptor = "(L${AsmGenerationContext.OBJECT_CLASS};L${AsmGenerationContext.OBJECT_CLASS};)L${AsmGenerationContext.OBJECT_CLASS};"
)

altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 19:15:24 +03:00 (Migrated from github.com)
Review

Add suppress for unused parameters and documentation.

Add suppress for unused parameters and documentation.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:37 +03:00 (Migrated from github.com)
Review

Space is not actually used.

Space is not actually used.
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used
altavir commented 2020-06-07 20:02:44 +03:00 (Migrated from github.com)
Review

Not used

Not used