问题标签 [scala-compiler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
258 浏览

scala - scalac中使用的中间语言?

GCC 编译器 中,我们看到了几种“中间语言”:RTLGENERIC 和 GIMPLE

这个答案暗示了 中的中间表示的想法scalac

我的问题是:Scala 中是否存在编译器的“中间表示”?有这方面的文件吗?

假设:

  • 我不是指 JVM 字节码。我的意思是上面的抽象级别。
0 投票
1 回答
40 浏览

scala - 将 scala 升级到“2.10.3”,但我的 jar 文件只显示“2.10”

我确实在我的 build.sbt 中指定了 scalaVersion := "2.10.3",但是在 ./sbt 包之后,我的包为 myapp_ 2.10 -1.0.0.jar。

它不应该是 myapp_ 2.10.3 -1.0.0.jar 吗?

我还需要更改任何参数吗?

谢谢!

0 投票
1 回答
282 浏览

scala - Scala 运行时插件系统

我正在开发简单的应用程序服务器,我想制作扩展插件系统。对于构建插件,我计划创建将生成 scala 源文件的特殊向导。我想要自动编译并加载这些文件,以便将它们的业务逻辑包含到我的应用程序服务器中。是否有可能在 Scala 中完成并且我必须阅读并为实现这个想法而做?

0 投票
1 回答
192 浏览

scala - Scala 编译器永无止境的编译

我注意到我的 Scala IDE 消耗了所有可用的 CPU……我尝试从命令行通过 SBT 编译项目,但遇到了同样的情况。

我怎样才能知道出了什么问题?有没有办法找出正在编译的文件或类/对象/特征?

我在 2.10.2 和 2.10.4-RC1 中遇到了同样的问题

0 投票
1 回答
155 浏览

scala - Scala 2.10 中编译器生成的隐含值是什么?

Scala 反射指南中写了以下内容:

与 Manifest 一样,实际上可以请求编译器生成一个 TypeTag。这是通过简单地指定 TypeTag[T] 类型的隐式证据参数来完成的。如果编译器在隐式搜索过程中找不到匹配的隐式值,它会自动生成一个 TypeTag[T]。

这个StackOverflow 答案很好地解释了“隐含证据”的概念。但是,我仍然不完全清楚编译器将生成TypeTag[T] 意味着什么。

  • 这是否意味着这是“隐含证据”搜索的特例?即当编译器进行隐式搜索时,类 TypeTag[T] 以特殊方式处理?我试图在 Scala 反射 API 中查找隐式参数值,但没有找到提供 TypeTag[T] 的任何参数值,因此我假设 TypeTag[T] 隐式参数来自编译器内部(如文档所述)。所以类名 TypeTag[T] 被硬编码到编译器的源代码中。这个假设正确吗?

  • 隐含值的自动生成是否记录在某处?换句话说,是否有一个文档列出了所有自动生成的隐含证据?我在Scala 语言规范(2.9 版)中没有找到 TypeTag[T] 。与 TypeTag[T] 最接近的概念是 Manifest,它是自动生成的隐式参数。Manifests 是 Scala 2.9 中唯一自动生成的隐式值参数吗?

0 投票
0 回答
80 浏览

scala - Scala 中的 IMain 和 Global.Run 有什么区别?

我想从 Scala 中解释 Scala 代码。我在网上找到了两种方法:

  1. IMain例如在这里
  2. Global.Run例如在这里

性能上有区别吗?另外,我想得到评估的结果。

0 投票
0 回答
122 浏览

scala - Scala-compiler:将 jar 添加到类路径

我有以下代码:

我正在尝试编译一个类。编译器尝试编译指定的文件。但编译器似乎没有在 Strat.jar 中看到任何内容。在代码中运行编译器时,如何将 jar 添加到类路径中?

我正在使用 2.11.0RC1

0 投票
1 回答
361 浏览

scala - 如何将 fsc 与 sbt 一起使用?

相关问题:SBT 是否使用快速 Scala 编译器 (fsc)?

fsc 可以和 sbt 一起使用吗?实用吗?如果是这样,如何将 fsc 集成到 sbt 中?

0 投票
1 回答
108 浏览

scala - Scala `IMain` v. 2.11 中的`()Int` 和 `Int` 类型有什么区别?

我一直在玩 2.11 中用于编译器和 repl 的新 API,并且遇到了一些奇怪的事情。这是我的 repl 输出:

如您所见,typeOfTerm("x")返回()Int,但typeOfExpression("x")返回Int。我认为类型()Int表示变量的情况是 type Int,但我不能确定。如果有人可以确认或纠正我的困惑,并可能将我引导至任何讨论此问题的文档,我将不胜感激。我浏览了我能找到的反射文档,但没有任何运气。

0 投票
1 回答
51 浏览

scala - 我无法从 scala AST 调用类。找不到课程

我想知道如何创建节点,以便它们在代码中实例化类。目前,如果我修改代码,它无法识别节点。

}

在 AST 中,我创建了以下节点并将 ValDef 节点替换为参数 a

我收到以下错误

我想知道我创建节点的方式是否错误以及我需要做的其他事情。我在 Transformer 类中传递了这个 retTree 来转换 AST。在编译器的 Typer 阶段未找到该类型。任何帮助将不胜感激。