Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't compile using 2.11.0-RC1 - bad macro impl binding: macroEngine is supposed to be there #8375

Closed
scabug opened this issue Mar 7, 2014 · 5 comments
Assignees
Labels
Milestone

Comments

@scabug
Copy link

scabug commented Mar 7, 2014

[error]   bad macro impl binding: macroEngine is supposed to be there
[error]      while compiling: <removed>.scala
[error]         during phase: typer
[error]      library version: version 2.11.0-RC1
[error]     compiler version: version 2.11.0-RC1
[error]   reconstructed args: -d <removed>
[error] 
[error]   last tree to typer: Apply(constructor RuntimeException)
[error]        tree position: line 28 of <removed>
[error]             tree tpe: RuntimeException
[error]               symbol: constructor RuntimeException in class RuntimeException
[error]    symbol definition: def <init>(x$1: String): RuntimeException (a MethodSymbol)
[error]       symbol package: java.lang
[error]        symbol owners: constructor RuntimeException -> class RuntimeException
[error]            call site: method apply in object <removed> in package simpleenergy
[error] 
[error] Total time: 1 s, completed Mar 6, 2014 8:33:06 PM
	at scala.reflect.internal.SymbolTable.abort(SymbolTable.scala:57)
	at scala.tools.nsc.Global.abort(Global.scala:268)
	at scala.tools.nsc.typechecker.Macros$MacroImplBinding$.fail$1(Macros.scala:227)
	at scala.tools.nsc.typechecker.Macros$MacroImplBinding$.failField$1(Macros.scala:229)
	at scala.tools.nsc.typechecker.Macros$MacroImplBinding$.unpickle$1(Macros.scala:230)
	at scala.tools.nsc.typechecker.Macros$MacroImplBinding$.unpickle(Macros.scala:239)
	at scala.tools.nsc.typechecker.Macros$$anonfun$loadMacroImplBinding$1.applyOrElse(Macros.scala:258)
	at scala.tools.nsc.typechecker.Macros$$anonfun$loadMacroImplBinding$1.applyOrElse(Macros.scala:257)
	at scala.PartialFunction$Lifted.apply(PartialFunction.scala:218)
	at scala.PartialFunction$Lifted.apply(PartialFunction.scala:214)
	at scala.tools.nsc.typechecker.Macros$class.loadMacroImplBinding(Macros.scala:257)
	at scala.tools.nsc.Global$$anon$1.loadMacroImplBinding(Global.scala:458)
	at scala.reflect.macros.runtime.MacroRuntimes$MacroRuntimeResolver.<init>(MacroRuntimes.scala:53)
	at scala.reflect.macros.runtime.MacroRuntimes$$anonfun$standardMacroRuntime$3.apply(MacroRuntimes.scala:35)
	at scala.reflect.macros.runtime.MacroRuntimes$$anonfun$standardMacroRuntime$3.apply(MacroRuntimes.scala:35)
	at scala.collection.mutable.MapLike$class.getOrElseUpdate(MapLike.scala:188)
	at scala.collection.mutable.AbstractMap.getOrElseUpdate(Map.scala:80)
	at scala.reflect.macros.runtime.MacroRuntimes$class.standardMacroRuntime(MacroRuntimes.scala:35)
	at scala.tools.nsc.Global$$anon$1.standardMacroRuntime(Global.scala:458)
	at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$11.default(AnalyzerPlugins.scala:398)
	at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$11.default(AnalyzerPlugins.scala:395)
	at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:359)
	at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroRuntime(AnalyzerPlugins.scala:395)
	at scala.tools.nsc.Global$$anon$1.pluginsMacroRuntime(Global.scala:458)
	at scala.reflect.macros.runtime.MacroRuntimes$class.macroRuntime(MacroRuntimes.scala:22)
	at scala.tools.nsc.Global$$anon$1.macroRuntime(Global.scala:458)
	at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:560)
	at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:554)
	at scala.tools.nsc.Global.withInfoLevel(Global.scala:197)
	at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:553)
	at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:541)
	at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:702)
	at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:458)
	at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$9.default(AnalyzerPlugins.scala:382)
	at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$9.default(AnalyzerPlugins.scala:379)
	at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:359)
	at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:379)
	at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:458)
	at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:695)
	at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:458)
	at scala.tools.nsc.typechecker.Typers$Typer.vanillaAdapt$1(Typers.scala:1112)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1167)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5316)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5329)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5276)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5280)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5358)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedStat$1(Typers.scala:2998)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$62.apply(Typers.scala:3102)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$62.apply(Typers.scala:3102)
	at scala.collection.immutable.List.loop$1(List.scala:172)
	at scala.collection.immutable.List.mapConserve(List.scala:188)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3102)
	at scala.tools.nsc.typechecker.Typers$Typer.typedBlock(Typers.scala:2360)
	at scala.tools.nsc.typechecker.Typers$Typer.typedOutsidePatternMode$1(Typers.scala:5223)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5259)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5266)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5302)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5329)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5276)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5280)
	at scala.tools.nsc.typechecker.Typers$Typer.typedArg(Typers.scala:3112)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedArgToPoly$1(Typers.scala:3448)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$70.apply(Typers.scala:3456)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$70.apply(Typers.scala:3456)
	at scala.reflect.internal.util.Collections$class.map2(Collections.scala:79)
	at scala.reflect.internal.SymbolTable.map2(SymbolTable.scala:16)
	at scala.tools.nsc.typechecker.Typers$Typer.handlePolymorphicCall$1(Typers.scala:3456)
	at scala.tools.nsc.typechecker.Typers$Typer.doTypedApply(Typers.scala:3467)
	at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4458)
	at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4491)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5249)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5266)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5302)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5329)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5276)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5280)
	at scala.tools.nsc.typechecker.Typers$Typer.typedArg(Typers.scala:3112)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedArgToPoly$1(Typers.scala:3448)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$70.apply(Typers.scala:3456)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$70.apply(Typers.scala:3456)
	at scala.reflect.internal.util.Collections$class.map2(Collections.scala:79)
	at scala.reflect.internal.SymbolTable.map2(SymbolTable.scala:16)
	at scala.tools.nsc.typechecker.Typers$Typer.handlePolymorphicCall$1(Typers.scala:3456)
	at scala.tools.nsc.typechecker.Typers$Typer.doTypedApply(Typers.scala:3467)
	at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4458)
	at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4491)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5249)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5266)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5302)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5329)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5276)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5280)
	at scala.tools.nsc.typechecker.Typers$Typer.transformedOrTyped(Typers.scala:5511)
	at scala.tools.nsc.typechecker.Typers$Typer.typedDefDef(Typers.scala:2189)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5214)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5265)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5302)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5329)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5276)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5280)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5358)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedStat$1(Typers.scala:2998)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$62.apply(Typers.scala:3102)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$62.apply(Typers.scala:3102)
	at scala.collection.immutable.List.loop$1(List.scala:172)
	at scala.collection.immutable.List.mapConserve(List.scala:188)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3102)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1904)
	at scala.tools.nsc.typechecker.Typers$Typer.typedModuleDef(Typers.scala:1791)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5216)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5265)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5302)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5329)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5276)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5280)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5358)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedStat$1(Typers.scala:2998)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$62.apply(Typers.scala:3102)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$62.apply(Typers.scala:3102)
	at scala.collection.immutable.List.loop$1(List.scala:172)
	at scala.collection.immutable.List.mapConserve(List.scala:188)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3102)
	at scala.tools.nsc.typechecker.Typers$Typer.typedPackageDef$1(Typers.scala:4925)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5218)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5265)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5302)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5329)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5276)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5280)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5354)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.apply(Analyzer.scala:102)
	at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:429)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:94)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:93)
	at scala.collection.Iterator$class.foreach(Iterator.scala:743)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1174)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.run(Analyzer.scala:93)
	at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1624)
	at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1609)
	at scala.tools.nsc.Global$Run.compileSources(Global.scala:1604)
	at scala.tools.nsc.Global$Run.compile(Global.scala:1702)
	at xsbt.CachedCompiler0.run(CompilerInterface.scala:88)
	at xsbt.CachedCompiler0.run(CompilerInterface.scala:72)
	at xsbt.CompilerInterface.run(CompilerInterface.scala:27)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:73)
	at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:35)
	at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:29)
	at sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileScala$1$1.apply$mcV$sp(AggressiveCompile.scala:71)
	at sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:71)
	at sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:71)
	at sbt.compiler.AggressiveCompile.sbt$compiler$AggressiveCompile$$timed(AggressiveCompile.scala:101)
	at sbt.compiler.AggressiveCompile$$anonfun$4.compileScala$1(AggressiveCompile.scala:70)
	at sbt.compiler.AggressiveCompile$$anonfun$4.apply(AggressiveCompile.scala:88)
	at sbt.compiler.AggressiveCompile$$anonfun$4.apply(AggressiveCompile.scala:60)
	at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:24)
	at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:22)
	at sbt.inc.Incremental$.cycle(Incremental.scala:52)
	at sbt.inc.Incremental$.compile(Incremental.scala:29)
	at sbt.inc.IncrementalCompile$.apply(Compile.scala:20)
	at sbt.compiler.AggressiveCompile.compile2(AggressiveCompile.scala:96)
	at sbt.compiler.AggressiveCompile.compile1(AggressiveCompile.scala:44)
	at sbt.compiler.AggressiveCompile.apply(AggressiveCompile.scala:31)
	at sbt.Compiler$.apply(Compiler.scala:79)
	at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:574)
	at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:574)
	at sbt.Scoped$$anonfun$hf2$1.apply(Structure.scala:578)
	at sbt.Scoped$$anonfun$hf2$1.apply(Structure.scala:578)
	at scala.Function1$$anonfun$compose$1.apply(Function1.scala:49)
	at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311)
	at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311)
	at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:41)
	at sbt.std.Transform$$anon$5.work(System.scala:71)
	at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232)
	at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232)
	at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
	at sbt.Execute.work(Execute.scala:238)
	at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:232)
	at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:232)
	at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160)
	at sbt.CompletionService$$anon$2.call(CompletionService.scala:30)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:744)
@scabug
Copy link
Author

scabug commented Mar 7, 2014

Imported From: https://issues.scala-lang.org/browse/SI-8375?orig=1
Reporter: @puffnfresh
Affected Versions: 2.11.0-RC1

@scabug
Copy link
Author

scabug commented Mar 7, 2014

@xeno-by said (edited on Mar 7, 2014 4:22:50 AM UTC):
This is an obscure way for the macro engine in RC1 to tell you that it's binary incompatible with previous macro engines (i.e. that it can't load metadata of / expand macros compiled with earlier versions of Scala). A similar crash and a possible explanation can be found in https://groups.google.com/forum/#!topic/scala-user/qQq7H8iq_qE.

I will try to turn the crash into an error message in RC2, but that's about the best we can do here - I don't think we can make this work short of ensuring that all dependencies are compiled with RC1 (upd. tomorrow I will see what I can do though; you know, maybe it's possible to come up with something).

If everything is compiled with RC1, please let me know - then it's a bug.

@scabug
Copy link
Author

scabug commented Mar 7, 2014

@puffnfresh said:
@xeno-by yeah, that'd be it - how can I figure out which dependency is causing the problem? I'm not sure which libraries contain macros.

Could the error message be specific about that?

@scabug
Copy link
Author

scabug commented Mar 7, 2014

@xeno-by said:
Try running the build with -Ymacro-debug-lite. It should dump a lot of info about macro expansions, and the last entry should indicate the culprit. I will update the error message to be as specific and as crashless as possible in RC2.

@scabug
Copy link
Author

scabug commented Mar 7, 2014

@xeno-by said:
scala/scala#3606

@scabug scabug closed this as completed Mar 10, 2014
@scabug scabug added the has PR label Apr 7, 2017
@scabug scabug added this to the 2.11.0-RC3 milestone Apr 7, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants