Sbt Frege Save

Frege support for sbt

Project README

Build status Latest version

Features

  • Compile Frege code from your project's src/main/frege/ directory
  • Call Frege code from your project's Java/Scala/etc. code
  • Launch the Frege REPL with your project's classes and libraries

Requirements

  • sbt 1.0.1+
  • Scala 2.4.0+

For sbt 0.13.6+ projects, use sbt-frege version 1.1.3

Getting started

Add the Frege sbt plugin to your project:

project/plugins.sbt:

addSbtPlugin("com.earldouglas" % "sbt-frege" % "3.0.2")

Write some Frege code:

src/main/frege/example/HelloWorld.fr:

package example.HelloWorld where

main :: [String] -> IO ()
main _ = println "Hello, world!"

Build and run it:

$ sbt
> compile
> run
Hello, world!

Try it from the Frege REPL:

$ sbt
> fregeRepl

frege> import example.HelloWorld (main)

frege> main []
Hello, world!
()

Configuration

Frege compiler

  • fregeOptions: Seq[String] - Extra options for fregec
  • fregeSource: File - Frege source directory (default src/main/frege/)
  • fregeTarget: File - Frege target directory (default target/frege/)
  • fregeCompiler: String - Full name of the Frege compiler (default frege.compiler.Main)
  • fregeLibrary: ModuleID - Frege library (fregec.jar) to use (default Frege 3.23.288)

Frege REPL

  • fregeReplVersion: String - The version of frege-repl to use (default 1.3)
  • fregeReplMainClass: String - The Frege REPL main class (default frege.repl.FregeRepl)

Though sbt-frege uses 3.24.100.1 by default, Frege REPL 1.3 depends on Frege 3.23.288, so it takes priority when launching fregeRepl.

Open Source Agenda is not affiliated with "Sbt Frege" Project. README Source: earldouglas/sbt-frege
Stars
53
Open Issues
2
Last Commit
2 weeks ago
License

Open Source Agenda Badge

Open Source Agenda Rating