-
-
Save retronym/ccdca4c9085b36964ebb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% qbin/scalac -Ydebug -Ylog:icode -Ylinearizer:rpo sandbox/test.scala 2>&1 | tee sandbox/bad.txt | |
% qbin/scalac -Ydebug -Ylog:icode -Ydisable-unreachable-prevention -Ylinearizer:rpo sandbox/test.scala 2>&1 | tee sandbox/good.txt | |
% diff -U1000 sandbox/{good,bad}.txt | gist |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- sandbox/good.txt 2014-05-26 18:10:48.000000000 +0200 | |
+++ sandbox/bad.txt 2014-05-26 18:10:41.000000000 +0200 | |
@@ -1,93 +1,184 @@ | |
[running phase parser on test.scala] | |
[running phase namer on test.scala] | |
[running phase packageobjects on test.scala] | |
[running phase typer on test.scala] | |
[running phase patmat on test.scala] | |
[running phase superaccessors on test.scala] | |
[running phase extmethods on test.scala] | |
[running phase pickler on test.scala] | |
[running phase refchecks on test.scala] | |
[running phase uncurry on test.scala] | |
[running phase tailcalls on test.scala] | |
[running phase specialize on test.scala] | |
[running phase explicitouter on test.scala] | |
[running phase erasure on test.scala] | |
[running phase posterasure on test.scala] | |
[running phase lazyvals on test.scala] | |
[running phase lambdalift on test.scala] | |
[running phase constructors on test.scala] | |
[running phase flatten on test.scala] | |
[running phase mixin on test.scala] | |
[running phase cleanup on test.scala] | |
[running phase delambdafy on test.scala] | |
[log icode] [class] >> scala.Array | |
[log icode] [class] << scala.Array | |
[log icode] ClassfileLoader setting Array.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/Array.class | |
[log icode(->parser)] [class] >> java.lang.Cloneable | |
[log icode(->parser)] ClassfileLoader setting Cloneable.associatedFile = /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Classes/classes.jar(java/lang/Cloneable.class) | |
[running phase icode on test.scala] | |
[log icode] Generating class: CompilerBug | |
[log icode] Entering method test | |
[log icode] at line: 3 | |
[log icode(-><some phase>)] [class] >> scala.AnyValCompanion | |
[log icode(-><some phase>)] [class] << scala.AnyValCompanion | |
[log icode(-><some phase>)] ClassfileLoader setting AnyValCompanion.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/AnyValCompanion.class | |
[log icode(-><some phase>)] [class] >> scala.Specializable | |
[log icode(-><some phase>)] [class] << scala.Specializable | |
[log icode(-><some phase>)] ClassfileLoader setting Specializable.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/Specializable.class | |
[log icode] Entering genCond with tree: a.$bar$bar(scala.this.Predef.$qmark$qmark$qmark()).$amp$amp(b.$bar$bar(scala.this.Predef.$qmark$qmark$qmark())) | |
[log icode] Entering genCond with tree: a.$bar$bar(scala.this.Predef.$qmark$qmark$qmark()) | |
[log icode] Entering genCond with tree: a | |
[log icode] at line: 3 | |
[log icode] Entering genCond with tree: scala.this.Predef.$qmark$qmark$qmark() | |
[log icode] at line: 3 | |
[log icode] Gen CALL_METHOD with sym: method $qmark$qmark$qmark isStaticSymbol: false | |
[log icode] at line: 3 | |
[log icode] Host class of module Predef with qual scala.this (type) is package class scala | |
[log icode] LOAD_MODULE from Select: module Predef | |
[log icode] re-enter class ArrowAssoc in module class Predef | |
[log icode(->mixin ->mixin)] In scope of package class scala, unlinked class Predef$ArrowAssoc | |
[log icode] re-enter class Ensuring in module class Predef | |
[log icode(->mixin ->mixin)] In scope of package class scala, unlinked class Predef$Ensuring | |
[log icode] re-enter class StringFormat in module class Predef | |
[log icode(->mixin ->mixin)] In scope of package class scala, unlinked class Predef$StringFormat | |
[log icode] re-enter class StringAdd in module class Predef | |
[log icode(->mixin ->mixin)] In scope of package class scala, unlinked class Predef$StringAdd | |
[log icode] re-enter class any2stringadd in module class Predef | |
[log icode(->mixin ->mixin)] In scope of package class scala, unlinked class Predef$any2stringadd | |
[log icode] re-enter class RichException in module class Predef | |
[log icode(->mixin ->mixin)] In scope of package class scala, unlinked class Predef$RichException | |
[log icode] re-enter class SeqCharSequence in module class Predef | |
[log icode(->mixin ->mixin)] In scope of package class scala, unlinked class Predef$SeqCharSequence | |
[log icode] re-enter class ArrayCharSequence in module class Predef | |
[log icode(->mixin ->mixin)] In scope of package class scala, unlinked class Predef$ArrayCharSequence | |
[log icode] re-enter class $less$colon$less in module class Predef | |
[log icode(->mixin ->mixin)] In scope of package class scala, unlinked class less$colon$less | |
[log icode] re-enter class $eq$colon$eq in module class Predef | |
[log icode(->mixin ->mixin)] In scope of package class scala, unlinked class eq$colon$eq | |
[log icode] re-enter class DummyImplicit in module class Predef | |
[log icode(->mixin ->mixin)] In scope of package class scala, unlinked class Predef$DummyImplicit | |
[log icode(->posterasure)] trait DeprecatedPredef in package class scala impl class is DeprecatedPredef$class | |
[log icode] GenICode#adaptNullRef(REF(class Nothing), BOOL, package <empty> { class CompilerBug { def CompilerBug.test { bb=6 } } }, source-/Users/jason/code/scala/sandbox/test.scala,line-3,offset=71) | |
[log icode] GenICode#adapt(REF(class Nothing), BOOL, package <empty> { class CompilerBug { def CompilerBug.test { bb=6 } } }, source-/Users/jason/code/scala/sandbox/test.scala,line-3,offset=71) | |
[log icode] Ignoring instruction, possibly at our peril, at source-/Users/jason/code/scala/sandbox/test.scala,line-3,offset=71: CZJUMP (BOOL)NE ? 5 : 3 | |
-[log icode] Entering genCond with tree: b.$bar$bar(scala.this.Predef.$qmark$qmark$qmark()) | |
-[log icode] Entering genCond with tree: b | |
-[log icode] at line: 3 | |
-[log icode] Entering genCond with tree: scala.this.Predef.$qmark$qmark$qmark() | |
-[log icode] at line: 3 | |
-[log icode] Gen CALL_METHOD with sym: method $qmark$qmark$qmark isStaticSymbol: false | |
-[log icode] at line: 3 | |
-[log icode] Host class of module Predef with qual scala.this (type) is package class scala | |
-[log icode] LOAD_MODULE from Select: module Predef | |
-[log icode] GenICode#adaptNullRef(REF(class Nothing), BOOL, package <empty> { class CompilerBug { def CompilerBug.test { bb=7 } } }, source-/Users/jason/code/scala/sandbox/test.scala,line-3,offset=85) | |
-[log icode] GenICode#adapt(REF(class Nothing), BOOL, package <empty> { class CompilerBug { def CompilerBug.test { bb=7 } } }, source-/Users/jason/code/scala/sandbox/test.scala,line-3,offset=85) | |
-[log icode] Ignoring instruction, possibly at our peril, at source-/Users/jason/code/scala/sandbox/test.scala,line-3,offset=85: CZJUMP (BOOL)NE ? 2 : 3 | |
-[log icode] Prune fixpoint reached in 1 iterations. | |
-[log icode] Entering method <init> | |
-[log icode] at line: 5 | |
-[log icode] at line: 5 | |
-[log icode] Call to super: CompilerBug.super.<init>() | |
-[log icode] at line: 1 | |
-[log icode] Prune fixpoint reached in 1 iterations. | |
-[running phase jvm on icode] | |
+[log icode] Killing block 5 | |
+error: java.lang.AssertionError: assertion failed: | |
+ Killing block 5 which is referred to from 1 | |
+ while compiling: sandbox/test.scala | |
+ during phase: icode | |
+ library version: version 2.11.1-20140526-112339-acbfbb3ef7 | |
+ compiler version: version 2.11.1-20140526-112339-acbfbb3ef7 | |
+ reconstructed args: -Ydebug -Ylog:icode | |
+ | |
+ last tree to typer: type CompilerBug | |
+ tree position: line 1 of sandbox/test.scala | |
+ tree tpe: <notype> | |
+ symbol: <module> module class CompilerBug | |
+ symbol definition: <module> class CompilerBug extends lang.this.Object (a ModuleClassSymbol) | |
+ symbol package: <empty> | |
+ symbol owners: module class CompilerBug | |
+ call site: primary constructor CompilerBug in module class CompilerBug in package <empty> | |
+ | |
+== Source file context for tree position == | |
+ | |
+ 0 object CompilerBug { | |
+ 1 def test(a: Boolean, b: Boolean) = { | |
+ 2 ((a || ???) && (b || ???)) | |
+ 3 } | |
+ 4 } | |
+ at scala.tools.nsc.backend.icode.BasicBlocks$BasicBlock.killIf(BasicBlocks.scala:411) | |
+ at scala.tools.nsc.backend.icode.BasicBlocks$BasicBlock.killUnless(BasicBlocks.scala:422) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genZandOrZor$1(GenICode.scala:1429) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genCond(GenICode.scala:1441) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genPrimitiveOp(GenICode.scala:442) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genLoadApply6$1(GenICode.scala:764) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genLoad(GenICode.scala:809) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:123) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:71) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:148) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:98) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:71) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:89) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:67) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.apply(GenICode.scala:63) | |
+ at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:430) | |
+ at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:397) | |
+ at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:397) | |
+ at scala.collection.Iterator$class.foreach(Iterator.scala:743) | |
+ at scala.collection.AbstractIterator.foreach(Iterator.scala:1174) | |
+ at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:397) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.run(GenICode.scala:55) | |
+ at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1625) | |
+ at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1610) | |
+ at scala.tools.nsc.Global$Run.compileSources(Global.scala:1605) | |
+ at scala.tools.nsc.Global$Run.compile(Global.scala:1703) | |
+ at scala.tools.nsc.Driver.doCompile(Driver.scala:34) | |
+ at scala.tools.nsc.MainClass.doCompile(Main.scala:23) | |
+ at scala.tools.nsc.Driver.process(Driver.scala:55) | |
+ at scala.tools.nsc.Driver.main(Driver.scala:68) | |
+ at scala.tools.nsc.Main.main(Main.scala) | |
+Exception in thread "main" java.lang.AssertionError: assertion failed: | |
+ Killing block 5 which is referred to from 1 | |
+ while compiling: sandbox/test.scala | |
+ during phase: icode | |
+ library version: version 2.11.1-20140526-112339-acbfbb3ef7 | |
+ compiler version: version 2.11.1-20140526-112339-acbfbb3ef7 | |
+ reconstructed args: -Ydebug -Ylog:icode | |
+ | |
+ last tree to typer: type CompilerBug | |
+ tree position: line 1 of sandbox/test.scala | |
+ tree tpe: <notype> | |
+ symbol: <module> module class CompilerBug | |
+ symbol definition: <module> class CompilerBug extends lang.this.Object (a ModuleClassSymbol) | |
+ symbol package: <empty> | |
+ symbol owners: module class CompilerBug | |
+ call site: primary constructor CompilerBug in module class CompilerBug in package <empty> | |
+ | |
+== Source file context for tree position == | |
+ | |
+ 0 object CompilerBug { | |
+ 1 def test(a: Boolean, b: Boolean) = { | |
+ 2 ((a || ???) && (b || ???)) | |
+ 3 } | |
+ 4 } | |
+ at scala.tools.nsc.backend.icode.BasicBlocks$BasicBlock.killIf(BasicBlocks.scala:411) | |
+ at scala.tools.nsc.backend.icode.BasicBlocks$BasicBlock.killUnless(BasicBlocks.scala:422) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genZandOrZor$1(GenICode.scala:1429) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genCond(GenICode.scala:1441) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genPrimitiveOp(GenICode.scala:442) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genLoadApply6$1(GenICode.scala:764) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genLoad(GenICode.scala:809) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:123) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:71) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:148) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:98) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:71) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:89) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:67) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.apply(GenICode.scala:63) | |
+ at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:430) | |
+ at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:397) | |
+ at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:397) | |
+ at scala.collection.Iterator$class.foreach(Iterator.scala:743) | |
+ at scala.collection.AbstractIterator.foreach(Iterator.scala:1174) | |
+ at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:397) | |
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.run(GenICode.scala:55) | |
+ at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1625) | |
+ at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1610) | |
+ at scala.tools.nsc.Global$Run.compileSources(Global.scala:1605) | |
+ at scala.tools.nsc.Global$Run.compile(Global.scala:1703) | |
+ at scala.tools.nsc.Driver.doCompile(Driver.scala:34) | |
+ at scala.tools.nsc.MainClass.doCompile(Main.scala:23) | |
+ at scala.tools.nsc.Driver.process(Driver.scala:55) | |
+ at scala.tools.nsc.Driver.main(Driver.scala:68) | |
+ at scala.tools.nsc.Main.main(Main.scala) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment