scalac

    1热度

    1回答

    我正在开发一个scala编译器插件。编译器插件在“refcheck”阶段之后运行。它分析AST(抽象语法树) 并生成一些输出。在此插件中,我正在使用System.loadLibrary 加载本机库“scalaz3.dll”我计划在Eclipse Scala IDE中使用编译器插件。我在ScalaIde首选项中设置了-XPlugin参数。 当我在Eclipse编译Scala的源文件,该插件的refc

    6热度

    1回答

    我想写一个Scala编译器插件,它将允许非常通用的代码生成:类似于C预处理器的普遍性,但更多类型安全(我不确定这是否是一个可怕的想法,但这是一个有趣的练习)。我理想中的使用情况看起来是这样的: // User code. This represents some function that might take some args // and outputs an abstract synta

    3热度

    2回答

    我是在一个项目昨晚的工作,并有一些像这样的代码: /* fixes warnings in 2.10 */ import scala.language.implicitConversions /* had some kind of case class with some members */ case class Wrapper[A](x: A) /* for convenience

    1热度

    3回答

    scala解释器允许shebangs,但奇怪的是,scalac borks对他们。有没有像these这样的技巧来解决这个缺陷?

    3热度

    2回答

    这听起来很尴尬。我的目的是了解Scala如何处理用Java风格编写的包语句。为此,我写了一个小例子类(即我叫DinnerTimeP.scala如下: package dinnertime class Dinner { val veggie = "broccoli" def announceDinner(veggie: String) { println("Dinne

    3热度

    1回答

    我目前正在使用SBT的Scala项目,并且我正在尝试生成生成生成设置,其中一个条件都是断言被关闭。我只是添加了这行,我build.sbt: scalacOptions ++= Seq(..., "-Xdisable-assertions") 我跑在调试日志级别,我看到被传递到编译器的选项,但是当我运行我们的程序(其长期运行的程序分析),我遇到了一个断言。尽管通过所有迹象所有断言应该被编译掉。我

    1热度

    1回答

    你可以在Scala方法的关闭}上设置一个断点,但这样做毫无意义,因为它显然不会被打中。 我仍然想把它设置在那里。所以我想,“如果我在这条线之前放置一个禁止操作,并为此设置一个断点?” 但是,由于很显然,当我尝试设置一个永远不会被命中的断点时(因为那里没有代码),Eclipse并没有警告我,所以我不能依靠Eclipse告诉我,如果没有操作优化出来(特别是因为我甚至没有使用相同版本的Scala来运行E

    13热度

    1回答

    我目前正在广泛使用类型模式来成为我的代码的性能相关部分。我发现至少有两个潜在的低效率来源。 隐式参数传递给消息调用。我不知道这是否真的发生。也许scalac可以简单地在使用它们的地方插入隐式参数并将它们从方法签名中移除。在手动插入隐式参数的情况下,这可能不可行,因为它们可能仅在运行时被解析。 对于传递隐式参数适用什么优化? 如果类型类实例由def(与val相反)提供,则必须在每次调用“类型分类方法

    5热度

    1回答

    我这个小斯卡拉例如: object Test { def add(x: Int, y: Int) = { val z = x - y x match { case 0 => 0 - y case 1 => 1 - y case _ => x - y } x + y } def main(ar

    2热度

    2回答

    有趣的是,启用这些选项后,我们的构建看起来更慢。我在网上搜索了一下,试图做一些比较,但没有发现任何结论。想知道是否有人非正式知道。