NOTE Alacs is not currently being developed by Yuvi, as all my effort has shifted to qualac. However, 95% of the code base here is ready to add bug rules. In fact there are alaready several in place. If you'd like to work on Alacs, shoot me an email and I'd be glad to help.
The aim is to provide a tool for finding defects in Scala tools by analyzing ASTs in compilation. Think FindBugs for Scala.
Alacs is not ready for serious use, but feel free to try it out.
Modify your Project.scala
thusly:
import sbt._
class Project(info: ProjectInfo) extends DefaultProject(info) with AutoCompilerPlugins {
val scalaToolsSnapshots = "Scala-Tools Maven2 Snapshots Repository" at "http://scala-tools.org/repo-snapshots"
val alacs = compilerPlugin("com.github.alacs" %% "alacs" % "0.0.0-SNAPSHOT")
}
- Build the project with
sbt package
on the command line. scalac -Xplugin:/path/to/alacs/target/scala_2.8.1/alacs_2.8.1-0.0.0-SNAPSHOT.jar -Xplugin-require:alacs foo.scala
There is no special support for IDEs (Eclipse, IntelliJ, Netbeans) yet. For all I know it's really trivial to use compiler plugins with them.
The scala-corpus is a large collection of Scala code intended for testing Alacs.
There are two ways to contribute to Alacs:
- Submitting suggestions for bug reports. You can do this on the wiki.
- Writing code (e.g., submitting patches, joining the team, etc.).
Thank you for helping improve Alacs!