summaryrefslogtreecommitdiff
path: root/examples/scala-js/cli
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scala-js/cli')
-rwxr-xr-xexamples/scala-js/cli/src/main/resources/scalajsc16
-rw-r--r--examples/scala-js/cli/src/main/resources/scalajsc.bat14
-rwxr-xr-xexamples/scala-js/cli/src/main/resources/scalajsld10
-rw-r--r--examples/scala-js/cli/src/main/resources/scalajsld.bat8
-rwxr-xr-xexamples/scala-js/cli/src/main/resources/scalajsp9
-rw-r--r--examples/scala-js/cli/src/main/resources/scalajsp.bat7
-rw-r--r--examples/scala-js/cli/src/main/scala/scala/scalajs/cli/Scalajsld.scala180
-rw-r--r--examples/scala-js/cli/src/main/scala/scala/scalajs/cli/Scalajsp.scala158
8 files changed, 0 insertions, 402 deletions
diff --git a/examples/scala-js/cli/src/main/resources/scalajsc b/examples/scala-js/cli/src/main/resources/scalajsc
deleted file mode 100755
index 7fd1100..0000000
--- a/examples/scala-js/cli/src/main/resources/scalajsc
+++ /dev/null
@@ -1,16 +0,0 @@
-#! /bin/sh
-
-SCALA_BIN_VER="@SCALA_BIN_VER@"
-SCALAJS_VER="@SCALAJS_VER@"
-SCALA_VER=$(scalac -version 2>&1 | grep -o '[0-9]\.[0-9][0-9]\.[0-9]')
-
-if [ "$(echo $SCALA_VER | cut -b 1-4)" != "$SCALA_BIN_VER" ]; then
- echo "This bundle of Scala.js CLI is for $SCALA_BIN_VER. Your scala version is $SCALA_VER!" >&2
- exit 1
-fi
-
-BASE="$(dirname $0)/.."
-PLUGIN="$BASE/lib/scalajs-compiler_$SCALA_VER-$SCALAJS_VER.jar"
-JSLIB="$BASE/lib/scalajs-library_$SCALA_BIN_VER-$SCALAJS_VER.jar"
-
-scalac -classpath "$JSLIB" "-Xplugin:$PLUGIN" "$@"
diff --git a/examples/scala-js/cli/src/main/resources/scalajsc.bat b/examples/scala-js/cli/src/main/resources/scalajsc.bat
deleted file mode 100644
index 767c5df..0000000
--- a/examples/scala-js/cli/src/main/resources/scalajsc.bat
+++ /dev/null
@@ -1,14 +0,0 @@
-@ECHO OFF
-set SCALA_BIN_VER=@SCALA_BIN_VER@
-set SCALAJS_VER=@SCALAJS_VER@
-
-for /F "tokens=5" %%i in (' scala -version 2^>^&1 1^>nul ') do set SCALA_VER=%%i
-
-if NOT "%SCALA_VER:~0,4%" == "%SCALA_BIN_VER%" (
- echo "This bundle of Scala.js CLI is for %SCALA_BIN_VER%. Your scala version is %SCALA_VER%!" 1>&2
-) else (
- set PLUGIN=%~dp0\..\lib\scalajs-compiler_%SCALA_VER%-%SCALAJS_VER%.jar
- set JSLIB=%~dp0\..\lib\scalajs-library_%SCALA_BIN_VER%-%SCALAJS_VER%.jar
-
- scalac -classpath "%JSLIB%" "-Xplugin:%PLUGIN%" %*
-)
diff --git a/examples/scala-js/cli/src/main/resources/scalajsld b/examples/scala-js/cli/src/main/resources/scalajsld
deleted file mode 100755
index 7732e2a..0000000
--- a/examples/scala-js/cli/src/main/resources/scalajsld
+++ /dev/null
@@ -1,10 +0,0 @@
-#! /bin/sh
-
-SCALA_BIN_VER="@SCALA_BIN_VER@"
-SCALAJS_VER="@SCALAJS_VER@"
-
-BASE="$(dirname $0)/.."
-CLILIB="$BASE/lib/scalajs-cli-assembly_$SCALA_BIN_VER-$SCALAJS_VER.jar"
-JSLIB="$BASE/lib/scalajs-library_$SCALA_BIN_VER-$SCALAJS_VER.jar"
-
-scala -classpath "$CLILIB" scala.scalajs.cli.Scalajsld --stdlib "$JSLIB" "$@"
diff --git a/examples/scala-js/cli/src/main/resources/scalajsld.bat b/examples/scala-js/cli/src/main/resources/scalajsld.bat
deleted file mode 100644
index e915237..0000000
--- a/examples/scala-js/cli/src/main/resources/scalajsld.bat
+++ /dev/null
@@ -1,8 +0,0 @@
-@ECHO OFF
-set SCALA_BIN_VER=@SCALA_BIN_VER@
-set SCALAJS_VER=@SCALAJS_VER@
-
-set CLILIB="%~dp0\..\lib\scalajs-cli-assembly_%SCALA_BIN_VER%-%SCALAJS_VER%.jar"
-set JSLIB="%~dp0\..\lib\scalajs-library_%SCALA_BIN_VER%-%SCALAJS_VER%.jar"
-
-scala -classpath %CLILIB% scala.scalajs.cli.Scalajsld --stdlib %JSLIB% %*
diff --git a/examples/scala-js/cli/src/main/resources/scalajsp b/examples/scala-js/cli/src/main/resources/scalajsp
deleted file mode 100755
index e7a6e58..0000000
--- a/examples/scala-js/cli/src/main/resources/scalajsp
+++ /dev/null
@@ -1,9 +0,0 @@
-#! /bin/sh
-
-SCALA_BIN_VER="@SCALA_BIN_VER@"
-SCALAJS_VER="@SCALAJS_VER@"
-
-BASE="$(dirname $0)/.."
-CLILIB="$BASE/lib/scalajs-cli-assembly_$SCALA_BIN_VER-$SCALAJS_VER.jar"
-
-scala -classpath "$CLILIB" scala.scalajs.cli.Scalajsp "$@"
diff --git a/examples/scala-js/cli/src/main/resources/scalajsp.bat b/examples/scala-js/cli/src/main/resources/scalajsp.bat
deleted file mode 100644
index dd9745c..0000000
--- a/examples/scala-js/cli/src/main/resources/scalajsp.bat
+++ /dev/null
@@ -1,7 +0,0 @@
-@ECHO OFF
-set SCALA_BIN_VER=@SCALA_BIN_VER@
-set SCALAJS_VER=@SCALAJS_VER@
-
-set CLILIB="%~dp0\..\lib\scalajs-cli-assembly_%SCALA_BIN_VER%-%SCALAJS_VER%.jar"
-
-scala -classpath %CLILIB% scala.scalajs.cli.Scalajsp %*
diff --git a/examples/scala-js/cli/src/main/scala/scala/scalajs/cli/Scalajsld.scala b/examples/scala-js/cli/src/main/scala/scala/scalajs/cli/Scalajsld.scala
deleted file mode 100644
index 55e61af..0000000
--- a/examples/scala-js/cli/src/main/scala/scala/scalajs/cli/Scalajsld.scala
+++ /dev/null
@@ -1,180 +0,0 @@
-/* __ *\
-** ________ ___ / / ___ __ ____ Scala.js CLI **
-** / __/ __// _ | / / / _ | __ / // __/ (c) 2013-2014, LAMP/EPFL **
-** __\ \/ /__/ __ |/ /__/ __ |/_// /_\ \ http://scala-js.org/ **
-** /____/\___/_/ |_/____/_/ | |__/ /____/ **
-** |/____/ **
-\* */
-
-
-package scala.scalajs.cli
-
-import scala.scalajs.ir.ScalaJSVersions
-
-import scala.scalajs.tools.sem._
-import scala.scalajs.tools.io._
-import scala.scalajs.tools.logging._
-import scala.scalajs.tools.classpath._
-import scala.scalajs.tools.classpath.builder._
-
-import CheckedBehavior.Compliant
-
-import scala.scalajs.tools.optimizer.{
- ScalaJSOptimizer,
- ScalaJSClosureOptimizer,
- ParIncOptimizer
-}
-
-import scala.collection.immutable.Seq
-
-import java.io.File
-import java.net.URI
-
-object Scalajsld {
-
- case class Options(
- cp: Seq[File] = Seq.empty,
- output: File = null,
- jsoutput: Option[File] = None,
- semantics: Semantics = Semantics.Defaults,
- noOpt: Boolean = false,
- fullOpt: Boolean = false,
- prettyPrint: Boolean = false,
- sourceMap: Boolean = false,
- relativizeSourceMap: Option[URI] = None,
- checkIR: Boolean = false,
- stdLib: Option[File] = None,
- logLevel: Level = Level.Info)
-
- def main(args: Array[String]): Unit = {
- val parser = new scopt.OptionParser[Options]("scalajsld") {
- head("scalajsld", ScalaJSVersions.current)
- arg[File]("<value> ...")
- .unbounded()
- .action { (x, c) => c.copy(cp = c.cp :+ x) }
- .text("Entries of Scala.js classpath to link")
- opt[File]('o', "output")
- .valueName("<file>")
- .required()
- .action { (x, c) => c.copy(output = x) }
- .text("Output file of linker (required)")
- opt[File]("jsoutput")
- .valueName("<file>")
- .abbr("jo")
- .action { (x, c) => c.copy(jsoutput = Some(x)) }
- .text("Concatenate all JavaScript libary dependencies to this file")
- opt[Unit]('f', "fastOpt")
- .action { (_, c) => c.copy(noOpt = false, fullOpt = false) }
- .text("Optimize code (this is the default)")
- opt[Unit]('n', "noOpt")
- .action { (_, c) => c.copy(noOpt = true, fullOpt = false) }
- .text("Don't optimize code")
- opt[Unit]('u', "fullOpt")
- .action { (_, c) => c.copy(noOpt = false, fullOpt = true) }
- .text("Fully optimize code (uses Google Closure Compiler)")
- opt[Unit]('p', "prettyPrint")
- .action { (_, c) => c.copy(prettyPrint = true) }
- .text("Pretty print full opted code (meaningful with -u)")
- opt[Unit]('s', "sourceMap")
- .action { (_, c) => c.copy(sourceMap = true) }
- .text("Produce a source map for the produced code")
- opt[Unit]("compliantAsInstanceOfs")
- .action { (_, c) => c.copy(semantics =
- c.semantics.withAsInstanceOfs(Compliant))
- }
- .text("Use compliant asInstanceOfs")
- opt[Unit]('c', "checkIR")
- .action { (_, c) => c.copy(checkIR = true) }
- .text("Check IR before optimizing")
- opt[File]('r', "relativizeSourceMap")
- .valueName("<path>")
- .action { (x, c) => c.copy(relativizeSourceMap = Some(x.toURI)) }
- .text("Relativize source map with respect to given path (meaningful with -s)")
- opt[Unit]("noStdlib")
- .action { (_, c) => c.copy(stdLib = None) }
- .text("Don't automatcially include Scala.js standard library")
- opt[File]("stdlib")
- .valueName("<scala.js stdlib jar>")
- .hidden()
- .action { (x, c) => c.copy(stdLib = Some(x)) }
- .text("Location of Scala.js standard libarary. This is set by the " +
- "runner script and automatically prepended to the classpath. " +
- "Use -n to not include it.")
- opt[Unit]('d', "debug")
- .action { (_, c) => c.copy(logLevel = Level.Debug) }
- .text("Debug mode: Show full log")
- opt[Unit]('q', "quiet")
- .action { (_, c) => c.copy(logLevel = Level.Warn) }
- .text("Only show warnings & errors")
- opt[Unit]("really-quiet")
- .abbr("qq")
- .action { (_, c) => c.copy(logLevel = Level.Error) }
- .text("Only show errors")
- version("version")
- .abbr("v")
- .text("Show scalajsld version")
- help("help")
- .abbr("h")
- .text("prints this usage text")
-
- override def showUsageOnError = true
- }
-
- for (options <- parser.parse(args, Options())) {
- val cpFiles = options.stdLib.toList ++ options.cp
- // Load and resolve classpath
- val cp = PartialClasspathBuilder.build(cpFiles).resolve()
-
- // Write JS dependencies if requested
- for (jsout <- options.jsoutput)
- IO.concatFiles(WritableFileVirtualJSFile(jsout), cp.jsLibs.map(_.lib))
-
- // Link Scala.js code
- val outFile = WritableFileVirtualJSFile(options.output)
- if (options.fullOpt)
- fullOpt(cp, outFile, options)
- else
- fastOpt(cp, outFile, options)
- }
- }
-
- private def fullOpt(cp: IRClasspath,
- output: WritableVirtualJSFile, options: Options) = {
- import ScalaJSClosureOptimizer._
-
- val semantics = options.semantics.optimized
-
- new ScalaJSClosureOptimizer(semantics).optimizeCP(
- newScalaJSOptimizer(semantics),
- Inputs(ScalaJSOptimizer.Inputs(cp)),
- OutputConfig(
- output = output,
- wantSourceMap = options.sourceMap,
- relativizeSourceMapBase = options.relativizeSourceMap,
- checkIR = options.checkIR,
- prettyPrint = options.prettyPrint),
- newLogger(options))
- }
-
- private def fastOpt(cp: IRClasspath,
- output: WritableVirtualJSFile, options: Options) = {
- import ScalaJSOptimizer._
-
- newScalaJSOptimizer(options.semantics).optimizeCP(
- Inputs(cp),
- OutputConfig(
- output = output,
- wantSourceMap = options.sourceMap,
- checkIR = options.checkIR,
- disableOptimizer = options.noOpt,
- relativizeSourceMapBase = options.relativizeSourceMap),
- newLogger(options))
- }
-
- private def newLogger(options: Options) =
- new ScalaConsoleLogger(options.logLevel)
-
- private def newScalaJSOptimizer(semantics: Semantics) =
- new ScalaJSOptimizer(semantics, new ParIncOptimizer(_))
-
-}
diff --git a/examples/scala-js/cli/src/main/scala/scala/scalajs/cli/Scalajsp.scala b/examples/scala-js/cli/src/main/scala/scala/scalajs/cli/Scalajsp.scala
deleted file mode 100644
index 0d64b93..0000000
--- a/examples/scala-js/cli/src/main/scala/scala/scalajs/cli/Scalajsp.scala
+++ /dev/null
@@ -1,158 +0,0 @@
-/* __ *\
-** ________ ___ / / ___ __ ____ Scala.js CLI **
-** / __/ __// _ | / / / _ | __ / // __/ (c) 2013-2014, LAMP/EPFL **
-** __\ \/ /__/ __ |/ /__/ __ |/_// /_\ \ http://scala-js.org/ **
-** /____/\___/_/ |_/____/_/ | |__/ /____/ **
-** |/____/ **
-\* */
-
-
-package scala.scalajs.cli
-
-import scala.scalajs.ir
-import ir.ScalaJSVersions
-import ir.Trees.{Tree, ClassDef}
-import ir.Printers.{InfoPrinter, IRTreePrinter}
-
-import scala.scalajs.tools.sem.Semantics
-import scala.scalajs.tools.javascript
-import javascript.ScalaJSClassEmitter
-import javascript.Printers.JSTreePrinter
-
-import scala.scalajs.tools.io._
-import scala.collection.immutable.Seq
-
-import java.io.{Console => _, _}
-import java.util.zip.{ZipFile, ZipEntry}
-
-object Scalajsp {
-
- case class Options(
- infos: Boolean = false,
- desugar: Boolean = false,
- showReflProxy: Boolean = false,
- jar: Option[File] = None,
- fileNames: Seq[String] = Seq.empty)
-
- def main(args: Array[String]): Unit = {
- val parser = new scopt.OptionParser[Options]("scalajsp") {
- head("scalajsp", ScalaJSVersions.current)
- arg[String]("<file> ...")
- .unbounded()
- .action { (x, c) => c.copy(fileNames = c.fileNames :+ x) }
- .text("*.sjsir file to display content of")
- opt[File]('j', "jar")
- .valueName("<jar>")
- .action { (x, c) => c.copy(jar = Some(x)) }
- .text("Read *.sjsir file(s) from the given JAR.")
- opt[Unit]('d', "desugar")
- .action { (_, c) => c.copy(desugar = true) }
- .text("Desugar JS trees. This yields runnable JavaScript")
- opt[Unit]('i', "infos")
- .action { (_, c) => c.copy(infos = true) }
- .text("Show DCE infos instead of trees")
- opt[Unit]('p', "reflProxies")
- .action { (_, c) => c.copy(showReflProxy = true) }
- .text("Show reflective call proxies")
- opt[Unit]('s', "supported")
- .action { (_,_) => printSupported(); sys.exit() }
- .text("Show supported Scala.js IR versions")
- version("version")
- .abbr("v")
- .text("Show scalajsp version")
- help("help")
- .abbr("h")
- .text("prints this usage text")
-
- override def showUsageOnError = true
- }
-
- for {
- options <- parser.parse(args, Options())
- fileName <- options.fileNames
- } {
- val vfile = options.jar map { jar =>
- readFromJar(jar, fileName)
- } getOrElse {
- readFromFile(fileName)
- }
-
- displayFileContent(vfile, options)
- }
- }
-
- def printSupported(): Unit = {
- import ScalaJSVersions._
- println(s"Emitted Scala.js IR version is: $binaryEmitted")
- println("Supported Scala.js IR versions are")
- binarySupported.foreach(v => println(s"* $v"))
- }
-
- def displayFileContent(vfile: VirtualScalaJSIRFile, opts: Options): Unit = {
- if (opts.infos)
- new InfoPrinter(stdout).printClassInfo(vfile.info)
- else {
- val outTree = {
- if (opts.showReflProxy) vfile.tree
- else filterOutReflProxies(vfile.tree)
- }
-
- if (opts.desugar)
- new JSTreePrinter(stdout).printTopLevelTree(
- new ScalaJSClassEmitter(Semantics.Defaults).genClassDef(outTree))
- else
- new IRTreePrinter(stdout).printTopLevelTree(outTree)
- }
-
- stdout.flush()
- }
-
- private def fail(msg: String) = {
- Console.err.println(msg)
- sys.exit(1)
- }
-
- private def readFromFile(fileName: String) = {
- val file = new File(fileName)
-
- if (!file.exists)
- fail(s"No such file: $fileName")
- else if (!file.canRead)
- fail(s"Unable to read file: $fileName")
- else
- FileVirtualScalaJSIRFile(file)
- }
-
- private def readFromJar(jar: File, name: String) = {
- val jarFile =
- try { new ZipFile(jar) }
- catch { case _: FileNotFoundException => fail(s"No such JAR: $jar") }
- try {
- val entry = jarFile.getEntry(name)
- if (entry == null)
- fail(s"No such file in jar: $name")
- else {
- val name = jarFile.getName + "#" + entry.getName
- val content =
- IO.readInputStreamToByteArray(jarFile.getInputStream(entry))
- new MemVirtualSerializedScalaJSIRFile(name).withContent(content)
- }
- } finally {
- jarFile.close()
- }
- }
-
- private val stdout =
- new BufferedWriter(new OutputStreamWriter(Console.out, "UTF-8"))
-
- private def filterOutReflProxies(tree: ClassDef): ClassDef = {
- import ir.Trees._
- import ir.Definitions.isReflProxyName
- val newDefs = tree.defs.filter {
- case MethodDef(Ident(name, _), _, _, _) => !isReflProxyName(name)
- case _ => true
- }
- tree.copy(defs = newDefs)(tree.pos)
- }
-
-}