From ed5e72274bab184845a7b0e0196be92edd2cbdc6 Mon Sep 17 00:00:00 2001 From: Binh Nguyen Date: Mon, 28 Mar 2016 07:24:20 +0700 Subject: [PATCH] Enable `batchMode` on scala.js Optimizer The batchMode should help reduce the memory requirement to compile scala.js code as per https://github.com/scala-js/scala-js/issues/1788#issuecomment-178346142 Implementation details: botBuild is a sbt setting that will be turned on on travisCi so that it will not interfere with local dev experience. --- .travis.yml | 1 + build.sbt | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index dd2a74d4c0..b56b245cde 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,6 +26,7 @@ env: - secure: Kf44XQFpq2QGe3rn98Dsf5Uz3WXzPDralS54co7sqT5oQGs1mYLYZRYz+I75ZSo5ffZ86H7M+AI9YFofqGwAjBixBbqf1tGkUh3oZp2fN3QfqzazGV3HzC+o41zALG5FL+UBaURev9ChQ5fYeTtFB7YAzejHz4y5E97awk934Rg= - secure: QbNAu0jCaKrwjJi7KZtYEBA/pYbTJ91Y1x/eLAJpsamswVOvwnThA/TLYuux+oiZQCiDUpBzP3oxksIrEEUAhl0lMtqRFY3MrcUr+si9NIjX8hmoFwkvZ5o1b7pmLF6Vz3rQeP/EWMLcljLzEwsrRXeK0Ei2E4vFpsg8yz1YXJg= - TRAVIS_NODE_VERSION="4" + - CATS_BOT_BUILD=true cache: directories: - $HOME/.sbt/0.13/dependency diff --git a/build.sbt b/build.sbt index 7ca986daf7..1b1196f096 100644 --- a/build.sbt +++ b/build.sbt @@ -5,6 +5,8 @@ import sbtunidoc.Plugin.UnidocKeys._ import ReleaseTransformations._ import ScoverageSbtPlugin._ +lazy val botBuild = settingKey[Boolean]("Build by TravisCI instead of local dev environment") + lazy val scoverageSettings = Seq( ScoverageKeys.coverageMinimum := 60, ScoverageKeys.coverageFailOnMinimum := false, @@ -59,7 +61,11 @@ lazy val commonJsSettings = Seq( // Using Rhino as jsEnv to build scala.js code can lead to OOM, switch to PhantomJS by default scalaJSUseRhino := false, requiresDOM := false, - jsEnv := NodeJSEnv().value + jsEnv := NodeJSEnv().value, + // Only used for scala.js for now + botBuild := sys.props.getOrElse("CATS_BOT_BUILD", default="false") == "true", + // batch mode decreases the amount of memory needed to compile scala.js code + scalaJSOptimizerOptions := scalaJSOptimizerOptions.value.withBatchMode(botBuild.value) ) lazy val commonJvmSettings = Seq(