scalac相关内容

scala 编译器阶段的顺序是什么?

我想更清晰地了解 scala 编译的各个阶段.我知道某些事情必须在编译器中发生,但并不真正知道它们发生的顺序以及顺序应该如何影响我的编程. 我是否正确地说以下内容是编译器功能的完整列表? 解析程序 检查类型 删除 隐式转换 生成的字节码 优化 如果是这样,它执行这些阶段的顺序是什么?这个顺序对程序员,尤其是类型级程序员有什么影响? 解决方案 您可以使用 scal ..
发布时间:2022-01-17 08:44:40 其他开发

从 jar 中提取 scala 源代码

所以我有一个包含 scala 作为源代码的 jar 文件,而我丢失了原始代码.有没有办法将 jar 中的类文件转换为 Scala 函数和类,而不是编译器生成的 java 类? 我试过在它上面使用反编译器,它只给了我零意义的 java 代码. 先谢谢你! 解决方案 您需要一个特定于 Scala 的反编译器.没有理由不能写出来,但这将是一项巨大的努力,据我所知,没有人真正做到过.当 ..
发布时间:2022-01-01 17:08:13 Java开发

如何找到 Scala 编译器标志/选项的描述?

如何找到最新 scalac 版本的所有标志?谷歌搜索几个小时后,我只发现 过时 文档.(例如,他们甚至没有提到“-feature"标志). 有没有办法从 scalac 或其他任何东西中获取带有描述的编译器标志列表? 解决方案 我能找到的最接近的是编译器的相关源文件.不幸的是,这些选项分布在多个文件中.在撰写本文时,它分解如下: ScaladrefrSettings>(用于基本标 ..
发布时间:2021-07-15 20:12:32 其他开发

通过 sbt 插件添加库依赖项 - 每个子项目

我正在尝试通过 sbt 插件添加库依赖项.依赖项应该添加到每个子项目的二进制 scala 版本中,所以我遍历每个子项目. private def injection(): State =>状态 = { 状态 =>val 提取:Extracted = Project.extract(state)val 丰富的LibDepSettings = extract.structure.allProjec ..
发布时间:2021-07-15 18:58:05 其他开发

什么是ScalaSignature?

将Scala文件反编译为Java代码时,经常会遇到用 ScalaSignature s注释的类.这些似乎只有一个注释值,即某种程度上已编码的String.为什么Scala编译器会创建这样的奇数构造,而不是在 class 文件中使用自定义的 Attribute ? 解决方案 来自将腌制的Scala签名存储在类文件中: 遗产签名存储方法作为属性同时更优雅更紧凑(约15%)和更简单比起使用 ..
发布时间:2021-05-18 20:54:30 Java开发

从jar中提取Scala源代码

因此,我有一个jar文件,其中包含scala作为源代码,并且丢失了原始代码.有没有一种方法可以将jar中的类文件转换为scala函数和类,而不是编译器创建的java类? 我尝试在其上使用反编译器,但它只给我带来零意义的Java代码. 提前谢谢! 解决方案 您需要特定于Scala的反编译器.没有理由不能写,但这是一个很大的努力,据我所知,实际上没有人写过.当然,它不会产生完全原始 ..
发布时间:2021-02-09 20:43:13 Java开发

挂在RegexParser的相位类型器上的Scalac

我有一个scala程序,其中除其他外还具有解析器组合器.这是通过扩展scala.util.parsing.combinator.RegexParsers来完成的.我使用Scala 2.10进行了开发,并且一切正常. 昨天我将系统与IntelliJ 14.02一起升级到了Scala 2.11.4(无关紧要). 但是,每当我现在尝试编译该程序时,scalac就会在此阶段挂起: sca ..

在宏中找不到...的代理

我一直在追问以下问题,希望有一个比我自己有更多经验的人可以帮助我解决问题. 在我的测试案例中,确切的错误如下: java.lang.IllegalArgumentException:在列表中找不到val用户的代理:specs.BasicSpec#User(值用户,方法applyOrElse,,方法$ anonfun $ new $ 97,值FiveLetterNames,方法$ ano ..
发布时间:2020-05-05 09:13:39 其他开发

为什么scalac需要对类路径的传递依赖

我正在遇到一个意想不到的(仅对我而言)ScalaC行为。 TL; DR是以下是在尝试从maven迁移代码库时看到的问题去b。这种迁移的主要重点之一是尝试最小化每个类对编译所需的依赖性,以便只有在需要时才会触发构建。 不幸的是,我看到的是给定 ClassIndirectlyNeedingFoo (uses) - > ClassUsingFoo (用途) - > 供应商 ClassIndi ..
发布时间:2017-05-04 18:13:03 其他开发

scala编译器阶段的顺序是什么?

我想要锐化我的scala编译阶段的图片。我知道某些事情必须发生在编译器中,但不知道它们发生的顺序和顺序应该如何影响我的编程。 我是 解析程序 types checked 删除 隐藏转换 产生字节码 优化 如果是这样,这些阶段的顺序是什么? 这个命令如何影响程序员,特别是类型级程序员? 解决方案 在2.11中,使用 - 以下是2.10.0的用法: ..
发布时间:2016-12-22 18:59:27 其他开发

FSC每次都重新编译

FSC每次都重新编译我的.scala文件,即使没有必要 - 我可以编译它两次,而不需要在尝试之间编辑任何东西,它会重新编译它们! 例如,我有2个文件 Hello.scala class Hello { print(“hello”) } 和Tokens.scala: 抽象类Token(val str:String,val start:Int,val end ..
发布时间:2016-12-22 13:33:39 其他开发