จะคอมไพล์ scala 2.11.2 ด้วย tupes ที่ใหญ่กว่าได้อย่างไร?

ฉันพยายามสร้างสกาล่า 2.11.2 ด้วยสิ่งอันดับใหญ่กว่า (arity มากกว่า 22) โดยทำตามคำแนะนำนี้: http://blog.rogach.org/2013/02/scala-tuplicity-comes-to-210html

ฉันไม่เคยมีประสบการณ์ในการสร้างไลบรารีและคอมไพเลอร์สกาล่าและเครื่องมือสร้าง ant มาก่อน ดังนั้นฉันจึงพยายามเรียกใช้สคริปต์บนโคลน git ใหม่ของแท็ก v2.11.2 และหวังว่ามันจะได้ผล มันไม่ได้

ฉันได้รับข้อผิดพลาดในบรรทัด ant replacelocker:

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

ดูเหมือนว่าวิธีสร้างสกาล่า 2.11 เปลี่ยนไป ฉันไม่พบข้อมูลเฉพาะใดๆ เกี่ยวกับวิธีแทนที่บรรทัด ant replacelocker

เป็นไปได้ไหมที่จะสร้าง scala 2.11.2 ด้วย tuple ที่ใหญ่กว่าเหมือนที่เป็นไปได้สำหรับ 2.9 และ 2.10 จะต้องทำอะไรแตกต่างออกไป?


person dante4d    schedule 25.09.2014    source แหล่งที่มา


คำตอบ (1)


ฉันจัดการเพื่อคอมไพล์สกาล่าด้วยสิ่งอันดับ 64-arity โดยใช้สคริปต์นี้ แม้ว่ามันอาจจะไม่ใช่วิธีที่เหมาะสมที่สุด (การคอมไพล์ครั้งแรกล้มเหลวในคลาสที่ขาดหายไปที่สูงกว่า 22-arity การผ่านครั้งที่สองเสร็จสิ้นแล้ว):

#!/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
person dante4d    schedule 08.11.2014