implicit.ly

Scala software, hot off the presses

sbt-appengine 0.4.0

sbt-appengine + sbt-revolver = hot reloading dev server

One glaring omission in sbt-appengine when it was ported from @Yasushi's sbt-appengine-plugin was the ability to run development server locally from sbt shell.

sbt-appengine 0.4.0 adds a new task:

> appengine-dev-server

This (re)starts development server in the background managed by sbt-revolver. This also allows triggered redeployment:

> ~ appengine-dev-server

But wait there's more! By installing JRebel (there's a free Scala license) and setting the path as:

export JREBEL_PATH=/Applications/ZeroTurnaround/JRebel/jrebel.jar

development server launches under JRebel. This allows hot reloading:

> appengine-dev-server
> ~ package-war

You change your code, and it reflects to http://localhost:8080/ automatically. This feature was implemented by @philcali and @eed3si9n.

how to install

The use of sbt-revolver requires an additional resolver in plugins.sbt:

addSbtPlugin("com.eed3si9n" % "sbt-appengine" % "0.4.0")

resolvers ++= Seq(
  "spray repo" at "http://repo.spray.cc",
  Resolver.url("sbt-plugin-releases",
    url("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/"))(Resolver.ivyStylePatterns)
)

sbt-appengine is a plug-in for Simple Build Tool that automates Google App Engine deployment.

Filed under  //   Scala 2.9.1   com.eed3si9n   sbt-appengine  

treehugger 0.1.2

Self type annotations

Adds withSelf(...) to define self type annotations:

CLASSDEF("C") withSelf("self", "T1", "T2") := BLOCK(
  VAL("x") := REF("self")
)

Type expressions

Adds TYPE_WITH(typ, ...) to define refined types.

VAL("x", TYPE_REF("A") TYPE_WITH "B")

Adds TYPE_SINGLETON(tree) to define singleton types.

VAL("x", TYPE_SINGLETON(THIS))

Bug fixes and minor enhancements

  • Fixes symbol and type name printing. #8
  • Adds withParents(...) to OBJECTDEF(...) and CASEOBJECTDEF(...). #10
  • Fixes TYPE_MAP to generate Map instead of scala.collection.Map.

treehugger.scala is a library to code Scala programmatically.

Filed under  //   Scala 2.8.1   Scala 2.9.1   com.eed3si9n   treehugger  

treehugger 0.1.1

Function type contructors

Several ways were added to create function types.

typ1 TYPE_=> typ2
TYPE_FUNCTION(typ, ..., r)
TYPE_FUNCTION(typ :: Nil, r)

Now accepting Iterables

DSL was expanded to accept Iterable[A] where it accepted vararg of A. Also implicit conversions were expanded to handle iterables. These changes should minimize explicit conversions that were necessary in the previous version:

withTypeParams(sym.pipeParams map {TYPEVAR(_)})

Bug fixes and minor enhancements

  • Fixes param modifiers not printing. #1
  • Fixes passing args to parent constructors. #2
  • Adds withParams(...) to DEF(sym). #3

treehugger.scala is a library to code Scala programmatically.

Filed under  //   Scala 2.8.1   Scala 2.9.1   com.eed3si9n   treehugger  

treehugger 0.1.0

This is the initial release of treehugger.scala.

It's a library for generating Scala code by constructing Scala abstract syntax tree.

treehugger.scala is a library to code Scala programmatically.

Filed under  //   Scala 2.8.1   Scala 2.9.1   com.eed3si9n   treehugger  

sbt-assembly 0.7.3

bug fixes and minor updates

In plugins.sbt:

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.7.3")

resolvers += Resolver.url("sbt-plugin-releases",
  new URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/"))(Resolver.ivyStylePatterns)

sbt-assembly is a plug-in for Simple Build Tool that creates a single jar of your project including all of its dependencies.

Filed under  //   Scala 2.9.1   com.eed3si9n   sbt-assembly  

sff4s 0.1.1

bug fix

  • Fixes impicitly converted juc.Future getting stuck. #2 fixed by @seratch

sff4s (simple future facade for Scala) is a Scala wrapper around several future implementations.

Filed under  //   Scala 2.8.1   Scala 2.9.1   com.eed3si9n   sff4s  

sbt-appengine 0.3.1

sbt-appengine is a plug-in for Simple Build Tool that automates Google App Engine deployment.

Filed under  //   Scala 2.9.1   com.eed3si9n   sbt-appengine  

sbt-inspectr 0.0.2

Uses jline to get the terminal width. {paulp}

sbt-inspectr is a plug-in for sbt that adds inspectr command for calling inspect recursively.

Filed under  //   Scala 2.9.1   com.eed3si9n   sbt-inspectr  

sbt-inspectr 0.0.1

sbt-inspectr for sbt 0.11.1

Add the following to your ~/.sbt/plugins/build.sbt:

addSbtPlugin("com.eed3si9n" % "sbt-inspectr" % "0.0.1")

This adds a single command inspectr:

helloworld> inspectr package
[info] compile:package = Task[java.io.File]
[info]   +-compile:package-bin = Task[java.io.File]
[info]     +-compile:package-configuration(for package-bin) = Task[sbt.Packag..
[info]     | +-compile:mappings(for package-bin) = Task[scala.collection.Seq[..
[info]     | | +-compile:products = Task[scala.collection.Seq[java.io.File]]
[info]     | | 
[info]     | +-compile:artifact-path(for package-bin) = target/scala-2.9.1/he..
[info]     | | +-*/*:artifact-name = <function3>
[info]     | | +-*:cross-target = target/scala-2.9.1
[info]     | | +-*/*:scala-version = 2.9.1
[info]     | | +-compile:artifact(for package-bin) = Artifact(helloworld,jar,..
[info]     | | | +-*/*:artifact-classifier = None
[info]     | | | +-compile:configuration = compile
[info]     | | | 
[info]     | | +-*:project-id = production:helloworld:0.1-SNAPSHOT
[info]     | | 
....

sbt-inspectr is a plug-in for sbt that adds inspectr command for calling inspect recursively.

Filed under  //   Scala 2.9.1   com.eed3si9n   sbt-inspectr  

sbt-assembly 0.7.2

bug fixes and minor updates

  • sbt 0.11.1
  • closes service provider files when done reading them. contributed by @rjmac
  • fixes META-INF/services merging. contributed by @rjmac

sbt-assembly is a plug-in for Simple Build Tool that creates a single jar of your project including all of its dependencies.

Filed under  //   Scala 2.9.1   com.eed3si9n   sbt-assembly