我正在尝试开始尝试Lightweight Modular Staging, 但他们的网页缺少一个简单的“测试”示例,显示从开始到结束的所有内容,这将测试所有内容的安装和设置是否正确。结果我正在努力做到这一点。我试图模仿我在LMS核心的test-src子目录中找到的内容。
到目前为止,我已完成以下工作:
然后我尝试创建一个新的SBT项目,其中包含:
配置文件 build.sbt :
name := "lms-tutorial"
scalaOrganization := "org.scala-lang.virtualized"
scalaVersion := "2.10.1"
libraryDependencies += "EPFL" %% "lms" % "0.3-SNAPSHOT"
scalacOptions += "-Yvirtualize"
一个简单的程序 src / main / scala / hw.scala :
package scala.virtualization.lms
package epfl
import common._
object Hi {
def snippet(x: Rep[Int]) = {
def compute(b: Boolean): Rep[Int] = {
// the if is executed in the first stage
if (b) 1 else x
}
compute(true)+compute(1==1)
}
def main(args: Array[String]) =
println("Hello World!")
}
但我无法编译。我收到以下错误:
[error] ....../src/main/scala/hw.scala:22: not found: type Rep
[error] def compute(b: Boolean): Rep[Int] = {
[error] ^
[error] ....../src/main/scala/hw.scala:21: not found: type Rep
[error] def snippet(x: Rep[Int]) = {
[error] ^
[error] two errors found
[error] (compile:compile) Compilation failed
'Rep'是LMS的基本构造,我相信它应该从common._
导入,但不知何故它不起作用。我做错了什么?
答案 0 :(得分:0)
抽象类型成员Rep[T]
在特征Base
内声明。为了使用Rep[T]
类型,您需要在包含Base
特征的混合合成中编写程序。
开始使用LMS的最简单方法是遵循PLDI 2013中的LMS tutorial。