2

我尝试按照本指南构建具有更大元组(超过 22 个)的 scala 2.11.2:http: //blog.rogach.org/2013/02/scala-tuplicity-comes-to-210.html

我以前没有构建 scala 库和编译器以及 ant 构建工具的经验,所以我只是尝试在标签 v2.11.2 的新 git 克隆上运行脚本,并希望它能工作。它没有。

我在网上遇到了一个错误ant replacelocker

BUILD FAILED
Target "replacelocker" does not exist in the project "sabbus".

似乎 scala 2.11 的构建方式已经改变。我无法找到有关如何更换ant replacelocker线路的任何具体信息。

是否可以使用更大的元组构建 scala 2.11.2,就像 2.9 和 2.10 一样?有什么不同的做法?

4

1 回答 1

0

我设法使用这个脚本用 64-arity 元组编译 scala,尽管它可能不是最佳方式(第一次编译在缺少 22-arity 以上的类时失败,第二次通过完成 OK):

#!/bin/bash -vx

ARITY=64

#mv scala scala-`date +%y%m%d-%H%M%S`
#git clone https://github.com/scala/scala.git
#cp -R scala-fresh scala
#cd scala
git checkout -b 2.11.2-local tags/v2.11.2
export ANT_OPTS="-Xmx7G -Xss25M -Xms4G -XX:MaxPermSize=512M"
#VERS="-Dbuild.release=true -Dversion.number=2.11.2-local -Dmaven.version.number=2.11.2-local"
VERS="-Dbuild.release=true"
sed -i "s/\(val MaxTupleArity, .*\) 22/\1 $ARITY/" src/reflect/scala/reflect/internal/Definitions.scala
ant build $VERS
sed -i "s/22/$ARITY/" src/library/scala/runtime/ScalaRunTime.scala
sed -i "s/\(MAX_ARITY .*\) 22/\1 $ARITY/" src/build/genprod.scala
sed -i 's/import scala.language.postfixOps//' src/build/genprod.scala
echo 'genprod.main(Array("src/library/scala/"))' >> src/build/genprod.scala
scala src/build/genprod.scala
ant build $VERS
于 2014-11-08T02:48:57.317 回答