Fixed
Status Update
Comments
ya...@gmail.com <ya...@gmail.com> #2
Result exception:
16:33:57.626: SEVERE: com.android.jack.CommandLine: Internal compiler error (version 1.2-a17 'Carnac' (268301 7c1d57671582be81577d57feb3246ce4ff31e518)):
com.android.sched.scheduler.RunnerProcessException: Error during 'TypeLegalizer' runner on 'public static final void SimpleKt.test() (simple.kt:2-3)': Unexpected error during visit: com.android.jack.ir.ast.JAsgOperation at "simple.kt:2-3"
at com.android.sched.scheduler.ScheduleInstance.runWithLog(ScheduleInstance.java:163)
at com.android.sched.scheduler.MultiWorkersScheduleInstance$SequentialTask.process(MultiWorkersScheduleInstance.java:442)
at com.android.sched.scheduler.MultiWorkersScheduleInstance$Worker.run(MultiWorkersScheduleInstance.java:162)
Caused by: com.android.jack.ir.JNodeInternalError: Unexpected error during visit: com.android.jack.ir.ast.JAsgOperation at "simple.kt:2-3"
at com.android.jack.ir.ast.JVisitor.wrapException(JVisitor.java:102)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:55)
at com.android.jack.ir.ast.JExpressionStatement.traverse(JExpressionStatement.java:54)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:62)
at com.android.jack.ir.ast.JBlock.traverse(JBlock.java:41)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:51)
at com.android.jack.ir.ast.JMethodBody.traverse(JMethodBody.java:96)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:51)
at com.android.jack.ir.ast.JMethod.visitChildren(JMethod.java:336)
at com.android.jack.ir.ast.JMethod.traverse(JMethod.java:262)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:51)
at com.android.jack.transformations.ast.TypeLegalizer.run(TypeLegalizer.java:369)
at com.android.jack.transformations.ast.TypeLegalizer.run(TypeLegalizer.java:72)
at com.android.sched.scheduler.ScheduleInstance.runWithLog(ScheduleInstance.java:161)
... 2 more
Caused by: java.lang.AssertionError
at com.android.jack.transformations.ast.TypeLegalizer.unbox(TypeLegalizer.java:418)
at com.android.jack.transformations.ast.TypeLegalizer.unbox(TypeLegalizer.java:436)
at com.android.jack.transformations.ast.TypeLegalizer.access$100(TypeLegalizer.java:79)
at com.android.jack.transformations.ast.TypeLegalizer$TypeLegalizerVisitor.maybeBoxOrUnbox(TypeLegalizer.java:345)
at com.android.jack.transformations.ast.TypeLegalizer$TypeLegalizerVisitor.endVisit(TypeLegalizer.java:196)
at com.android.jack.ir.ast.JBinaryOperation.traverse(JBinaryOperation.java:70)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:51)
... 14 more
com.android.sched.scheduler.RunnerProcessException: Error during 'TypeLegalizer' runner on 'public static final void SimpleKt.test() (simple.kt:2-3)': Unexpected error during visit: com.android.jack.ir.ast.JAsgOperation at "simple.kt:2-3"
at com.android.sched.scheduler.ScheduleInstance.runWithLog(ScheduleInstance.java:163)
at com.android.sched.scheduler.MultiWorkersScheduleInstance$SequentialTask.process(MultiWorkersScheduleInstance.java:442)
at com.android.sched.scheduler.MultiWorkersScheduleInstance$Worker.run(MultiWorkersScheduleInstance.java:162)
Caused by: com.android.jack.ir.JNodeInternalError: Unexpected error during visit: com.android.jack.ir.ast.JAsgOperation at "simple.kt:2-3"
at com.android.jack.ir.ast.JVisitor.wrapException(JVisitor.java:102)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:55)
at com.android.jack.ir.ast.JExpressionStatement.traverse(JExpressionStatement.java:54)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:62)
at com.android.jack.ir.ast.JBlock.traverse(JBlock.java:41)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:51)
at com.android.jack.ir.ast.JMethodBody.traverse(JMethodBody.java:96)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:51)
at com.android.jack.ir.ast.JMethod.visitChildren(JMethod.java:336)
at com.android.jack.ir.ast.JMethod.traverse(JMethod.java:262)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:51)
at com.android.jack.transformations.ast.TypeLegalizer.run(TypeLegalizer.java:369)
at com.android.jack.transformations.ast.TypeLegalizer.run(TypeLegalizer.java:72)
at com.android.sched.scheduler.ScheduleInstance.runWithLog(ScheduleInstance.java:161)
... 2 more
Caused by: java.lang.AssertionError
at com.android.jack.transformations.ast.TypeLegalizer.unbox(TypeLegalizer.java:418)
at com.android.jack.transformations.ast.TypeLegalizer.unbox(TypeLegalizer.java:436)
at com.android.jack.transformations.ast.TypeLegalizer.access$100(TypeLegalizer.java:79)
at com.android.jack.transformations.ast.TypeLegalizer$TypeLegalizerVisitor.maybeBoxOrUnbox(TypeLegalizer.java:345)
at com.android.jack.transformations.ast.TypeLegalizer$TypeLegalizerVisitor.endVisit(TypeLegalizer.java:196)
at com.android.jack.ir.ast.JBinaryOperation.traverse(JBinaryOperation.java:70)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:51)
... 14 more
16:33:57.626: SEVERE: com.android.jack.CommandLine: Internal compiler error (version 1.2-a17 'Carnac' (268301 7c1d57671582be81577d57feb3246ce4ff31e518)):
com.android.sched.scheduler.RunnerProcessException: Error during 'TypeLegalizer' runner on 'public static final void SimpleKt.test() (simple.kt:2-3)': Unexpected error during visit: com.android.jack.ir.ast.JAsgOperation at "simple.kt:2-3"
at com.android.sched.scheduler.ScheduleInstance.runWithLog(ScheduleInstance.java:163)
at com.android.sched.scheduler.MultiWorkersScheduleInstance$SequentialTask.process(MultiWorkersScheduleInstance.java:442)
at com.android.sched.scheduler.MultiWorkersScheduleInstance$Worker.run(MultiWorkersScheduleInstance.java:162)
Caused by: com.android.jack.ir.JNodeInternalError: Unexpected error during visit: com.android.jack.ir.ast.JAsgOperation at "simple.kt:2-3"
at com.android.jack.ir.ast.JVisitor.wrapException(JVisitor.java:102)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:55)
at com.android.jack.ir.ast.JExpressionStatement.traverse(JExpressionStatement.java:54)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:62)
at com.android.jack.ir.ast.JBlock.traverse(JBlock.java:41)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:51)
at com.android.jack.ir.ast.JMethodBody.traverse(JMethodBody.java:96)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:51)
at com.android.jack.ir.ast.JMethod.visitChildren(JMethod.java:336)
at com.android.jack.ir.ast.JMethod.traverse(JMethod.java:262)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:51)
at com.android.jack.transformations.ast.TypeLegalizer.run(TypeLegalizer.java:369)
at com.android.jack.transformations.ast.TypeLegalizer.run(TypeLegalizer.java:72)
at com.android.sched.scheduler.ScheduleInstance.runWithLog(ScheduleInstance.java:161)
... 2 more
Caused by: java.lang.AssertionError
at com.android.jack.transformations.ast.TypeLegalizer.unbox(TypeLegalizer.java:418)
at com.android.jack.transformations.ast.TypeLegalizer.unbox(TypeLegalizer.java:436)
at com.android.jack.transformations.ast.TypeLegalizer.access$100(TypeLegalizer.java:79)
at com.android.jack.transformations.ast.TypeLegalizer$TypeLegalizerVisitor.maybeBoxOrUnbox(TypeLegalizer.java:345)
at com.android.jack.transformations.ast.TypeLegalizer$TypeLegalizerVisitor.endVisit(TypeLegalizer.java:196)
at com.android.jack.ir.ast.JBinaryOperation.traverse(JBinaryOperation.java:70)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:51)
... 14 more
com.android.sched.scheduler.RunnerProcessException: Error during 'TypeLegalizer' runner on 'public static final void SimpleKt.test() (simple.kt:2-3)': Unexpected error during visit: com.android.jack.ir.ast.JAsgOperation at "simple.kt:2-3"
at com.android.sched.scheduler.ScheduleInstance.runWithLog(ScheduleInstance.java:163)
at com.android.sched.scheduler.MultiWorkersScheduleInstance$SequentialTask.process(MultiWorkersScheduleInstance.java:442)
at com.android.sched.scheduler.MultiWorkersScheduleInstance$Worker.run(MultiWorkersScheduleInstance.java:162)
Caused by: com.android.jack.ir.JNodeInternalError: Unexpected error during visit: com.android.jack.ir.ast.JAsgOperation at "simple.kt:2-3"
at com.android.jack.ir.ast.JVisitor.wrapException(JVisitor.java:102)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:55)
at com.android.jack.ir.ast.JExpressionStatement.traverse(JExpressionStatement.java:54)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:62)
at com.android.jack.ir.ast.JBlock.traverse(JBlock.java:41)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:51)
at com.android.jack.ir.ast.JMethodBody.traverse(JMethodBody.java:96)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:51)
at com.android.jack.ir.ast.JMethod.visitChildren(JMethod.java:336)
at com.android.jack.ir.ast.JMethod.traverse(JMethod.java:262)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:51)
at com.android.jack.transformations.ast.TypeLegalizer.run(TypeLegalizer.java:369)
at com.android.jack.transformations.ast.TypeLegalizer.run(TypeLegalizer.java:72)
at com.android.sched.scheduler.ScheduleInstance.runWithLog(ScheduleInstance.java:161)
... 2 more
Caused by: java.lang.AssertionError
at com.android.jack.transformations.ast.TypeLegalizer.unbox(TypeLegalizer.java:418)
at com.android.jack.transformations.ast.TypeLegalizer.unbox(TypeLegalizer.java:436)
at com.android.jack.transformations.ast.TypeLegalizer.access$100(TypeLegalizer.java:79)
at com.android.jack.transformations.ast.TypeLegalizer$TypeLegalizerVisitor.maybeBoxOrUnbox(TypeLegalizer.java:345)
at com.android.jack.transformations.ast.TypeLegalizer$TypeLegalizerVisitor.endVisit(TypeLegalizer.java:196)
at com.android.jack.ir.ast.JBinaryOperation.traverse(JBinaryOperation.java:70)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:51)
... 14 more
mi...@gmail.com <mi...@gmail.com> #3
Bug in swap instruction processing only.
Here is the patch:
Here is the patch:
mi...@gmail.com <mi...@gmail.com> #4
There is also a problem with swap and dup instructions:
// access flags 0x19
public final static test()V
L0
LINENUMBER 118 L0
BIPUSH 11
NEW kotlin/ranges/IntRange
DUP_X1
SWAP
BIPUSH 12
INVOKESPECIAL kotlin/ranges/IntRange.<init> (II)V
POP
L1
LINENUMBER 119 L1
RETURN
L2
MAXSTACK = 4
MAXLOCALS = 0
transformed to
{
0 : {
}
-s_0_I = 11;
-s_1_R = alloc <IntRange>;
-s_2_R = -s_1_R;
-s_1_I = -s_0_I;
-s_0_R = -s_2_R;
-swap_tmp_R = -s_1_I;
-s_1_I = -s_2_R;
-s_2_R = -swap_tmp_R;
-s_3_I = 12;
-s_1_R.<init>(-s_2_I, -s_3_I);
9 : {
}
return;
} (simple.kt:2-3)
And TypeLegalizer:196 (case ASG: { JExpression castTo = maybeBoxOrUnbox(rhs, lhsType);)...}) also tries cast Range value to primitive int "-s_1_I = -s_2_R;"
// access flags 0x19
public final static test()V
L0
LINENUMBER 118 L0
BIPUSH 11
NEW kotlin/ranges/IntRange
DUP_X1
SWAP
BIPUSH 12
INVOKESPECIAL kotlin/ranges/IntRange.<init> (II)V
POP
L1
LINENUMBER 119 L1
RETURN
L2
MAXSTACK = 4
MAXLOCALS = 0
transformed to
{
0 : {
}
-s_0_I = 11;
-s_1_R = alloc <IntRange>;
-s_2_R = -s_1_R;
-s_1_I = -s_0_I;
-s_0_R = -s_2_R;
-swap_tmp_R = -s_1_I;
-s_1_I = -s_2_R;
-s_2_R = -swap_tmp_R;
-s_3_I = 12;
-s_1_R.<init>(-s_2_I, -s_3_I);
9 : {
}
return;
} (simple.kt:2-3)
And TypeLegalizer:196 (case ASG: { JExpression castTo = maybeBoxOrUnbox(rhs, lhsType);)...}) also tries cast Range value to primitive int "-s_1_I = -s_2_R;"
gc...@google.com <gc...@google.com>
mi...@gmail.com <mi...@gmail.com> #5
Here is the patch for 'swap' part:
Description
I've attached the byte code listing as well, though the place that Jack won't compile is fairly different each time. I also tried running Jack from the ub-jack-lang-dev branch, result is the same.
> ls -1
Person.java
android-runtime.jar // After jill processing
kotlin-runtime.jar // Version is not significant. 1.0.0-beta-2423 is ok
> cat Person.java // Simple Java class
package test;
public class Person {
public final String name;
public Person(String name) {
}
}
> java -jar $ANDROID_HOME/build-tools/23.0.2/jill.jar --output kotlin-runtime.jill.jar kotlin-runtime.jar
> java -jar $ANDROID_HOME/build-tools/23.0.2/jack.jar -D jack.dex=true -D jack.dex.output.container=zip -D jack.dex.output.zip=dex.zip --import kotlin-runtime.jill.jar -cp android-runtime.jar:kotlin-runtime.jill.jar Person.java
SEVERE: com.android.jack.CommandLine: Internal compiler error (version 1.1-mr2 'Brest' (175100 000a2f91edbe638090dc577801ba49592229fd8b)):
com.android.sched.scheduler.RunnerProcessException: Error during 'TypeLegalizer' runner on 'public int kotlin.ComparisonsKt$thenBy$2.compare(java.lang.Object a, java.lang.Object b) (Ordering.kt:152-312)': Unexpected error during visit: com.android.jack.ir.ast.JAsgOperation at "Ordering.kt:153-154"
at com.android.sched.scheduler.ScheduleInstance.runWithLog(ScheduleInstance.java:156)
at com.android.sched.scheduler.MultiWorkersScheduleInstance$SequentialTask.process(MultiWorkersScheduleInstance.java:408)
at com.android.sched.scheduler.MultiWorkersScheduleInstance$Worker.run(MultiWorkersScheduleInstance.java:143)
Caused by: com.android.jack.ir.JNodeInternalError: Unexpected error during visit: com.android.jack.ir.ast.JAsgOperation at "Ordering.kt:153-154"
at com.android.jack.ir.ast.JVisitor.wrapException(JVisitor.java:97)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:54)
at com.android.jack.ir.ast.JExpressionStatement.traverse(JExpressionStatement.java:54)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:61)
at com.android.jack.ir.ast.JBlock.traverse(JBlock.java:41)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:50)
at com.android.jack.ir.ast.JMethodBody.traverse(JMethodBody.java:96)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:50)
at com.android.jack.ir.ast.JMethod.visitChildren(JMethod.java:323)
at com.android.jack.ir.ast.JMethod.traverse(JMethod.java:249)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:50)
at com.android.jack.transformations.ast.TypeLegalizer.run(TypeLegalizer.java:516)
at com.android.jack.transformations.ast.TypeLegalizer.run(TypeLegalizer.java:71)
at com.android.sched.scheduler.ScheduleInstance.runWithLog(ScheduleInstance.java:154)
... 2 more
Caused by: java.lang.AssertionError
at com.android.jack.transformations.ast.TypeLegalizer$TypeLegalizerVisitor.unbox(TypeLegalizer.java:395)
at com.android.jack.transformations.ast.TypeLegalizer$TypeLegalizerVisitor.maybeBoxOrUnbox(TypeLegalizer.java:338)
at com.android.jack.transformations.ast.TypeLegalizer$TypeLegalizerVisitor.endVisit(TypeLegalizer.java:192)
at com.android.jack.ir.ast.JBinaryOperation.traverse(JBinaryOperation.java:70)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:50)
... 14 more
com.android.sched.scheduler.RunnerProcessException: Error during 'TypeLegalizer' runner on 'public int kotlin.ComparisonsKt$thenBy$2.compare(java.lang.Object a, java.lang.Object b) (Ordering.kt:152-312)': Unexpected error during visit: com.android.jack.ir.ast.JAsgOperation at "Ordering.kt:153-154"
at com.android.sched.scheduler.ScheduleInstance.runWithLog(ScheduleInstance.java:156)
at com.android.sched.scheduler.MultiWorkersScheduleInstance$SequentialTask.process(MultiWorkersScheduleInstance.java:408)
at com.android.sched.scheduler.MultiWorkersScheduleInstance$Worker.run(MultiWorkersScheduleInstance.java:143)
Caused by: com.android.jack.ir.JNodeInternalError: Unexpected error during visit: com.android.jack.ir.ast.JAsgOperation at "Ordering.kt:153-154"
at com.android.jack.ir.ast.JVisitor.wrapException(JVisitor.java:97)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:54)
at com.android.jack.ir.ast.JExpressionStatement.traverse(JExpressionStatement.java:54)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:61)
at com.android.jack.ir.ast.JBlock.traverse(JBlock.java:41)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:50)
at com.android.jack.ir.ast.JMethodBody.traverse(JMethodBody.java:96)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:50)
at com.android.jack.ir.ast.JMethod.visitChildren(JMethod.java:323)
at com.android.jack.ir.ast.JMethod.traverse(JMethod.java:249)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:50)
at com.android.jack.transformations.ast.TypeLegalizer.run(TypeLegalizer.java:516)
at com.android.jack.transformations.ast.TypeLegalizer.run(TypeLegalizer.java:71)
at com.android.sched.scheduler.ScheduleInstance.runWithLog(ScheduleInstance.java:154)
... 2 more
Caused by: java.lang.AssertionError
at com.android.jack.transformations.ast.TypeLegalizer$TypeLegalizerVisitor.unbox(TypeLegalizer.java:395)
at com.android.jack.transformations.ast.TypeLegalizer$TypeLegalizerVisitor.maybeBoxOrUnbox(TypeLegalizer.java:338)
at com.android.jack.transformations.ast.TypeLegalizer$TypeLegalizerVisitor.endVisit(TypeLegalizer.java:192)
at com.android.jack.ir.ast.JBinaryOperation.traverse(JBinaryOperation.java:70)
at com.android.jack.ir.ast.JVisitor.accept(JVisitor.java:50)
... 14 more
Internal compiler error (version 1.1-mr2 'Brest' (175100 000a2f91edbe638090dc577801ba49592229fd8b)).
Error during 'TypeLegalizer' runner on 'public int kotlin.ComparisonsKt$thenBy$2.compare(java.lang.Object a, java.lang.Object b) (Ordering.kt:152-312)': Unexpected error during visit: com.android.jack.ir.ast.JAsgOperation at "Ordering.kt:153-154".
Warning: This may have produced partial or corrupted output.