summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/build/four.xml428
-rw-r--r--src/build/old_sabbus.xml2012
-rw-r--r--src/jvm14-library/scala/BigDecimal.scala269
-rw-r--r--src/jvm14-library/scala/runtime/RichString.scala266
-rw-r--r--src/jvm14-library/scala/util/parsing/json/JSON.scala95
-rw-r--r--src/jvm14-library/scala/util/parsing/json/Parser.scala50
6 files changed, 0 insertions, 3120 deletions
diff --git a/src/build/four.xml b/src/build/four.xml
deleted file mode 100644
index ab2dd1003f..0000000000
--- a/src/build/four.xml
+++ /dev/null
@@ -1,428 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<project name="sabbus-four">
-
- <description>
- SuperSabbus extension for the Scala library and compiler targeted for the JVM 1.4. THIS FILE IS NOT STAND-ALONE AND SHOULD ONLY BE USED THROUGH ENTRY POINTS IN SUPERSABBUS.
- </description>
-
- <!-- TODO: Use a 1.4 Java standard library to compile against, instead of that of the JVM running the script. -->
- <!-- TODO: Use a 1.4 Java standard library to run partests. Add a bootclasspath option to partest to allow that. -->
-
-<!-- ===========================================================================
-PROPERTIES
-============================================================================ -->
-
- <property name="build-four.dir" value="${build.dir}/four"/>
- <property name="build-four-src.dir" value="${build.dir}/four-src"/>
- <property name="build-four-pack.dir" value="${build.dir}/four-pack"/>
- <property name="build-four-docs.dir" value="${build.dir}/four-docs"/>
-
-<!-- ===========================================================================
-JAVA 1.4 LIBRARY AND COMPILER BUILD (FOUR)
-============================================================================ -->
-
- <target name="four.start"/>
-
- <target name="four.src" depends="four.start">
- <!-- simple sync & copy overwrite is not very nice, because overwritten files
- will then have a new timestamp, and be recompiled -->
- <mkdir dir="${build-four-src.dir}"/>
- <copy todir="${build-four-src.dir}" overwrite="true">
- <fileset dir="${src.dir}/library">
- <and>
- <present present="srconly" targetdir="${src.dir}/jvm14-library"/>
- <different targetdir="${build-four-src.dir}" ignoreFileTimes="true"/>
- </and>
- </fileset>
- <fileset dir="${src.dir}/jvm14-library">
- <different targetdir="${build-four-src.dir}" ignoreFileTimes="true"/>
- </fileset>
- </copy>
- <delete verbose="true">
- <difference>
- <fileset dir="${build-four-src.dir}"/>
- <union>
- <fileset dir="${build-four-src.dir}">
- <present targetdir="${src.dir}/jvm14-library"/>
- </fileset>
- <fileset dir="${build-four-src.dir}">
- <present targetdir="${src.dir}/library"/>
- </fileset>
- </union>
- </difference>
- </delete>
- </target>
-
- <target name="four.lib" depends="four.src">
- <stopwatch name="four.lib.timer"/>
- <mkdir dir="${build-four.dir}/classes/library"/>
- <javac
- srcdir="${build-four-src.dir}"
- destdir="${build-four.dir}/classes/library"
- classpath="${build-four.dir}/classes/library"
- includes="**/*.java"
- target="1.4" source="1.4"/>
- <javac
- srcdir="${src.dir}/actors"
- destdir="${build-four.dir}/classes/library"
- classpath="${build-four.dir}/classes/library"
- includes="**/*.java"
- target="1.4" source="1.4"/>
- <scalac
- srcdir="${build-four-src.dir}"
- destdir="${build-four.dir}/classes/library"
- classpath="${build-four.dir}/classes/library"
- sourcepath="${build-four-src.dir}"
- target="jvm-1.4">
- <include name="scala/Predef.scala"/>
- </scalac>
- <scalac
- srcdir="${build-four-src.dir}"
- destdir="${build-four.dir}/classes/library"
- classpath="${build-four.dir}/classes/library"
- target="jvm-1.4">
- <include name="**/*.scala"/>
- <exclude name="scala/Predef.scala"/>
- </scalac>
- <scalac
- srcdir="${src.dir}/actors"
- destdir="${build-four.dir}/classes/library"
- classpath="${build-four.dir}/classes/library"
- target="jvm-1.4">
- <include name="**/*.scala"/>
- </scalac>
- <scalac
- srcdir="${src.dir}/dbc"
- destdir="${build-four.dir}/classes/library"
- classpath="${build-four.dir}/classes/library"
- target="jvm-1.4">
- <include name="**/*.scala"/>
- </scalac>
- <propertyfile file="${build-four.dir}/classes/library/library.properties">
- <entry key="version.number" value="${version.number}"/>
- <entry key="copyright.string" value="${copyright.string}"/>
- </propertyfile>
- <copy todir="${build-four.dir}/classes/library">
- <fileset dir="${build-four-src.dir}">
- <include name="**/*.tmpl"/>
- <include name="**/*.xml"/>
- <include name="**/*.js"/>
- <include name="**/*.css"/>
- </fileset>
- </copy>
- <stopwatch name="four.lib.timer" action="total"/>
- </target>
-
- <target name="four.comp" depends="four.lib">
- <stopwatch name="four.comp.timer"/>
- <mkdir dir="${build-four.dir}/classes/compiler"/>
- <scalac
- srcdir="${src.dir}/compiler"
- destdir="${build-four.dir}/classes/compiler"
- target="jvm-1.4">
- <include name="**/*.scala"/>
- <classpath>
- <pathelement location="${build-four.dir}/classes/library"/>
- <pathelement location="${build-four.dir}/classes/compiler"/>
- <pathelement location="${fjbg.jar}"/>
- <pathelement location="${msil.jar}"/>
- <pathelement location="${jline.jar}"/>
- <pathelement location="${ant.jar}"/>
- </classpath>
- </scalac>
- <propertyfile file="${build-four.dir}/classes/compiler/compiler.properties">
- <entry key="version.number" value="${version.number}"/>
- <entry key="copyright.string" value="${copyright.string}"/>
- </propertyfile>
- <copy todir="${build-four.dir}/classes/compiler">
- <fileset dir="${src.dir}/compiler">
- <include name="**/*.tmpl"/>
- <include name="**/*.xml"/>
- <include name="**/*.js"/>
- <include name="**/*.css"/>
- </fileset>
- </copy>
- <stopwatch name="four.comp.timer" action="total"/>
- </target>
-
- <target name="four.partest" depends="four.comp">
- <stopwatch name="four.partest.timer"/>
- <mkdir dir="${build-four.dir}/classes/partest"/>
- <javac
- srcdir="${src.dir}/partest"
- destdir="${build-four.dir}/classes/partest"
- target="1.4" source="1.4">
- <classpath>
- <pathelement location="${build-four.dir}/classes/library"/>
- <pathelement location="${build-four.dir}/classes/compiler"/>
- <pathelement location="${build-four.dir}/classes/partest"/>
- </classpath>
- <include name="**/*.java"/>
- </javac>
- <scalac
- srcdir="${src.dir}/partest"
- destdir="${build-four.dir}/classes/partest"
- target="jvm-1.4">
- <include name="**/*.scala"/>
- <classpath>
- <pathelement location="${build-four.dir}/classes/library"/>
- <pathelement location="${build-four.dir}/classes/compiler"/>
- <pathelement location="${build-four.dir}/classes/partest"/>
- <pathelement location="${ant.jar}"/>
- </classpath>
- </scalac>
- <copy todir="${build-four.dir}/classes/partest">
- <fileset dir="${src.dir}/partest">
- <include name="**/*.xml"/>
- </fileset>
- </copy>
- <stopwatch name="four.partest.timer" action="total"/>
- </target>
-
- <target name="four.done" depends="four.partest"/>
-
- <target name="four.clean" depends="four-pack.clean">
- <delete dir="${build-four.dir}" includeemptydirs="yes" quiet="yes" failonerror="no"/>
- <delete dir="${build-four-src.dir}" includeemptydirs="yes" quiet="yes" failonerror="no"/>
- </target>
-
-<!-- ===========================================================================
-PACKED FOUR BUILD (FOUR-PACK)
-============================================================================ -->
-
- <target name="four-pack.start" depends="four.done"/>
-
- <target name="four-pack.lib" depends="four-pack.start">
- <mkdir dir="${build-four-pack.dir}/lib"/>
- <jar destfile="${build-four-pack.dir}/lib/scala-library.jar">
- <fileset dir="${build-four.dir}/classes/library">
- <exclude name="scala/dbc/**"/>
- </fileset>
- </jar>
- <jar destfile="${build-four-pack.dir}/lib/scala-dbc.jar">
- <fileset dir="${build-four.dir}/classes/library">
- <include name="scala/dbc/**"/>
- </fileset>
- </jar>
- </target>
-
- <target name="four-pack.comp" depends="four-pack.lib">
- <mkdir dir="${build-four-pack.dir}/lib"/>
- <jar destfile="${build-four-pack.dir}/lib/scala-compiler.jar">
- <fileset dir="${build-four.dir}/classes/compiler"/>
- <zipfileset src="${fjbg.jar}"/>
- <zipfileset src="${msil.jar}"/>
- </jar>
- </target>
-
- <target name="four-pack.partest" depends="four-pack.comp">
- <mkdir dir="${build-four-pack.dir}/lib"/>
- <jar destfile="${build-four-pack.dir}/lib/scala-partest.jar">
- <fileset dir="${build-four.dir}/classes/partest"/>
- </jar>
- </target>
-
- <target name="four-pack.bin" depends="four-pack.partest">
- <taskdef name="four-pack-bin" classname="scala.tools.ant.ScalaTool">
- <classpath>
- <pathelement location="${build-four-pack.dir}/lib/scala-library.jar"/>
- <pathelement location="${build-four-pack.dir}/lib/scala-compiler.jar"/>
- </classpath>
- </taskdef>
- <mkdir dir="${build-four-pack.dir}/bin"/>
- <four-pack-bin
- file="${build-four-pack.dir}/bin/scala"
- class="scala.tools.nsc.MainGenericRunner"
- javaFlags="${java.flags}"/>
- <four-pack-bin
- file="${build-four-pack.dir}/bin/scalac"
- class="scala.tools.nsc.Main"
- javaFlags="${java.flags}"/>
- <four-pack-bin
- file="${build-four-pack.dir}/bin/scaladoc"
- class="scala.tools.nsc.ScalaDoc"
- javaFlags="${java.flags}"/>
- <four-pack-bin
- file="${build-four-pack.dir}/bin/fsc"
- class="scala.tools.nsc.CompileClient"
- javaFlags="${java.flags}"/>
- <chmod perm="ugo+rx" file="${build-four-pack.dir}/bin/scala"/>
- <chmod perm="ugo+rx" file="${build-four-pack.dir}/bin/scalac"/>
- <chmod perm="ugo+rx" file="${build-four-pack.dir}/bin/scaladoc"/>
- <chmod perm="ugo+rx" file="${build-four-pack.dir}/bin/fsc"/>
- </target>
-
- <target name="four-pack.done" depends="four-pack.bin"/>
-
- <target name="four-pack.clean">
- <delete dir="${build-four-pack.dir}" includeemptydirs="yes" quiet="yes" failonerror="no"/>
- </target>
-
-<!-- ===========================================================================
-DOCUMENTATION
-============================================================================ -->
-
- <target name="four-docs.start" depends="four-pack.done"/>
-
- <target name="four-docs.lib" depends="four-docs.start">
- <stopwatch name="four-docs.lib.timer"/>
- <mkdir dir="${build-four-docs.dir}/library"/>
- <scaladoc
- destdir="${build-four-docs.dir}/library"
- windowtitle="Scala Library for JVM 1.4"
- doctitle="Scala ${version.number} API"
- classpathref="pack.classpath">
- <src>
- <files includes="${src.dir}/dbc"/>
- <files includes="${src.dir}/actors"/>
- <files includes="${build-four-src.dir}"/>
- </src>
- <include name="**/*.scala"/>
- </scaladoc>
- <stopwatch name="four-docs.lib.timer" action="total"/>
- </target>
-
- <target name="four-docs.done" depends="four-docs.lib"/>
-
- <target name="four-docs.clean">
- <delete dir="${build-four-docs.dir}" includeemptydirs="yes" quiet="yes" failonerror="no"/>
- </target>
-
-<!-- ===========================================================================
-TEST SUITE WHEN RUN ON JVM 1.5
-================================================================================
-This tests how a compiler, library and tests that where targeted for JVM 1.4
-work on a JVM 1.5.
-============================================================================ -->
-
- <target name="four-test.suite" depends="four-pack.done">
- <partest showlog="yes" erroronfailed="yes" scalacopts="-target:jvm-1.4"
- javacmd="${java.home}/bin/java -Xmx1024M" javaccmd="${javac.cmd}">
- <classpath>
- <pathelement location="${build-four-pack.dir}/lib/scala-library.jar"/>
- <pathelement location="${build-four-pack.dir}/lib/scala-compiler.jar"/>
- <fileset dir="${test.dir}/files/lib" includes="*.jar"/>
- </classpath>
- <postests dir="${test.dir}/files/pos" includes="*.scala"/>
- <negtests dir="${test.dir}/files/neg" includes="*.scala"/>
- <runtests dir="${test.dir}/files">
- <include name="run/**/*.scala"/>
- </runtests>
- <jvmtests dir="${test.dir}/files/jvm" includes="*.scala"/>
- <residenttests dir="${test.dir}/files/res" includes="*.res"/>
- </partest>
- </target>
-
- <target name="four-test.done" depends="four-test.suite"/>
-
-<!-- ===========================================================================
-TEST SUITE WHEN RUN ON JVM 1.4 (standalone)
-================================================================================
-This tests how a compiler, library and tests that where targeted for JVM 1.4
-work on a JVM 1.4.
-============================================================================ -->
-
- <target name="fourfour-test.start">
- <echo level="info" message="Java version is ${java.vm.name} ${java.version}"/>
- <path id="four-pack.classpath">
- <pathelement location="${build-four-pack.dir}/lib/scala-library.jar"/>
- <pathelement location="${build-four-pack.dir}/lib/scala-compiler.jar"/>
- <pathelement location="${build-four-pack.dir}/lib/scala-partest.jar"/>
- <pathelement location="${ant.jar}"/>
- </path>
- <taskdef resource="scala/tools/partest/antlib.xml" classpathref="four-pack.classpath"/>
- </target>
-
- <target name="fourfour-test.suite" depends="fourfour-test.start">
- <partest showlog="yes" erroronfailed="yes" scalacopts="-target:jvm-1.4"
- javacmd="${java.home}/bin/java -Xmx1024M" javaccmd="${javac.cmd}">
- <classpath>
- <pathelement location="${build-four-pack.dir}/lib/scala-library.jar"/>
- <pathelement location="${build-four-pack.dir}/lib/scala-compiler.jar"/>
- <fileset dir="${test.dir}/files/lib" includes="*.jar"/>
- </classpath>
- <postests dir="${test.dir}/files/pos" includes="*.scala"/>
- <negtests dir="${test.dir}/files/neg" includes="*.scala"/>
- <runtests dir="${test.dir}/files">
- <include name="run/**/*.scala"/>
- </runtests>
- <jvmtests dir="${test.dir}/files/jvm" includes="*.scala"/>
- <residenttests dir="${test.dir}/files/res" includes="*.res"/>
- </partest>
- </target>
-
- <target name="fourfour-test.done" depends="fourfour-test.suite"/>
-
-<!-- ===========================================================================
-DISTRIBUTION
-============================================================================ -->
-
- <target name="four-dist.start" depends="four-pack.done, four-docs.done">
- <property name="four-dist.dir" value="${dists.dir}/scala-jvm4-${version.number}"/>
- </target>
-
- <target name="four-dist.base" depends="four-dist.start">
- <mkdir dir="${four-dist.dir}/lib"/>
- <copy toDir="${four-dist.dir}/lib">
- <fileset dir="${build-four-pack.dir}/lib"/>
- </copy>
- <mkdir dir="${four-dist.dir}/bin"/>
- <copy toDir="${four-dist.dir}/bin">
- <fileset dir="${build-four-pack.dir}/bin"/>
- </copy>
- <chmod perm="ugo+rx" file="${four-dist.dir}/bin/scala"/>
- <chmod perm="ugo+rx" file="${four-dist.dir}/bin/scalac"/>
- <chmod perm="ugo+rx" file="${four-dist.dir}/bin/scaladoc"/>
- <chmod perm="ugo+rx" file="${four-dist.dir}/bin/fsc"/>
- </target>
-
- <target name="four-dist.doc" depends="four-dist.base">
- <mkdir dir="${four-dist.dir}/doc/api"/>
- <copy toDir="${four-dist.dir}/doc/api">
- <fileset dir="${build-four-docs.dir}/library"/>
- </copy>
- </target>
-
- <target name="four-dist.src" depends="four-dist.doc">
- <mkdir dir="${four-dist.dir}/src"/>
- <jar destfile="${four-dist.dir}/src/scala-library-src.jar">
- <fileset dir="${build-four-src.dir}"/>
- <fileset dir="${src.dir}/actors"/>
- </jar>
- <jar destfile="${four-dist.dir}/src/scala-dbc-src.jar">
- <fileset dir="${src.dir}/dbc"/>
- </jar>
- <jar destfile="${four-dist.dir}/src/scala-compiler-src.jar">
- <fileset dir="${src.dir}/compiler"/>
- </jar>
- </target>
-
- <target name="four-dist.latest" depends="four-dist.src" unless="os.win">
- <symlink link="${dists.dir}/latest-jvm4" resource="${four-dist.dir}" overwrite="yes"/>
- </target>
-
- <target name="four-dist.done" depends="four-dist.latest"/>
-
-<!-- ===========================================================================
-TEST AND DISTRIBUTION BUNDLE (ALL)
-============================================================================ -->
-
- <target name="four-all.done" depends="four-dist.done, four-test.done"/>
-
- <target name="four-all.clean" depends="four-docs.clean, four.clean"/>
-
-<!-- ===========================================================================
-MISCELLANEOUS
-============================================================================ -->
-
- <target name="graph.init">
- <echo message="${basedir}/lib/ant/vizant.jar"/>
- <taskdef name="vizant" classname="vizant.Vizant" classpath="${basedir}/../../lib/ant/vizant.jar"/>
- </target>
-
- <target name="graph.four" depends="graph.init">
- <vizant antfile="${ant.file}" outfile="${ant.project.name}.dot"/>
- </target>
-
-</project>
diff --git a/src/build/old_sabbus.xml b/src/build/old_sabbus.xml
deleted file mode 100644
index 7b1b73fb2a..0000000000
--- a/src/build/old_sabbus.xml
+++ /dev/null
@@ -1,2012 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-
-<project name="scala-core" default="build">
-
- <description>
- I am SABBUS for Scala core, the build system for the Scala compiler and core
- library. Please check the 'docs/README' file for more information about me.
- </description>
-
- <echo level="info" message="Running SABBUS for ${ant.project.name}..."/>
-
-<!-- ===========================================================================
-PROPERTIES
-============================================================================ -->
-
- <property environment="env"/>
-
- <!-- Prevents system classpath from being used -->
- <property name="build.sysclasspath" value="ignore"/>
-
- <!-- Defines the repository layout -->
- <property name="docs.dir" value="${basedir}/docs"/>
- <property name="lib.dir" value="${basedir}/lib"/>
- <property name="src.dir" value="${basedir}/src"/>
- <property name="test.dir" value="${basedir}/test"/>
-
- <!-- Loads custom properties definitions -->
- <property name="properties.file" value="${basedir}/build.properties"/>
- <property file="${properties.file}"/>
-
- <!-- Defines the product being built -->
- <property name="vendor.name" value="LAMP/EPFL"/>
- <property name="copyright.string" value="(c) 2002-2009 ${vendor.name}"/>
- <property name="java.flags" value="-Xmx768M -Xms16M"/>
- <property name="number.file" value="${basedir}/build.number"/>
-
- <!-- Configuring how the compiler is run -->
- <property name="nsc.log-files" value="no"/>
- <property name="nsc.excludes.file" value="${basedir}/build.excludes"/>
- <property name="nsc.params" value=""/>
- <condition property="nsc.target" value="jvm-1.4">
- <contains string="${ant.java.version}" substring="1.4"/>
- </condition>
- <property name="nsc.target" value="jvm-1.5"/>
-
- <!-- Sets location of pre-compiled libraries -->
- <property name="lib.starr.jar" value="${lib.dir}/scala-library.jar"/>
- <property name="comp.starr.jar" value="${lib.dir}/scala-compiler.jar"/>
- <property name="fjbg.jar" value="${lib.dir}/fjbg.jar"/>
- <property name="msil.jar" value="${lib.dir}/msil.jar"/>
- <property name="ant.jar" value="${ant.home}/lib/ant.jar"/>
- <property name="jline.jar" value="${lib.dir}/jline.jar"/>
- <property name="ant-contrib.jar" value="${lib.dir}/ant/ant-contrib.jar"/>
-
- <!-- Sets location of build folders -->
- <property name="build.dir" value="${basedir}/build"/>
- <property name="locker.dir" value="${build.dir}/locker"/>
- <property name="quick.dir" value="${build.dir}/quick"/>
- <property name="strap.dir" value="${build.dir}/strap"/>
- <property name="optimised.dir" value="${build.dir}/optimised"/>
- <property name="api-lib.dir" value="${build.dir}/api-library"/>
- <property name="api-comp.dir" value="${build.dir}/api-compiler"/>
- <property name="tooldocs.dir" value="${build.dir}/tooldocs"/>
- <property name="examples.dir" value="${build.dir}/examples"/>
-<!-- <property name="cldc.dir" value="${build.dir}/cldc"/> -->
- <property name="android.dir" value="${build.dir}/android"/>
- <property name="msil.dir" value="${build.dir}/msil"/>
- <property name="mono.dir" value="${src.dir}/mono"/>
-
- <!-- Sets location and structure of the distribution -->
- <property name="dist.dir" value="${basedir}/dists"/>
- <property name="lib.jar.name" value="scala-library.jar"/>
- <property name="dbc.jar.name" value="scala-dbc.jar"/>
- <property name="comp.jar.name" value="scala-compiler.jar"/>
- <property name="partest.jar.name" value="scala-partest.jar"/>
- <property name="jline.jar.name" value="jline.jar"/>
- <property name="libsrc.jar.name" value="scala-library-src.jar"/>
- <property name="dbcsrc.jar.name" value="scala-dbc-src.jar"/>
- <property name="parsrc.jar.name" value="scala-partest-src.jar"/>
- <property name="compsrc.jar.name" value="scala-compiler-src.jar"/>
- <property name="scala.exec.name" value="scala"/>
- <property name="scalac.exec.name" value="scalac"/>
- <property name="scaladoc.exec.name" value="scaladoc"/>
- <property name="fsc.exec.name" value="fsc"/>
- <property name="comp.prop.name" value="compiler.properties"/>
- <property name="lib.prop.name" value="library.properties"/>
- <property name="par.prop.name" value="partest.properties"/>
-
- <!-- if available, faster stability checking -->
- <property name="stability.tool" value="/home/linuxsoft/apps/stability/stability"/>
-
-<!-- ===========================================================================
-ANT INITIALISATION
-============================================================================ -->
-
- <target name="ant-init">
- <!-- Making sure lib/ contains everything that is needed -->
- <fail message="A required library is missing in 'lib/'. The README file describes what should be there.">
- <condition><not><and>
- <available file="${lib.starr.jar}"/>
- <available file="${comp.starr.jar}"/>
- <available file="${fjbg.jar}"/>
- <available file="${msil.jar}"/>
- <available file="${ant-contrib.jar}"/>
- </and></not></condition>
- </fail>
- <!-- Setting-up Ant contrib tasks -->
- <taskdef resource="net/sf/antcontrib/antlib.xml"
- classpath="${ant-contrib.jar}"/>
- <fail message="External library ${ant-contrib.jar} requires the optional Ant tasks to be installed">
- <condition><not><and>
- <available file="${ant.home}/lib/ant-nodeps.jar"/>
- </and></not></condition>
- </fail>
- </target>
-
-<!-- ===========================================================================
-INITIALISATION
-============================================================================ -->
-
- <target name="init" depends="ant-init" unless="init.avail">
- <!-- Making sure enough memory is available -->
- <propertyregex
- property="memory.set" input="${env.ANT_OPTS}" select="\1"
- regexp="-Xmx([1-9][0-9]{3,}|[6-9][0-9]{2}|5[2-9][0-9]|51[2-9])(M|m)"/>
- <fail
- unless="memory.set"
- message="SABBUS requires additional memory. Please set the 'ANT_OPTS' environment property to '-Xmx512M' or more."/>
- <propertyregex
- property="memory.info" input="${env.ANT_OPTS}" defaultValue=""
- select=" (raise to 600 MB for performance)"
- regexp="-Xmx([1-5][0-9]{2})(M|m)"/>
- <!-- This is the start time for the distribution -->
- <stopwatch name="timer.dist"/>
- <tstamp prefix="time">
- <format property="human" pattern="EEEE, d MMMM yyyy, HH:mm:ss (zz)"/>
- <format property="short" pattern="yyyyMMddHHmmss"/>
- </tstamp>
- <!-- Finding out what system architecture is being used -->
- <condition property="os.win"><os family="windows"/></condition>
- <if><isset property="os.win"/><then>
- <exec
- executable="cygpath" vmlauncher="no"
- errorproperty="cygpath.err" outputproperty="cygpath.out">
- <arg value="--windir"/>
- </exec>
- <condition property="os.cygwin">
- <equals arg1="${cygpath.err}" arg2=""/>
- </condition>
- </then></if>
- <condition property="os.unix"><or>
- <os family="unix"/>
- <os family="mac"/>
- <isset property="os.cygwin"/>
- </or></condition>
- <if><isset property="os.cygwin"/>
- <then><property name="os.type" value="Cygwin"/></then>
- <elseif><isset property="os.win"/>
- <then><property name="os.type" value="Windows"/></then>
- </elseif>
- <elseif><isset property="os.unix"/>
- <then><property name="os.type" value="UNIX"/></then>
- </elseif>
- <else><fail>System environment could not be determined</fail></else>
- </if>
- <!-- Setting flag for Java versions 1.4.x -->
- <condition property="java14">
- <contains string="${java.version}" substring="1.4"/>
- </condition>
- <!-- Finding out SVN revision -->
- <exec
- executable="svn" vmlauncher="no"
- errorproperty="svn.err" outputproperty="svn.out">
- <arg line=" info ${basedir}"/>
- </exec>
- <propertyregex
- property="svn.number" input="${svn.out}" select="\1"
- regexp="Revision: ([0-9]+)"
- defaultValue="x"/>
- <property name="init.avail" value="yes"/>
- <!-- Printing out some information about what environment I am running in -->
- <echo level="info"
- message="OS: ${os.type} (${os.name} ${os.arch} ${os.version});"/>
- <echo level="info"
- message="Java: ${java.vm.name} ${java.vm.version} ('${java.home}');"/>
- <echo level="info"
- message="Memory: ${memory.set} MB${memory.info};"/>
- <echo level="info"
- message="Ant: ${ant.version}."/>
- </target>
-
-<!-- ===========================================================================
-SETUP
-============================================================================ -->
-
- <target name="setup.weave">
- <!-- Sets location of RetroWeaver installation -->
- <condition property="retroweaver.home" value="${unix.retroweaver.home}">
- <and><os family="unix"/><isset property="unix.retroweaver.home"/></and>
- </condition>
- <condition property="retroweaver.home" value="${win.retroweaver.home}">
- <and><os family="windows"/><isset property="win.retroweaver.home"/></and>
- </condition>
- <property name="retroweaver.home" value="${env.RETROWEAVER_HOME}"/>
-
- <fail message="Set property 'retroweaver.home' to a valid RetroWeaver installation">
- <condition><not><and>
- <available file="${retroweaver.home}/lib" type="dir"/>
- <available file="${retroweaver.home}/release" type="dir"/>
- </and></not></condition>
- </fail>
- <taskdef name="retroweaver" classname="net.sourceforge.retroweaver.ant.RetroWeaverTask">
- <classpath>
- <fileset dir="${retroweaver.home}/lib" includes="**/*.jar"/>
- <fileset dir="${retroweaver.home}/release" includes="**/*-all-*jar"/>
- </classpath>
- </taskdef>
- <retroweaver
- inputjar="${lib.starr.jar}"
- outputjar="${lib.starr14.jar}"
- />
- <retroweaver
- inputjar="${comp.starr.jar}"
- outputjar="${comp.starr14.jar}"
- />
- </target>
-
- <target name="setup" depends="init">
- <!-- Creating class-pathes -->
- <if>
- <contains string="${java.version}" substring="1.4"/>
- <then>
- <mkdir dir="${build.dir}/starr"/>
- <property name="lib.starr14.jar" value="${build.dir}/starr/scala-library-14.jar"/>
- <property name="comp.starr14.jar" value="${build.dir}/starr/scala-compiler-14.jar"/>
- <antcall target="setup.weave">
- <param name="lib.starr14.jar" value="${lib.starr14.jar}"/>
- <param name="comp.starr14.jar" value="${comp.starr14.jar}"/>
- </antcall>
- <path id="starr.classpath">
- <pathelement location="${lib.starr14.jar}"/>
- <pathelement location="${comp.starr14.jar}"/>
- <pathelement location="${fjbg.jar}"/>
- <pathelement location="${msil.jar}"/>
- <pathelement location="${ant.jar}"/>
- <pathelement location="${jline.jar}"/>
- </path>
- </then>
- <else>
- <path id="starr.classpath">
- <pathelement location="${lib.starr.jar}"/>
- <pathelement location="${comp.starr.jar}"/>
- <pathelement location="${fjbg.jar}"/>
- <pathelement location="${msil.jar}"/>
- <pathelement location="${ant.jar}"/>
- <pathelement location="${jline.jar}"/>
- </path>
- </else>
- </if>
- <!-- Creating boot-level tasks -->
- <taskdef
- name="starr"
- classname="scala.tools.ant.Scalac"
- classpathref="starr.classpath"/>
- <taskdef
- name="starrtool"
- classname="scala.tools.ant.ScalaTool"
- classpathref="starr.classpath" />
- <!-- Removing any outdated stuff -->
- <if>
- <and>
- <available file="${locker.dir}/complete"/>
- <not><uptodate targetfile="${locker.dir}/complete">
- <srcfiles dir="${lib.dir}" includes="scala-*.jar"/>
- </uptodate></not>
- </and>
- <then>
- <echo level="warning"
- message="STARR updated: LOCKER is obsolete and will be rebuilt."/>
- <runtarget target="clean.build"/>
- </then>
- </if>
- <!-- Finding out what is available -->
- <available property="excludes.avail" file="${nsc.excludes.file}"/>
- <condition property="locker.avail">
- <available file="${locker.dir}/complete"/>
- </condition>
- <!-- Generating version number -->
- <property file="${number.file}"/>
- <property
- name="version.number"
- value="${version.major}.${version.minor}.${version.patch}.r${svn.number}-b${time.short}"/>
- <!-- And print-out what we are building -->
- <echo level="info" message="Build number is '${version.number}'"/>
- <echo level="info" message="Built ${time.human} from SVN revision ${svn.number}"/>
- </target>
-
- <target name="setup.locker" depends="setup, build.locker">
- <path id="locker.classpath">
- <pathelement location="${locker.dir}/lib/library"/>
- <pathelement location="${locker.dir}/lib/compiler"/>
- <pathelement location="${fjbg.jar}"/>
- <pathelement location="${msil.jar}"/>
- </path>
- <taskdef
- name="locker"
- classname="scala.tools.ant.Scalac"
- classpathref="locker.classpath"/>
- </target>
-
- <target name="setup.quick" depends="setup, build">
- <path id="quick.classpath">
- <pathelement location="${quick.dir}/lib/library"/>
- <pathelement location="${quick.dir}/lib/compiler"/>
- <pathelement location="${fjbg.jar}"/>
- <pathelement location="${msil.jar}"/>
- </path>
- <taskdef
- name="quick" classname="scala.tools.ant.Scalac"
- classpathref="quick.classpath"/>
- <taskdef
- name="quicksbaz" classname="scala.tools.ant.ScalaBazaar"
- classpathref="quick.classpath"/>
- <taskdef
- name="quickdoc" classname="scala.tools.ant.Scaladoc"
- classpathref="quick.classpath"/>
- </target>
-
-<!-- ===========================================================================
-BUILD SUPPORT MACROS
-============================================================================ -->
-
- <macrodef name="build.support">
- <attribute name="build.dir"/>
- <sequential>
- <copy todir="@{build.dir}/lib/library">
- <fileset dir="${src.dir}/library">
- <include name="**/*.tmpl"/>
- <include name="**/*.xml"/>
- <include name="**/*.js"/>
- <include name="**/*.css"/>
- </fileset>
- </copy>
- <copy todir="@{build.dir}/lib/compiler">
- <fileset dir="${src.dir}/compiler">
- <include name="**/*.tmpl"/>
- <include name="**/*.xml"/>
- <include name="**/*.js"/>
- <include name="**/*.css"/>
- </fileset>
- </copy>
- </sequential>
- </macrodef>
-
- <macrodef name="build.links">
- <attribute name="build.dir"/>
- <sequential>
- <if><not><available file="@{build.dir}/lib/fjbg.jar"/></not><then>
- <if><isset property="os.win"/><then>
- <copy file="${fjbg.jar}" tofile="@{build.dir}/lib/fjbg.jar"/>
- </then><else>
- <symlink
- link="@{build.dir}/lib/fjbg.jar"
- resource="${fjbg.jar}" overwrite="yes" failonerror="no"/>
- </else></if>
- </then></if>
- <if><not><available file="@{build.dir}/lib/msil.jar"/></not><then>
- <if><isset property="os.win"/><then>
- <copy file="${msil.jar}" tofile="@{build.dir}/lib/msil.jar"/>
- </then><else>
- <symlink
- link="@{build.dir}/lib/msil.jar"
- resource="${msil.jar}" overwrite="yes" failonerror="no"/>
- </else></if>
- </then></if>
- <if><not><available file="@{build.dir}/lib/jline.jar"/></not><then>
- <if><isset property="os.win"/><then>
- <copy file="${jline.jar}" tofile="@{build.dir}/lib/jline.jar"/>
- </then><else>
- <symlink
- link="@{build.dir}/lib/jline.jar"
- resource="${jline.jar}" overwrite="yes" failonerror="no"/>
- </else></if>
- </then></if>
- </sequential>
- </macrodef>
-
-<!-- ===========================================================================
-BUILD LOCAL REFERENCE (LOCKER) LAYER
-============================================================================ -->
-
- <target name="newlocker"
- depends="clean.unfreeze, build.locker"
- description="Rebuilds LOCKER from the current sources"/>
-
- <target name="build.locker" depends="setup" unless="locker.avail">
- <property name="built.locker" value="yes"/>
- <stopwatch name="timer.locker"/>
- <!-- Build library -->
- <if><and>
- <isset property="os.unix"/>
- <isset property="build.resource"/></and>
- <then>
- <symlink
- link="${build.dir}"
- resource="${build.resource}" overwrite="yes" failonerror="no"/>
- <touch file="${build.dir}/is_symlink" verbose="no"/>
- </then></if>
- <mkdir dir="${locker.dir}/lib/library"/>
- <javac
- srcdir="${src.dir}/library"
- destdir="${locker.dir}/lib/library"
- source="1.4" target="1.4" deprecation="yes"
- classpath="${locker.dir}/lib/library"
- includes="**/*.java"/>
- <starr
- srcdir="${src.dir}/library"
- destdir="${locker.dir}/lib/library"
- addparams="${nsc.params}" target="${nsc.target}"
- deprecation="yes" unchecked="yes"
- classpath="${locker.dir}/lib/library"
- includes="scala/Predef.scala"/>
- <starr
- srcdir="${src.dir}/library"
- destdir="${locker.dir}/lib/library"
- addparams="${nsc.params}" target="${nsc.target}"
- deprecation="yes" unchecked="yes"
- classpath="${locker.dir}/lib/library">
- <include name="**/*.scala"/>
- <exclude name="scala/Predef.scala"/>
- <exclude name="scala/dbc/**"/>
- <exclude name="scala/actors/**"/>
- <excludesfile name="${nsc.excludes.file}" if="excludes.avail"/>
- </starr>
- <echo
- file="${locker.dir}/lib/library/${lib.prop.name}"
- message="version.number=${version.number}${line.separator}"
- append="false"
- />
- <echo
- file="${locker.dir}/lib/library/${lib.prop.name}"
- message="copyright.string=${copyright.string}${line.separator}"
- append="true"
- />
- <!-- Build compiler -->
- <mkdir dir="${locker.dir}/lib/compiler"/>
- <starr
- srcdir="${src.dir}/compiler"
- destdir="${locker.dir}/lib/compiler"
- addparams="${nsc.params}" target="${nsc.target}"
- deprecation="yes" unchecked="yes">
- <classpath>
- <pathelement location="${locker.dir}/lib/library"/>
- <pathelement location="${locker.dir}/lib/compiler"/>
- <pathelement location="${fjbg.jar}"/>
- <pathelement location="${msil.jar}"/>
- <pathelement location="${ant.jar}"/>
- <pathelement location="${jline.jar}"/>
- </classpath>
- <include name="**/*.scala"/>
- <excludesfile name="${nsc.excludes.file}" if="excludes.avail"/>
- </starr>
- <echo
- file="${locker.dir}/lib/compiler/${comp.prop.name}"
- message="version.number=${version.number}${line.separator}"
- append="false"
- />
- <echo
- file="${locker.dir}/lib/compiler/${comp.prop.name}"
- message="copyright.string=${copyright.string}${line.separator}"
- append="true"
- />
- <!-- Timing the build -->
- <stopwatch name="timer.locker" action="total"/>
- <!-- Copy support files to build folder and links external libraries-->
- <build.support build.dir="${locker.dir}"/>
- <build.links build.dir="${locker.dir}"/>
- <!-- Build executable files -->
- <taskdef
- name="lockertool"
- classname="scala.tools.ant.ScalaTool"
- classpathref="locker.classpath"/>
- <mkdir dir="${locker.dir}/bin"/>
- <lockertool
- file="${locker.dir}/bin/${scala.exec.name}"
- class="scala.tools.nsc.MainGenericRunner"
- javaFlags="${java.flags}"/>
- <lockertool
- file="${locker.dir}/bin/${scalac.exec.name}"
- class="scala.tools.nsc.Main"
- javaFlags="${java.flags}"/>
- <lockertool
- file="${locker.dir}/bin/${scaladoc.exec.name}"
- class="scala.tools.nsc.ScalaDoc"
- javaFlags="${java.flags}"/>
- <lockertool
- file="${locker.dir}/bin/${fsc.exec.name}"
- class="scala.tools.nsc.CompileClient"
- javaFlags="${java.flags}"/>
- <chmod perm="ugo+rx"
- file="${locker.dir}/bin/${scalac.exec.name}"/>
- <chmod perm="ugo+rx"
- file="${locker.dir}/bin/${scala.exec.name}"/>
- <chmod perm="ugo+rx"
- file="${locker.dir}/bin/${scaladoc.exec.name}"/>
- <chmod perm="ugo+rx"
- file="${locker.dir}/bin/${fsc.exec.name}"/>
- <fixcrlf
- srcdir="${locker.dir}/bin"
- eol="dos"
- includes="**/*.bat"/>
- <!-- Mark LOCKER as being completely built -->
- <touch file="${locker.dir}/complete" verbose="no"/>
- </target>
-
-<!-- ===========================================================================
-BUILD QUICK-TEST LAYER
-============================================================================ -->
-
- <target name="build" depends="setup.locker"
- description="Builds a quick-test (QUICK) version of the compiler">
- <stopwatch name="timer.quick"/>
- <!-- Build library -->
- <mkdir dir="${quick.dir}/lib/library"/>
- <javac
- srcdir="${src.dir}/library"
- destdir="${quick.dir}/lib/library"
- source="1.4" target="1.4" deprecation="yes"
- classpath="${quick.dir}/lib/library"
- includes="**/*.java"/>
- <locker
- srcdir="${src.dir}/library"
- destdir="${quick.dir}/lib/library"
- addparams="${nsc.params}" target="${nsc.target}"
- deprecation="yes" unchecked="yes"
- scalacdebugging="${nsc.log-files}"
- classpath="${quick.dir}/lib/library"
- includes="scala/Predef.scala"/>
- <locker
- srcdir="${src.dir}/library"
- destdir="${quick.dir}/lib/library"
- addparams="${nsc.params}" target="${nsc.target}"
- deprecation="yes" unchecked="yes"
- scalacdebugging="${nsc.log-files}"
- classpath="${quick.dir}/lib/library">
- <include name="**/*.scala"/>
- <exclude name="scala/Predef.scala"/>
- <exclude name="scala/dbc/**"/>
- <exclude name="scala/actors/**"/>
- <excludesfile name="${nsc.excludes.file}" if="excludes.avail"/>
- </locker>
- <echo
- file="${quick.dir}/lib/library/${lib.prop.name}"
- message="version.number=${version.number}${line.separator}"
- append="false"
- />
- <echo
- file="${quick.dir}/lib/library/${lib.prop.name}"
- message="copyright.string=${copyright.string}${line.separator}"
- append="true"
- />
- <!-- Build DBC -->
- <mkdir dir="${quick.dir}/lib/dbc"/>
- <locker
- srcdir="${src.dir}/dbc"
- destdir="${quick.dir}/lib/dbc"
- addparams="${nsc.params}" target="${nsc.target}"
- deprecation="yes" unchecked="yes"
- scalacdebugging="${nsc.log-files}">
- <classpath>
- <pathelement location="${quick.dir}/lib/library"/>
- <pathelement location="${quick.dir}/lib/dbc"/>
- </classpath>
- <include name="scala/dbc/**/*.scala"/>
- <excludesfile name="${nsc.excludes.file}" if="excludes.avail"/>
- </locker>
- <!-- Build actors library -->
- <mkdir dir="${quick.dir}/lib/actors"/>
- <javac
- srcdir="${src.dir}/actors"
- destdir="${quick.dir}/lib/actors"
- source="1.4" target="1.4" deprecation="yes"
- classpath="${quick.dir}/lib/actors"
- includes="scala/actors/**/*.java"/>
- <locker
- srcdir="${src.dir}/actors"
- destdir="${quick.dir}/lib/actors"
- addparams="${nsc.params}" target="${nsc.target}"
- deprecation="yes" unchecked="yes"
- scalacdebugging="${nsc.log-files}">
- <classpath>
- <pathelement location="${quick.dir}/lib/library"/>
- <pathelement location="${quick.dir}/lib/actors"/>
- </classpath>
- <include name="scala/actors/**/*.scala"/>
- <excludesfile name="${nsc.excludes.file}" if="excludes.avail"/>
- </locker>
- <!-- Build compiler -->
- <mkdir dir="${quick.dir}/lib/compiler"/>
- <locker
- srcdir="${src.dir}/compiler"
- destdir="${quick.dir}/lib/compiler"
- addparams="${nsc.params}" target="${nsc.target}"
- deprecation="yes" unchecked="yes"
- scalacdebugging="${nsc.log-files}">
- <classpath>
- <pathelement location="${quick.dir}/lib/library"/>
- <pathelement location="${quick.dir}/lib/compiler"/>
- <pathelement location="${fjbg.jar}"/>
- <pathelement location="${msil.jar}"/>
- <pathelement location="${ant.jar}"/>
- <pathelement location="${jline.jar}"/>
- </classpath>
- <include name="**/*.scala"/>
- <excludesfile name="${nsc.excludes.file}" if="excludes.avail"/>
- </locker>
- <echo
- file="${quick.dir}/lib/compiler/${comp.prop.name}"
- message="version.number=${version.number}${line.separator}"
- append="false"
- />
- <echo
- file="${quick.dir}/lib/compiler/${comp.prop.name}"
- message="copyright.string=${copyright.string}${line.separator}"
- append="true"
- />
- <!-- Build partest -->
- <mkdir dir="${quick.dir}/lib/partest"/>
- <javac
- srcdir="${src.dir}/partest"
- destdir="${quick.dir}/lib/partest"
- source="1.4" target="1.4" deprecation="yes"
- classpath="${quick.dir}/lib/partest"
- includes="scala/tools/partest/**/*.java"/>
- <locker
- srcdir="${src.dir}/partest"
- destdir="${quick.dir}/lib/partest"
- addparams="${nsc.params}" target="${nsc.target}"
- deprecation="yes" unchecked="yes">
- <classpath>
- <pathelement location="${quick.dir}/lib/library"/>
- <pathelement location="${quick.dir}/lib/compiler"/>
- <pathelement location="${quick.dir}/lib/actors"/>
- <pathelement location="${ant.jar}"/>
- </classpath>
- </locker>
- <echo
- file="${quick.dir}/lib/partest/${par.prop.name}"
- message="version.number=${version.number}${line.separator}"
- append="false"
- />
- <echo
- file="${quick.dir}/lib/partest/${par.prop.name}"
- message="copyright.string=${copyright.string}${line.separator}"
- append="true"
- />
- <!-- Timing the build -->
- <stopwatch name="timer.quick" action="total"/>
- <!-- Copy support files to build folder and links external libraries-->
- <build.support build.dir="${quick.dir}"/>
- <build.links build.dir="${quick.dir}"/>
- <!-- Build executable files -->
- <taskdef
- name="quicktool"
- classname="scala.tools.ant.ScalaTool"
- classpathref="quick.classpath"/>
- <mkdir dir="${quick.dir}/bin"/>
- <quicktool
- file="${quick.dir}/bin/${scala.exec.name}"
- class="scala.tools.nsc.MainGenericRunner"
- javaFlags="${java.flags}"/>
- <quicktool
- file="${quick.dir}/bin/${scalac.exec.name}"
- class="scala.tools.nsc.Main"
- javaFlags="${java.flags}"/>
- <quicktool
- file="${quick.dir}/bin/${scaladoc.exec.name}"
- class="scala.tools.nsc.ScalaDoc"
- javaFlags="${java.flags}"/>
- <quicktool
- file="${quick.dir}/bin/${fsc.exec.name}"
- class="scala.tools.nsc.CompileClient"
- javaFlags="${java.flags}"/>
- <chmod perm="ugo+rx"
- file="${quick.dir}/bin/${scalac.exec.name}"/>
- <chmod perm="ugo+rx"
- file="${quick.dir}/bin/${scala.exec.name}"/>
- <chmod perm="ugo+rx"
- file="${quick.dir}/bin/${scaladoc.exec.name}"/>
- <chmod perm="ugo+rx"
- file="${quick.dir}/bin/${fsc.exec.name}"/>
- <fixcrlf
- srcdir="${quick.dir}/bin"
- eol="dos"
- includes="**/*.bat"/>
- </target>
-
- <target name="test.quick" depends="build">
- <echo level="info"
- message="Ant test bench is not available yet."/>
- </target>
-
-<!-- ===========================================================================
-CLDC
-============================================================================ -->
-<!--
- <property name="cldcapi.jar" value="${lib.dir}/cldcapi10.jar"/>
- <property name="midpapi.jar" value="${lib.dir}/midpapi10.jar"/>
-
- <target name="cldc.sources"
- description="Create the source directory for the J2ME (CLDC) library"
- >
- <mkdir dir="${cldc.dir}/src"/>
-
- <copy todir="${cldc.dir}/src">
- <fileset dir="${src.dir}/library" includes="**/*.scala, **/*.java">
- <not>
- <present targetdir="${src.dir}/cldc-library"/>
- </not>
- <exclude name="**/*CharSequence.scala"/>
- <exclude name="**/jcl/**"/>
- <exclude name="**/ref/**"/>
- <exclude name="**/compat/**"/>
- <exclude name="**/concurrent/**"/>
- <exclude name="**/runtime/RichFloat.scala"/>
- <exclude name="**/runtime/RichDouble.scala"/>
- <exclude name="**/util/**"/>
- <exclude name="**/xml/**"/>
- </fileset>
- </copy>
-
- <copy todir="${cldc.dir}/src">
- <fileset dir="${src.dir}/cldc-library">
- <include name="**/*.scala"/>
- <include name="**/*.java"/>
- </fileset>
- </copy>
-
- </target>
-
- <target name="cldc.libraries"
- depends="setup.quick, cldc.sources"
- description="Builds the Scala library for J2ME (CLDC)"
- >
- <mkdir dir="${cldc.dir}/lib/library"/>
- <javac
- srcdir="${cldc.dir}/src"
- destdir="${cldc.dir}/lib/library"
- compiler="javac1.4"
- source="1.1"
- target="1.1"
- deprecation="${jc.deprecation}"
- >
- <bootclasspath>
- <pathelement location="${cldcapi.jar}"/>
- </bootclasspath>
- <include name="**/*.java"/>
- <exclude name="scala/runtime/FloatRef.java"/>
- <exclude name="scala/runtime/DoubleRef.java"/>
- </javac>
-
- <quick
- srcdir="${cldc.dir}/src"
- destdir="${cldc.dir}/lib/library"
- addparams="${nsc.params}"
- target="cldc"
- scalacdebugging="${nsc.log-files}"
- >
- <bootclasspath>
- <pathelement location="${cldcapi.jar}"/>
- </bootclasspath>
- <classpath>
- <pathelement location="${cldc.dir}"/>
- </classpath>
- <include name="scala/Predef.scala"/>
- </quick>
- <quick
- srcdir="${cldc.dir}/src"
- destdir="${cldc.dir}/lib/library"
- target="cldc"
- addparams="${nsc.params}"
- scalacdebugging="${nsc.log-files}"
- >
- <bootclasspath>
- <pathelement location="${cldcapi.jar}"/>
- </bootclasspath>
- <classpath>
- <pathelement location="${cldc.dir}"/>
- </classpath>
- <include name="**/*.scala"/>
- <exclude name="scala/Predef.scala"/>
- <exclude name="scala/BigDecimal.scala"/>
- <exclude name="scala/BigInt.scala"/>
- <exclude name="scala/collection/mutable/JavaMapAdaptor.scala"/>
- <exclude name="scala/collection/mutable/JavaSetAdaptor.scala"/>
- <exclude name="scala/collection/mutable/LinkedHashSet.scala"/>
- <exclude name="scala/util/Fluid.scala"/>
- <exclude name="scala/runtime/BoxedFloatArray.scala"/>
- <exclude name="scala/runtime/BoxedDoubleArray.scala"/>
- <exclude name="scala/io/**"/>
- <exclude name="scala/mobile/**"/>
- <exclude name="scala/reflect/**"/>
- <exclude name="scala/text/**"/>
- <exclude name="scala/testing/**"/>
- <exclude name="scala/xml/**"/>
- <excludesfile name="${nsc.excludes}" if="excludes.avail"/>
- </quick>
- <macrodef name="preverify">
- <attribute name="srcdir"/>
- <attribute name="destdir"/>
- <sequential>
- <exec executable="preverify" failonerror="false">
- <arg line="-classpath ${cldcapi.jar}${path.separator}${midpapi.jar}"/>
- <arg line="-target cldc1.0"/>
- <arg line="-d @{destdir}"/>
- <arg value="@{srcdir}"/>
- </exec>
- </sequential>
- </macrodef>
- <mkdir dir="${cldc.dir}/lib/preverified"/>
- <preverify
- srcdir="${cldc.dir}/lib/library"
- destdir="${cldc.dir}/lib/preverified"
- />
- <jar
- destfile="${cldc.dir}/lib/scalaapi10-unverified.jar"
- basedir="${cldc.dir}/lib/library"
- includes="scala/**/*.class">
- <manifest>
- <attribute name="Created-By" value="${version.number} (${vendor.name})"/>
- </manifest>
- </jar>
- <jar
- destfile="${cldc.dir}/lib/scalaapi10.jar"
- basedir="${cldc.dir}/lib/preverified"
- includes="scala/**/*.class">
- <manifest>
- <attribute name="Created-By" value="${version.number} (${vendor.name})"/>
- <attribute name="API-Specification-Version" value="1.0"/>
- <attribute name="API" value="Scala CLDC"/>
- <attribute name="API-Name" value="Scala Connected Limited Device Configuration"/>
- <attribute name="API-Type" value="Configuration"/>
- </manifest>
- </jar>
- </target>
-
- <target name="cldc" depends="cldc.libraries">
- </target>
--->
-
-<!-- ===========================================================================
-ANDROID
-============================================================================ -->
-
- <target name="android.init">
- <!-- Sets location of Android installation -->
- <condition property="android.home" value="${unix.android.home}">
- <and><os family="unix"/><isset property="unix.android.home"/></and>
- </condition>
- <condition property="android.home" value="${win.android.home}">
- <and><os family="windows"/><isset property="win.android.home"/></and>
- </condition>
- <property name="android.home" value="${env.ANDROID_HOME}"/>
-
- <fail message="Android home is not set or could not find android.jar in ${android.home}">
- <condition><not>
- <available file="${android.home}/android.jar"/>
- </not></condition>
- </fail>
- </target>
-
- <target name="android.sources" depends="android.init"
- description="Create the source directory for Android library"
- >
- <mkdir dir="${android.dir}/src"/>
- <copy todir="${android.dir}/src">
- <fileset dir="${src.dir}/android-library" includes="**/*.scala, **/*.java"/>
- </copy>
- <copy todir="${android.dir}/src">
- <fileset dir="${src.dir}/library" includes="**/*.scala, **/*.java" />
- </copy>
- </target>
-
- <target name="android.libraries"
- depends="setup.quick, android.sources"
- description="Builds the Scala library for Android">
- <mkdir dir="${android.dir}/lib/library"/>
- <javac
- srcdir="${android.dir}/src"
- destdir="${android.dir}/lib/library"
- deprecation="${jc.deprecation}"
- >
- <bootclasspath>
- <pathelement location="${android.home}/android.jar}"/>
- </bootclasspath>
- <include name="**/*.java"/>
- </javac>
-
- <quick
- srcdir="${android.dir}/src"
- destdir="${android.dir}/lib/library"
- deprecation="yes" unchecked="yes"
- addparams="${nsc.params}"
- extdirs=""
- scalacdebugging="${nsc.log-files}"
- >
- <bootclasspath>
- <pathelement location="${android.home}/android.jar"/>
- </bootclasspath>
- <include name="scala/Predef.scala"/>
- </quick>
-
- <quick
- srcdir="${android.dir}/src"
- destdir="${android.dir}/lib/library"
- deprecation="yes" unchecked="yes"
- extdirs=""
- addparams="${nsc.params}"
- scalacdebugging="${nsc.log-files}"
- >
- <bootclasspath>
- <pathelement location="${android.home}/android.jar"/>
- </bootclasspath>
- <classpath>
- <pathelement location="${android.dir}"/>
- </classpath>
- <include name="**/*.scala"/>
- <exclude name="scala/Predef.scala"/>
- <excludesfile name="${nsc.excludes}" if="excludes.avail"/>
- </quick>
- </target>
-
- <target name="android.build" depends="android.libraries"
- description="Convert this project's .class files into .dex files">
- <property name="dx.jar" value="${android.home}/tools/lib/dx.jar"/>
- <java jar="${dx.jar}" fork="true" failonerror="true">
- <jvmarg value="-Djava.ext.dirs=${android.home}${file.separator}tools${file.separator}lib"/>
- <jvmarg value="-Xmx384M"/>
- <arg value="--dex"/>
- <arg value="--output=${android.dir}/lib/scala.dex"/>
- <arg value="--locals=full"/>
- <arg value="--positions=lines"/>
- <arg value="--no-optimize"/> <!-- workaround for M5-RC14 bug -->
- <arg value="${android.dir}/lib/library"/>
- </java>
- <jar
- destfile="${android.dir}/lib/scala-dex.jar"
- basedir="${android.dir}/lib"
- includes="scala.dex"
- />
- <jar
- destfile="${android.dir}/lib/scala-android.jar"
- basedir="${android.dir}/lib/library"
- includes="scala/**/*.class"
- />
- </target>
-
- <target name="android" depends="init">
- <condition property="android.supported">
- <and>
- <not><contains string="${java.version}" substring="1.4"/></not>
- <contains string="${java.vendor}" substring="Sun"/>
- </and>
- </condition>
- <if><isset property="android.supported"/><then>
- <antcall target="android.build"/>
- </then><else>
- <echo message="The Android library build requires Sun Java 1.5 or newer"/>
- </else></if>
- </target>
-
-<!-- ===========================================================================
-MSIL
-============================================================================ -->
-
- <target name="msil.init" depends="ant-init">
- <!-- Sets ilasm command (either Microsoft .NET Framework or Mono) -->
- <condition property="ilasm.cmd" value="${msdn.home}/ilasm.exe">
- <and>
- <os family="windows"/><isset property="msdn.home"/>
- <available file="${msdn.home}/ilasm.exe"/>
- </and>
- </condition>
- <condition property="ilasm.cmd" value="${unix.mono.home}/ilasm">
- <and>
- <os family="unix"/><isset property="unix.mono.home"/>
- <available file="${unix.mono.home}/ilasm"/>
- </and>
- </condition>
- <condition property="ilasm.cmd" value="${win.mono.home}/ilasm">
- <and>
- <os family="windows"/><isset property="${win.mono.home}/lib/mono/2.0/ilasm.exe"/>
- <available file="${win.mono.home}/lib/mono/2.0/ilasm.exe"/>
- </and>
- </condition>
- <echo level="verbose" message="Found: ${ilasm.cmd}"/>
- <condition property="ilasm.cmd" value="ilasm">
- <and><available file="ilasm" filepath="${env.PATH}"/></and>
- </condition>
- <fail message="Command 'ilasm' not found">
- <condition><not><isset property="ilasm.cmd"/></not></condition>
- </fail>
- <!-- Sets ilasm arguments (either Windows or Unix) -->
- <property name="ilasm.outfile" value="${msil.dir}/predef.dll"/>
- <if>
- <isset property="os.win"/>
- <then>
- <property
- name="ilasm.args"
- value="/quiet /dll /output=${ilasm.outfile}"
- />
- </then>
- <else>
- <property
- name="ilasm.args"
- value="/dll /output:${ilasm.outfile}"
- />
- </else>
- </if>
- </target>
-
- <target name="msil.sources" depends="msil.init">
- <mkdir dir="${msil.dir}/src"/>
- <copy todir="${msil.dir}/src">
- <fileset dir="${src.dir}/dotnet-library" includes="**/*.scala, **/*.cs"/>
- </copy>
- <copy todir="${msil.dir}/src">
- <fileset dir="${src.dir}/library" includes="**/*.scala"/>
- </copy>
- </target>
-
- <target name="msil.libraries" depends="setup.quick, msil.sources">
- <quick srcdir="${msil.dir}/src" destdir="${msil.dir}" target="msil"
- assemname="predef" assemrefs="${lib.dir}"
- failonerror="false">
- <include name="**/*.scala"/>
- <exclude name="scala/ScalaObject.scala"/>
- <!--
- <include name="scala/Predef.scala"/>
- <include name="scala/Either.scala"/>
- <include name="scala/Option.scala"/>
- <include name="scala/Pair.scala"/>
- <include name="scala/Console.scala"/>
- <include name="scala/Application.scala"/>
- <include name="scala/ByNameFunction.scala"/>
- <include name="scala/Stream.scala"/>
- <include name="scala/*Annotation.scala"/>
- <include name="scala/Function*.scala"/>
- <include name="scala/Tuple*.scala"/>
- <include name="scala/Product*.scala"/>
- <include name="scala/List.scala"/>
- <include name="scala/cloneable.scala"/>
- <include name="scala/deprecated.scala"/>
- <include name="scala/native.scala"/>
- <include name="scala/serializable.scala"/>
- <include name="scala/transient.scala"/>
- <include name="scala/volatile.scala"/>
- <include name="scala/remote.scala"/>
- <include name="scala/throws.scala"/>
- <include name="scala/BigInt.scala"/>
- <include name="scala/CountedIterator.scala"/>
- <include name="scala/collection/**/*.scala"/>
- <include name="scala/runtime/*.scala"/>
- <include name="scala/concurrent/*.scala"/>
- <include name="scala/ref/*.scala"/>
- <include name="scala/reflect/*.scala"/>
- <include name="scala/testing/*.scala"/>
- <include name="scala/text/*.scala"/> -->
- </quick>
- <pathconvert property="ilasm.infile" pathsep=" ">
- <fileset dir="${msil.dir}" includes="*.msil"/>
- </pathconvert>
- <exec
- executable="${ilasm.cmd}" vmlauncher="no">
- <!--
- errorproperty="ilasm.err" outputproperty="ilasm.out">
- -->
- <arg line="${ilasm.args} ${ilasm.infile}"/>
- </exec>
- </target>
-
- <target name="msil" depends="msil.libraries">
- <copy todir="${quick.dir}/bin">
- <fileset
- dir="${mono.dir}/bin"
- includes="scala-net*"
- />
- <filterset>
- <filter token="VERSION" value="${version.number}"/>
- <filter token="COPYRIGHT" value="${copyright.string}"/>
- <filter token="NAME" value="Scala code runner"/>
- </filterset>
- </copy>
- <copy todir="${quick.dir}/bin">
- <fileset
- dir="${mono.dir}/bin"
- includes="scalac-net*"
- />
- <filterset>
- <filter token="VERSION" value="${version.number}"/>
- <filter token="COPYRIGHT" value="${copyright.string}"/>
- <filter token="NAME" value="Scala compiler"/>
- </filterset>
- </copy>
- <chmod perm="ugo+rx"
- dir="${quick.dir}/bin" includes="*-net*"/>
- <if><isset property="os.win"/>
- <then>
- <copy todir="${quick.dir}/lib">
- <fileset dir="${msil.dir}" includes="*.dll"/>
- <fileset dir="${lib.dir}" includes="*.dll"/>
- </copy>
- </then>
- <else>
- <symlink
- link="${quick.dir}/lib/predef.dll"
- resource="${msil.dir}/predef.dll"
- overwrite="yes" failonerror="no"/>
- <symlink
- link="${quick.dir}/lib/scalaruntime.dll"
- resource="${lib.dir}/scalaruntime.dll"
- overwrite="yes" failonerror="no"/>
- <symlink
- link="${quick.dir}/lib/mscorlib.dll"
- resource="${lib.dir}/mscorlib.dll"
- overwrite="yes" failonerror="no"/>
- </else>
- </if>
- </target>
-
-<!-- ===========================================================================
-OPTIMIZE
-============================================================================ -->
- <target name="optimised" depends="build.optimised"
- description="Build the compiler with optimizations on."/>
-
- <!-- Build the bootstrap layer -->
- <target name="build.optimised" depends="setup.quick">
- <stopwatch name="timer.optimised"/>
- <!-- Build library -->
- <mkdir dir="${optimised.dir}/lib/library"/>
- <javac
- srcdir="${src.dir}/library"
- destdir="${optimised.dir}/lib/library"
- source="1.4" target="1.4" deprecation="yes"
- classpath="${optimised.dir}/lib/library"
- includes="**/*.java"/>
- <quick
- srcdir="${src.dir}/library"
- destdir="${optimised.dir}/lib/library"
- addparams="${nsc.params}" target="${nsc.target}"
- deprecation="yes" unchecked="yes"
- optimise="yes"
- classpath="${optimised.dir}/lib/library"
- includes="scala/Predef.scala"/>
- <quick
- srcdir="${src.dir}/library"
- destdir="${optimised.dir}/lib/library"
- addparams="${nsc.params}" target="${nsc.target}"
- optimise="yes"
- deprecation="yes" unchecked="yes"
- classpath="${optimised.dir}/lib/library">
- <include name="**/*.scala"/>
- <exclude name="scala/Predef.scala"/>
- <exclude name="scala/dbc/**"/>
- <exclude name="scala/actors/**"/>
- <excludesfile name="${nsc.excludes.file}" if="excludes.avail"/>
- </quick>
- <echo
- file="${optimised.dir}/lib/library/${lib.prop.name}"
- message="version.number=${version.number}${line.separator}"
- append="false"
- />
- <echo
- file="${optimised.dir}/lib/library/${lib.prop.name}"
- message="copyright.string=${copyright.string}${line.separator}"
- append="true"
- />
- <!-- Build compiler -->
- <mkdir dir="${optimised.dir}/lib/compiler"/>
- <quick
- srcdir="${src.dir}"
- destdir="${optimised.dir}/lib/compiler"
- optimise="yes"
- addparams="${nsc.params}" target="${nsc.target}">
- <classpath>
- <pathelement location="${optimised.dir}/lib/library"/>
- <pathelement location="${optimised.dir}/lib/compiler"/>
- <pathelement location="${fjbg.jar}"/>
- <pathelement location="${msil.jar}"/>
- <pathelement location="${ant.jar}"/>
- <pathelement location="${jline.jar}"/>
- </classpath>
- <include name="compiler/**/*.scala"/>
- <include name="library/scala/List.scala"/>
- <excludesfile name="${nsc.excludes.file}" if="excludes.avail"/>
- </quick>
- <echo
- file="${optimised.dir}/lib/compiler/${comp.prop.name}"
- message="version.number=${version.number}${line.separator}"
- append="false"
- />
- <echo
- file="${optimised.dir}/lib/compiler/${comp.prop.name}"
- message="copyright.string=${copyright.string}${line.separator}"
- append="true"
- />
- <!-- Timing the build -->
- <stopwatch name="timer.strap" action="total"/>
- <!-- Copy support files to build folder and links external libraries-->
- <build.support build.dir="${optimised.dir}"/>
- <build.links build.dir="${optimised.dir}"/>
- <!-- Build executable files -->
- <taskdef
- name="straptool"
- classname="scala.tools.ant.ScalaTool"
- classpathref="quick.classpath"/>
- <mkdir dir="${optimised.dir}/bin"/>
- <straptool
- file="${optimised.dir}/bin/${scala.exec.name}"
- class="scala.tools.nsc.MainGenericRunner"
- javaFlags="${java.flags}"/>
- <straptool
- file="${optimised.dir}/bin/${scalac.exec.name}"
- class="scala.tools.nsc.Main"
- javaFlags="${java.flags}"/>
- <straptool
- file="${optimised.dir}/bin/${scaladoc.exec.name}"
- class="scala.tools.nsc.ScalaDoc"
- javaFlags="${java.flags}"/>
- <straptool
- file="${optimised.dir}/bin/${fsc.exec.name}"
- class="scala.tools.nsc.CompileClient"
- javaFlags="${java.flags}"/>
- <chmod perm="ugo+rx"
- file="${optimised.dir}/bin/${scalac.exec.name}"/>
- <chmod perm="ugo+rx"
- file="${optimised.dir}/bin/${scala.exec.name}"/>
- <chmod perm="ugo+rx"
- file="${optimised.dir}/bin/${scaladoc.exec.name}"/>
- <chmod perm="ugo+rx"
- file="${optimised.dir}/bin/${fsc.exec.name}"/>
- <fixcrlf
- srcdir="${optimised.dir}/bin"
- eol="dos"
- includes="**/*.bat"/>
- </target>
-
-
-<!-- ===========================================================================
-TEST
-============================================================================ -->
-
- <target name="test" depends="test.stability, test.strap"
- description="Tests the build for stability"/>
-
- <!-- Build the bootstrap layer -->
- <target name="build.strap" depends="setup.quick">
- <stopwatch name="timer.strap"/>
- <!-- Build library -->
- <mkdir dir="${strap.dir}/lib/library"/>
- <javac
- srcdir="${src.dir}/library"
- destdir="${strap.dir}/lib/library"
- source="1.4" target="1.4" deprecation="yes"
- classpath="${strap.dir}/lib/library"
- includes="**/*.java"/>
- <quick
- srcdir="${src.dir}/library"
- destdir="${strap.dir}/lib/library"
- addparams="${nsc.params}" target="${nsc.target}"
- deprecation="yes" unchecked="yes"
- classpath="${strap.dir}/lib/library"
- includes="scala/Predef.scala"/>
- <quick
- srcdir="${src.dir}/library"
- destdir="${strap.dir}/lib/library"
- addparams="${nsc.params}" target="${nsc.target}"
- deprecation="yes" unchecked="yes"
- classpath="${strap.dir}/lib/library">
- <include name="**/*.scala"/>
- <exclude name="scala/Predef.scala"/>
- <exclude name="scala/dbc/**"/>
- <exclude name="scala/actors/**"/>
- <excludesfile name="${nsc.excludes.file}" if="excludes.avail"/>
- </quick>
- <echo
- file="${strap.dir}/lib/library/${lib.prop.name}"
- message="version.number=${version.number}${line.separator}"
- append="false"
- />
- <echo
- file="${strap.dir}/lib/library/${lib.prop.name}"
- message="copyright.string=${copyright.string}${line.separator}"
- append="true"
- />
- <!-- Build DBC -->
- <mkdir dir="${strap.dir}/lib/dbc"/>
- <quick
- srcdir="${src.dir}/dbc"
- destdir="${strap.dir}/lib/dbc"
- addparams="${nsc.params}" target="${nsc.target}"
- deprecation="yes" unchecked="yes">
- <classpath>
- <pathelement location="${strap.dir}/lib/library"/>
- <pathelement location="${strap.dir}/lib/dbc"/>
- </classpath>
- <include name="scala/dbc/**/*.scala"/>
- <excludesfile name="${nsc.excludes.file}" if="excludes.avail"/>
- </quick>
- <!-- Build actors library -->
- <mkdir dir="${strap.dir}/lib/actors"/>
- <javac
- srcdir="${src.dir}/actors"
- destdir="${strap.dir}/lib/actors"
- source="1.4" target="1.4" deprecation="yes"
- classpath="${strap.dir}/lib/actors"
- includes="scala/actors/**/*.java"/>
- <quick
- srcdir="${src.dir}/actors"
- destdir="${strap.dir}/lib/actors"
- addparams="${nsc.params}" target="${nsc.target}">
- <classpath>
- <pathelement location="${strap.dir}/lib/library"/>
- <pathelement location="${strap.dir}/lib/actors"/>
- </classpath>
- <include name="scala/actors/**/*.scala"/>
- <excludesfile name="${nsc.excludes.file}" if="excludes.avail"/>
- </quick>
- <!-- Build compiler -->
- <mkdir dir="${strap.dir}/lib/compiler"/>
- <quick
- srcdir="${src.dir}/compiler"
- destdir="${strap.dir}/lib/compiler"
- addparams="${nsc.params}" target="${nsc.target}">
- <classpath>
- <pathelement location="${strap.dir}/lib/library"/>
- <pathelement location="${strap.dir}/lib/compiler"/>
- <pathelement location="${fjbg.jar}"/>
- <pathelement location="${msil.jar}"/>
- <pathelement location="${ant.jar}"/>
- <pathelement location="${jline.jar}"/>
- </classpath>
- <include name="**/*.scala"/>
- <excludesfile name="${nsc.excludes.file}" if="excludes.avail"/>
- </quick>
- <echo
- file="${strap.dir}/lib/compiler/${comp.prop.name}"
- message="version.number=${version.number}${line.separator}"
- append="false"
- />
- <echo
- file="${strap.dir}/lib/compiler/${comp.prop.name}"
- message="copyright.string=${copyright.string}${line.separator}"
- append="true"
- />
- <!-- Build partest -->
- <mkdir dir="${strap.dir}/lib/partest"/>
- <javac
- srcdir="${src.dir}/partest"
- destdir="${strap.dir}/lib/partest"
- source="1.4" target="1.4" deprecation="yes"
- classpath="${strap.dir}/lib/partest"
- includes="scala/tools/partest/**/*.java"/>
- <quick
- srcdir="${src.dir}/partest"
- destdir="${strap.dir}/lib/partest"
- addparams="${nsc.params}" target="${nsc.target}"
- deprecation="yes" unchecked="yes">
- <classpath>
- <pathelement location="${strap.dir}/lib/library"/>
- <pathelement location="${strap.dir}/lib/compiler"/>
- <pathelement location="${strap.dir}/lib/actors"/>
- <pathelement location="${ant.jar}"/>
- </classpath>
- </quick>
- <echo
- file="${strap.dir}/lib/partest/${par.prop.name}"
- message="version.number=${version.number}${line.separator}"
- append="false"
- />
- <echo
- file="${strap.dir}/lib/partest/${par.prop.name}"
- message="copyright.string=${copyright.string}${line.separator}"
- append="true"
- />
- <!-- Timing the build -->
- <stopwatch name="timer.strap" action="total"/>
- <!-- Copy support files to build folder and links external libraries-->
- <build.support build.dir="${strap.dir}"/>
- <build.links build.dir="${strap.dir}"/>
- <!-- Build executable files -->
- <taskdef
- name="straptool"
- classname="scala.tools.ant.ScalaTool"
- classpathref="quick.classpath"/>
- <mkdir dir="${strap.dir}/bin"/>
- <straptool
- file="${strap.dir}/bin/${scala.exec.name}"
- class="scala.tools.nsc.MainGenericRunner"
- javaFlags="${java.flags}"/>
- <straptool
- file="${strap.dir}/bin/${scalac.exec.name}"
- class="scala.tools.nsc.Main"
- javaFlags="${java.flags}"/>
- <straptool
- file="${strap.dir}/bin/${scaladoc.exec.name}"
- class="scala.tools.nsc.ScalaDoc"
- javaFlags="${java.flags}"/>
- <straptool
- file="${strap.dir}/bin/${fsc.exec.name}"
- class="scala.tools.nsc.CompileClient"
- javaFlags="${java.flags}"/>
- <chmod perm="ugo+rx"
- file="${strap.dir}/bin/${scalac.exec.name}"/>
- <chmod perm="ugo+rx"
- file="${strap.dir}/bin/${scala.exec.name}"/>
- <chmod perm="ugo+rx"
- file="${strap.dir}/bin/${scaladoc.exec.name}"/>
- <chmod perm="ugo+rx"
- file="${strap.dir}/bin/${fsc.exec.name}"/>
- <fixcrlf
- srcdir="${strap.dir}/bin"
- eol="dos"
- includes="**/*.bat"/>
- </target>
-
- <!-- Compares quick and test level -->
- <target name="test.stability" depends="build.strap">
- <if><available file="${stability.tool}"/>
- <then> <!-- use stability tool for fast checking -->
- <exec executable="${stability.tool}" failonerror="true">
- <arg value="${quick.dir}"/>
- <arg value="${strap.dir}"/>
- </exec>
- </then><else> <!-- check stability the slow way -->
- <checksum totalproperty="quick.md5">
- <fileset dir="${quick.dir}/lib">
- <include name="library/**"/>
- <include name="compiler/**"/>
- </fileset>
- </checksum>
- <delete quiet="yes" failonerror="no">
- <fileset dir="${quick.dir}" includes="**/*.MD5"/>
- </delete>
- <checksum totalproperty="strap.md5">
- <fileset dir="${strap.dir}/lib">
- <include name="library/**"/>
- <include name="compiler/**"/>
- </fileset>
- </checksum>
- <delete quiet="yes" failonerror="no">
- <fileset dir="${strap.dir}" includes="**/*.MD5"/>
- </delete>
- <fail message="Build ${version.number} is not stable">
- <condition><not>
- <equals arg1="${quick.md5}" arg2="${strap.md5}"/>
- </not></condition>
- </fail>
- <echo level="info" message="Build ${version.number} is stable."/>
- </else></if>
- </target>
-
- <target name="test.strap" depends="build.strap">
- <echo level="info" message="Ant test bench is not available yet."/>
- </target>
-
-<!-- ===========================================================================
-DOCUMENTATION
-============================================================================ -->
-
- <target name="docs" depends="setup.quick"
- description="Generated the API for library sources">
- <mkdir dir="${api-lib.dir}"/>
- <quickdoc
- srcdir="${src.dir}"
- destdir="${api-lib.dir}"
- sourcepath=""
- deprecation="yes" unchecked="yes"
- windowtitle="Scala Library Documentation"
- doctitle="&lt;div&gt;Scala ${version.number}&lt;br/&gt;API Specification&lt;/div&gt;"
- classpath="${quick.dir}/lib/library${path.separator}${quick.dir}/lib/actors">
- <include name="dbc/**/*.scala"/>
- <include name="actors/**/*.scala"/>
- <include name="library/**/*.scala"/>
- <excludesfile name="${nsc.excludes.file}" if="excludes.avail"/>
- </quickdoc>
- </target>
-
- <target name="docs.compiler" depends="setup.quick"
- description="Generated the API for compiler sources">
- <mkdir dir="${api-comp.dir}"/>
- <quickdoc
- srcdir="${src.dir}/compiler"
- destdir="${api-comp.dir}"
- sourcepath=""
- windowtitle="Scala Compiler Documentation"
- doctitle="&lt;div&gt;Scala ${version.number}&lt;br/&gt;API Specification&lt;/div&gt;">
- <classpath>
- <pathelement location="${quick.dir}/lib/library"/>
- <pathelement location="${quick.dir}/lib/compiler"/>
- <pathelement location="${fjbg.jar}"/>
- <pathelement location="${msil.jar}"/>
- <pathelement location="${ant.jar}"/>
- <pathelement location="${jline.jar}"/>
- </classpath>
- <include name="**/*.scala"/>
- <excludesfile name="${nsc.excludes.file}" if="excludes.avail"/>
- </quickdoc>
- </target>
-
- <target name="docs.manual" depends="setup.quick"
- description="Generated the manual for the Scala tools">
- <mkdir dir="${tooldocs.dir}/classes"/>
- <path id="manual.classpath">
- <pathelement location="${quick.dir}/lib/library"/>
- <pathelement location="${tooldocs.dir}/classes"/>
- </path>
- <quick
- srcdir="${src.dir}/manual"
- destdir="${tooldocs.dir}/classes"
- addparams="${nsc.params}" target="${nsc.target}"
- deprecation="yes" unchecked="yes"
- classpathref="manual.classpath">
- <include name="**/*.scala"/>
- </quick>
- <emit command="fsc"/>
- <emit command="sbaz"/>
- <emit command="scala"/>
- <emit command="scalac"/>
- <emit command="scaladoc"/>
- <emit command="scalap"/>
- <fixcrlf srcdir="${tooldocs.dir}" eol="unix" includes="**/*.1"/>
- <copy todir="${tooldocs.dir}">
- <fileset dir="${src.dir}/manual/scala/tools/docutil/resources">
- <include name="**/*.html"/>
- <include name="**/*.css"/>
- <include name="**/*.gif"/>
- <include name="**/*.png"/>
- </fileset>
- </copy>
- </target>
-
- <macrodef name="emit">
- <attribute name="command"/>
- <sequential>
- <java classname="scala.tools.docutil.EmitHtml"
- output="${tooldocs.dir}/@{command}.html"
- classpathref="manual.classpath"
- fork="true" logError="yes"
- >
- <arg value="scala.man1.@{command}"/>
- </java>
- <java classname="scala.tools.docutil.EmitManPage"
- output="${tooldocs.dir}/@{command}.1"
- classpathref="manual.classpath"
- fork="true" logError="yes"
- >
- <arg value="scala.man1.@{command}"/>
- </java>
- </sequential>
- </macrodef>
-
-<!-- ===========================================================================
-GENERATES A DISTRIBUTION
-============================================================================ -->
-
- <target name="dist.devel" depends="init">
- <property file="${number.file}"/>
- <property name="version.number"
- value="${version.major}.${version.minor}.${version.patch}.r${svn.number}"/>
- <runtarget target="pack"/>
- </target>
-
- <target name="dist.patch" depends="init">
- <property file="${number.file}"/>
- <property name="version.number"
- value="${version.major}.${version.minor}.${version.patch}.${version.suffix}"/>
- <runtarget target="pack"/>
- </target>
-
- <target name="dist.minor" depends="init">
- <property file="${number.file}"/>
- <property name="version.number"
- value="${version.major}.${version.minor}.${version.patch}.${version.suffix}"/>
- <runtarget target="pack"/>
- </target>
-
- <target name="dist"
- depends="clean.build, test, build.dist"
- description="Creates a (stability-)tested, complete Scala distribution *from scratch*"/>
-
- <target name="pack"
- depends="build.archive, build.sbaz"
- description="Packs a distribution for SBaz and ZIP/TAR"/>
-
- <target name="binaries"
- depends="setup, build.strap"
- description="Creates a binary Scala distribution">
- <property name="dist.current.dir"
- value="${dist.dir}/scala-${version.number}"/>
- <if><and>
- <isset property="os.unix"/>
- <isset property="dist.resource"/></and>
- <then>
- <symlink
- link="${dist.dir}"
- resource="${dist.resource}" overwrite="yes" failonerror="no"/>
- <touch file="${dist.dir}/is_symlink" verbose="no"/>
- </then></if>
- <mkdir dir="${dist.current.dir}"/>
- <!-- Copy all requires libraries -->
- <mkdir dir="${dist.current.dir}/lib"/>
- <property name="ant.version.number" value="1.6.0"/>
- <!-- see http://swik.net/Spring/Interface21+Team+Blog/Creating+OSGi+bundles/b2yoy -->
- <propertyregex
- property="osgi.version.number" input="${version.number}"
- regexp="([^-]*)(-.*)?" select="\1"
- />
- <echo level="verbose" message="OSGi version: ${osgi.version.number}"/>
- <jar destfile="${dist.current.dir}/lib/${comp.jar.name}">
- <fileset dir="${strap.dir}/lib/compiler"/>
- <zipfileset src="${fjbg.jar}"/>
- <zipfileset src="${msil.jar}"/>
- <manifest>
- <attribute name="Signature-Version" value="${version.number}"/>
- <attribute name="Built-By" value="${user.name}"/>
- <attribute name="Main-Class" value="scala.tools.nsc.Main"/>
- <attribute name="Class-Path" value="${lib.jar.name}"/>
- <section name="scala/tools/nsc">
- <attribute name="Extension-Name" value="scala.tools.nsc"/>
- <attribute name="Specification-Title" value="Scala Compiler"/>
- <attribute name="Specification-Version" value="${version.number}"/>
- <attribute name="Specification-Vendor" value="${vendor.name}"/>
- <attribute name="Implementation-Title" value="scala.tools.nsc"/>
- <attribute name="Implementation-Version" value="${version.number}"/>
- <attribute name="Implementation-Vendor" value="${vendor.name}"/>
- </section>
- <attribute name="Bundle-DocURL" value="http://www.scala-lang.org/"/>
- <attribute name="Bundle-ManifestVersion" value="2"/>
- <attribute name="Bundle-Name" value="Scala Compiler Bundle"/>
- <attribute name="Bundle-SymbolicName" value="scala_compiler"/>
- <attribute name="Bundle-Version" value="${osgi.version.number}"/>
- <attribute name="Bundle-Vendor" value="${vendor.name}"/>
- <attribute name="Export-Package" value="scala.tools.ant;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.ast;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.ast.parser;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.backend;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.doc;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.io;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.matching;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.models;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.symtab;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.symtab.classfile;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.symtab.clr;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.transform;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.typechecker;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.util;version=&#34;${osgi.version.number}&#34;,scala.tools.util;version=&#34;${osgi.version.number}&#34;"/>
- <attribute name="Import-Package" value="org.apache.ant.tools;version=&#34;${ant.version.number}&#34;;resolution:=optional,org.apache.ant.tools.taskdefs;version=&#34;${ant.version.number}&#34;;resolution:=optional,org.apache.ant.types;version=&#34;${ant.version.number}&#34;;resolution:=optional,org.apache.ant.tools.util;version=&#34;${ant.version.number}&#34;;resolution:=optional,org.xml.sax"/>
- <attribute name="Bundle-RequiredExecutionEnvironment" value="J2SE-1.4"/>
- </manifest>
- </jar>
- <jar destfile="${dist.current.dir}/lib/${lib.jar.name}">
- <fileset dir="${strap.dir}/lib/library"/>
- <fileset dir="${strap.dir}/lib/actors"/>
- <manifest>
- <attribute name="Signature-Version" value="${version.number}"/>
- <attribute name="Built-By" value="${user.name}"/>
- <attribute name="Main-Class" value="scala.util.Properties"/>
- <section name="scala">
- <attribute name="Extension-Name" value="scala"/>
- <attribute name="Specification-Title" value="Scala Library"/>
- <attribute name="Specification-Version" value="${version.number}"/>
- <attribute name="Specification-Vendor" value="${vendor.name}"/>
- <attribute name="Implementation-Title" value="scala"/>
- <attribute name="Implementation-Version" value="${version.number}"/>
- <attribute name="Implementation-Vendor" value="${vendor.name}"/>
- </section>
- <attribute name="Bundle-DocURL" value="http://www.scala-lang.org/"/>
- <attribute name="Bundle-ManifestVersion" value="2"/>
- <attribute name="Bundle-Name" value="Scala Library Bundle"/>
- <attribute name="Bundle-SymbolicName" value="scala_library"/>
- <attribute name="Bundle-Version" value="${osgi.version.number}"/>
- <attribute name="Bundle-Vendor" value="${vendor.name}"/>
- <attribute name="Export-Package" value="scala;version=&#34;${osgi.version.number}&#34;,scala.actors;version=&#34;${osgi.version.number}&#34;,scala.actors.remote;version=&#34;${osgi.version.number}&#34;,scala.collection;version=&#34;${osgi.version.number}&#34;,scala.collection.immutable;version=&#34;${osgi.version.number}&#34;,scala.collection.jcl;version=&#34;${osgi.version.number}&#34;,scala.collection.mutable;version=&#34;${osgi.version.number}&#34;,scala.compat;version=&#34;${osgi.version.number}&#34;,scala.concurrent;version=&#34;${osgi.version.number}&#34;,scala.io;version=&#34;${osgi.version.number}&#34;,scala.mobile;version=&#34;${osgi.version.number}&#34;,scala.ref;version=&#34;${osgi.version.number}&#34;,scala.reflect;version=&#34;${osgi.version.number}&#34;,scala.runtime;version=&#34;${osgi.version.number}&#34;,scala.testing;version=&#34;${osgi.version.number}&#34;,scala.text;version=&#34;${osgi.version.number}&#34;,scala.util;version=&#34;${osgi.version.number}&#34;,scala.util.automata;version=&#34;${osgi.version.number}&#34;,scala.util.grammar;version=&#34;${osgi.version.number}&#34;,scala.util.logging;version=&#34;${osgi.version.number}&#34;,scala.util.parsing;version=&#34;${osgi.version.number}&#34;,scala.util.parsing.ast;version=&#34;${osgi.version.number}&#34;,scala.util.parsing.combinator;version=&#34;${osgi.version.number}&#34;,scala.util.parsing.combinator.lexical;version=&#34;${osgi.version.number}&#34;,scala.util.parsing.combinator.syntactical;version=&#34;${osgi.version.number}&#34;,scala.util.parsing.combinator.testing;version=&#34;${osgi.version.number}&#34;,scala.util.parsing.combinatorold;version=&#34;${osgi.version.number}&#34;,scala.util.parsing.combinatorold.lexical;version=&#34;${osgi.version.number}&#34;,scala.util.parsing.combinatorold.syntactical;version=&#34;${osgi.version.number}&#34;,scala.util.parsing.combinatorold.testing;version=&#34;${osgi.version.number}&#34;,scala.util.parsing.input;version=&#34;${osgi.version.number}&#34;,scala.util.parsing.json;version=&#34;${osgi.version.number}&#34;,scala.util.parsing.syntax;version=&#34;${osgi.version.number}&#34;,scala.util.regexp;version=&#34;${osgi.version.number}&#34;,scala.xml;version=&#34;${osgi.version.number}&#34;,scala.xml.dtd;version=&#34;${osgi.version.number}&#34;,scala.xml.factory;version=&#34;${osgi.version.number}&#34;,scala.xml.parsing;version=&#34;${osgi.version.number}&#34;,scala.xml.path;version=&#34;${osgi.version.number}&#34;,scala.xml.pull;version=&#34;${osgi.version.number}&#34;,scala.xml.transform;version=&#34;${osgi.version.number}&#34;"/>
- <attribute name="Import-Package" value="javax.xml.parsers,org.xml.sax,org.xml.sax.helpers"/>
- <attribute name="Bundle-RequiredExecutionEnvironment" value="J2SE-1.4"/>
- </manifest>
- </jar>
- <jar destfile="${dist.current.dir}/lib/${dbc.jar.name}">
- <fileset dir="${strap.dir}/lib/dbc"/>
- <manifest>
- <attribute name="Signature-Version" value="${version.number}"/>
- <attribute name="Built-By" value="${user.name}"/>
- <attribute name="Class-Path" value="${lib.jar.name}"/>
- <section name="scala/dbc">
- <attribute name="Extension-Name" value="scala.dbc"/>
- <attribute name="Specification-Title" value="Scala DBC Library"/>
- <attribute name="Specification-Version" value="${version.number}"/>
- <attribute name="Specification-Vendor" value="${vendor.name}"/>
- <attribute name="Implementation-Title" value="scala.dbc"/>
- <attribute name="Implementation-Version" value="${version.number}"/>
- <attribute name="Implementation-Vendor" value="${vendor.name}"/>
- </section>
- <attribute name="Bundle-DocURL" value="http://www.scala-lang.org/"/>
- <attribute name="Bundle-ManifestVersion" value="2"/>
- <attribute name="Bundle-Name" value="Scala DBC Library Bundle"/>
- <attribute name="Bundle-SymbolicName" value="scala_dbc_library"/>
- <attribute name="Bundle-Version" value="${osgi.version.number}"/>
- <attribute name="Bundle-Vendor" value="${vendor.name}"/>
- <attribute name="Export-Package" value="scala.dbc;version=&#34;${osgi.version.number}&#34;,scala.dbc.datatype;version=&#34;${osgi.version.number}&#34;,scala.dbc.exception;version=&#34;${osgi.version.number}&#34;,scala.dbc.result;version=&#34;${osgi.version.number}&#34;,scala.dbc.statement;version=&#34;${osgi.version.number}&#34;,scala.dbc.statement.expression;version=&#34;${osgi.version.number}&#34;,scala.dbc.syntax;version=&#34;${osgi.version.number}&#34;,scala.dbc.value;version=&#34;${osgi.version.number}&#34;,scala.dbc.vendor;version=&#34;${osgi.version.number}&#34;"/>
- <attribute name="Import-Package" value="scala;version=&#34;${osgi.version.number}&#34;,scala.compat;version=&#34;${osgi.version.number}&#34;"/>
- <attribute name="Bundle-RequiredExecutionEnvironment" value="J2SE-1.4"/>
- </manifest>
- </jar>
- <jar destfile="${dist.current.dir}/lib/${partest.jar.name}">
- <fileset dir="${strap.dir}/lib/partest"/>
- <manifest>
- <attribute name="Signature-Version" value="${version.number}"/>
- <attribute name="Built-By" value="${user.name}"/>
- <attribute name="Main-Class" value="scala.tools.partest.TestRunner"/>
- <attribute name="Class-Path" value="${lib.jar.name}"/>
- <section name="scala/tools/partest">
- <attribute name="Extension-Name" value="scala.tools.partest"/>
- <attribute name="Specification-Title" value="Scala Test Utility"/>
- <attribute name="Specification-Version" value="${version.number}"/>
- <attribute name="Specification-Vendor" value="${vendor.name}"/>
- <attribute name="Implementation-Title" value="scala.tools.partest"/>
- <attribute name="Implementation-Version" value="${version.number}"/>
- <attribute name="Implementation-Vendor" value="${vendor.name}"/>
- </section>
- <attribute name="Bundle-DocURL" value="http://www.scala-lang.org/"/>
- <attribute name="Bundle-ManifestVersion" value="2"/>
- <attribute name="Bundle-Name" value="Scala Test Bundle"/>
- <attribute name="Bundle-SymbolicName" value="scala_compiler"/>
- <attribute name="Bundle-Version" value="${osgi.version.number}"/>
- <attribute name="Bundle-Vendor" value="${vendor.name}"/>
- <attribute name="Export-Package" value="scala.tools.partest;version=&#34;${osgi.version.number}&#34;,scala.tools.partest.utils;version=&#34;${osgi.version.number}&#34;"/>
- <attribute name="Import-Package" value="javax.swing"/>
- <attribute name="Bundle-RequiredExecutionEnvironment" value="J2SE-1.4"/>
- </manifest>
- </jar>
- <copy todir="${dist.current.dir}/lib" file="${jline.jar}"/>
-
- <!-- build source jars -->
- <mkdir dir="${dist.current.dir}/src"/>
- <jar
- destfile="${dist.current.dir}/src/${libsrc.jar.name}">
- <fileset dir="${src.dir}/library"/>
- <fileset dir="${src.dir}/actors"/>
- </jar>
- <jar
- destfile="${dist.current.dir}/src/${dbcsrc.jar.name}"
- basedir="${src.dir}/dbc"
- includes="**/*.scala"
- />
- <jar
- destfile="${dist.current.dir}/src/${parsrc.jar.name}"
- basedir="${src.dir}/partest"
- includes="**/*.scala"
- />
- <jar
- destfile="${dist.current.dir}/src/${compsrc.jar.name}"
- basedir="${src.dir}/compiler"
- includes="**/*.scala"
- />
-
- <!-- Copy executable files -->
- <mkdir dir="${dist.current.dir}/bin"/>
- <copy todir="${dist.current.dir}/bin">
- <fileset dir="${strap.dir}/bin"/>
- </copy>
- <chmod perm="ugo+rx" file="${dist.current.dir}/bin/${scalac.exec.name}"/>
- <chmod perm="ugo+rx" file="${dist.current.dir}/bin/${scala.exec.name}"/>
- <chmod perm="ugo+rx" file="${dist.current.dir}/bin/${scaladoc.exec.name}"/>
- <chmod perm="ugo+rx" file="${dist.current.dir}/bin/${fsc.exec.name}"/>
- <!-- Recreate the 'latest' link to point to this distribution -->
- <if><isset property="os.win"/>
- <then>
- <copy todir="${dist.dir}/latest">
- <fileset dir="${dist.current.dir}"/>
- </copy>
- </then>
- <else>
- <symlink
- link="${dist.dir}/latest"
- resource="${dist.current.dir}"
- overwrite="yes" failonerror="no"/>
- </else>
- </if>
- </target>
-
- <target name="build.dist"
- depends="binaries,docs,docs.manual"
- description="Creates the latest Scala distribution">
- <!-- Copy the API, examples and man -->
- <copy todir="${dist.current.dir}/doc/scala">
- <fileset dir="${docs.dir}" includes="README,LICENSE"/>
- </copy>
- <copy todir="${dist.current.dir}/doc/scala/api">
- <fileset dir="${api-lib.dir}"/>
- </copy>
- <copy todir="${dist.current.dir}/doc/scala/examples">
- <fileset dir="${docs.dir}/examples"/>
- </copy>
- <copy todir="${dist.current.dir}/man/man1">
- <fileset dir="${tooldocs.dir}" includes="**/*.1"/>
- </copy>
- <copy todir="${dist.current.dir}/doc/scala/tools">
- <fileset dir="${tooldocs.dir}">
- <include name="**/*.html"/>
- <include name="**/*.css"/>
- <include name="**/*.gif"/>
- <include name="**/*.png"/>
- </fileset>
- </copy>
- <stopwatch name="timer.dist" action="total"/>
- </target>
-
- <!-- Create the SBaz packages -->
- <target name="build.sbaz" depends="build.dist,msil,android">
- <property name="sbaz.universe" value="http://www.scala-lang.org/downloads/packages"/>
- <mkdir dir="${dist.dir}"/>
- <!-- Create the Scala library package -->
- <quicksbaz
- file="${dist.dir}/scala-library-${version.number}.sbp"
- adfile="${dist.dir}/scala-library-${version.number}.advert"
- name="scala-library"
- version="${version.number}"
- desc="The Scala library. This is the minimal requirement to run any Scala program."
- link="${sbaz.universe}/scala-library-${version.number}.sbp">
- <libset dir="${dist.current.dir}/lib" includes="${lib.jar.name},${dbc.jar.name}"/>
- <srcset dir="${dist.current.dir}/src" includes="${libsrc.jar.name},${dbcsrc.jar.name}"/>
- </quicksbaz>
- <!-- Create the Scala developer package -->
- <quicksbaz
- file="${dist.dir}/scala-devel-${version.number}.sbp"
- adfile="${dist.dir}/scala-devel-${version.number}.advert"
- name="scala-devel"
- version="${version.number}"
- desc="The Scala developer tools. This contains everything that is required to write, test and document new Scala programs."
- depends="scala-library"
- link="${sbaz.universe}/scala-devel-${version.number}.sbp">
- <binset dir="${dist.current.dir}/bin" includes="**"/>
- <docset dir="${dist.current.dir}/doc" includes="**" excludes="**/scala/api/**,**/scala/tools/**"/>
- <libset dir="${dist.current.dir}/lib" includes="${comp.jar.name},${jline.jar.name}"/>
- <manset dir="${dist.current.dir}/man" includes="**"/>
- <srcset dir="${dist.current.dir}/src" includes="${compsrc.jar.name}"/>
- </quicksbaz>
- <!-- Create the Scala developer docs package -->
- <quicksbaz
- file="${dist.dir}/scala-devel-docs-${version.number}.sbp"
- adfile="${dist.dir}/scala-devel-docs-${version.number}.advert"
- name="scala-devel-docs"
- version="${version.number}"
- desc="The Scala developer documentation. This contains all developer documentation."
- link="${sbaz.universe}/scala-devel-docs-${version.number}.sbp">
- <docset dir="${dist.current.dir}/doc" includes="**/scala/api/**,**/scala/tools/**"/>
- </quicksbaz>
- <!-- Creates the empty umbrella Scala package -->
- <quicksbaz
- file="${dist.dir}/scala-${version.number}.sbp"
- adfile="${dist.dir}/scala-${version.number}.advert"
- name="scala"
- version="${version.number}"
- desc="The base Scala package that contains everything needed to start using Scala."
- depends="scala-library,scala-devel"
- link="${sbaz.universe}/scala-${version.number}.sbp"/>
- <!-- Creates the Scala test package -->
- <quicksbaz
- file="${dist.dir}/scala-test-${version.number}.sbp"
- adfile="${dist.dir}/scala-test-${version.number}.advert"
- name="scala-test"
- version="${version.number}"
- desc="The Scala test package contains everything needed to test Scala."
- link="${sbaz.universe}/scala-test-${version.number}.sbp">
- <binset dir="${basedir}/test"
- includes="clitest,diff/diff.*,diff/lib*.dll,scalatest,scalatest.bat,partest"/>
- <miscset
- dir="${basedir}/test"
- includes="files/**/*.args,files/**/*.check,files/**/*.jar,files/**/*.java,files/**/*.scala,files/cli/**/*.check.*,files/jvm/*.so,files/shootout/*.javaopts,files/shootout/*.runner,files/shootout/*.txt"/>
- <srcset dir="${dist.current.dir}/src" includes="${parsrc.jar.name}"/>
- <libset dir="${dist.current.dir}/lib" includes="${partest.jar.name}"/>
- </quicksbaz>
- <!-- Creates the MSIL package -->
- <quicksbaz
- file="${dist.dir}/scala-msil-${version.number}.sbp"
- adfile="${dist.dir}/scala-msil-${version.number}.advert"
- name="scala-msil"
- version="${version.number}"
- desc="The Scala MSIL package contains everything needed to use Scala on .NET."
- depends="scala-library,scala-devel"
- link="${sbaz.universe}/scala-msil-${version.number}.sbp">
- <binset dir="${quick.dir}/bin" includes="scala*net*"/>
- <libset dir="${quick.dir}/lib" includes="*.dll"/>
- </quicksbaz>
- <!-- Creates the CLDC package -->
-<!--
- <quicksbaz
- file="${dist.dir}/scala-cldc-${version.number}.sbp"
- adfile="${dist.dir}/scala-cldc-${version.number}.advert"
- name="scala-cldc"
- version="${version.number}"
- desc="The Scala CLDC package contains everything needed to use Scala on CLDC devices."
- link="${sbaz.universe}/scala-cldc-${version.number}.sbp">
- <libset dir="${cldc.dir}/lib" includes="*.jar"/>
- </quicksbaz>
--->
- <!-- Creates the Android package -->
- <if><isset property="android.supported"/><then>
- <copy todir="${dist.current.dir}/doc/scala-android/examples">
- <fileset dir="${docs.dir}/android-examples">
- <exclude name="**/R.java"/>
- </fileset>
- </copy>
- <quicksbaz
- file="${dist.dir}/scala-android-${version.number}.sbp"
- adfile="${dist.dir}/scala-android-${version.number}.advert"
- name="scala-android"
- version="${version.number}"
- desc="The Scala Android package contains everything needed to use Scala on Android."
- link="${sbaz.universe}/scala-android-${version.number}.sbp">
- <libset dir="${android.dir}/lib" includes="*.jar"/>
- <docset dir="${dist.current.dir}/doc/scala-android" includes="**"/>
- </quicksbaz>
- </then></if>
- </target>
-
- <target name="build.archive" depends="build.dist">
- <tar
- destfile="${dist.dir}/scala-${version.number}.tgz"
- compression="gzip">
- <tarfileset
- prefix="scala-${version.number}"
- dir="${dist.current.dir}"
- includes="bin/**" mode="755"
- />
- <tarfileset
- prefix="scala-${version.number}"
- dir="${dist.current.dir}"
- excludes="bin/**"
- />
- </tar>
- <checksum
- file="${dist.dir}/scala-${version.number}.tgz"
- forceOverwrite="yes"
- fileext=".md5"/>
- <!-- Create zip archive -->
- <zip
- destfile="${dist.dir}/scala-${version.number}.zip">
- <zipfileset
- prefix="scala-${version.number}"
- dir="${dist.current.dir}"
- />
- </zip>
- <checksum
- file="${dist.dir}/scala-${version.number}.zip"
- forceOverwrite="yes"
- fileext=".md5"/>
- <!-- Create source archive -->
- <copy todir="${dist.dir}/scala-${version.number}">
- <fileset
- dir="${basedir}"
- excludes="build,build/**,dists/**"
- />
- </copy>
- <tar basedir="${dist.dir}"
- destfile="${dist.dir}/scala-${version.number}-sources.tgz"
- compression="gzip"
- includes="scala-${version.number}/**"
- />
- </target>
-
-<!-- ===========================================================================
-CLEAN
-============================================================================ -->
-
- <macrodef name="remove">
- <attribute name="dir"/>
- <sequential>
- <if>
- <available file="@{dir}/is_symlink"/>
- <then>
- <delete includeemptydirs="true" quiet="yes" failonerror="no">
- <fileset dir="@{dir}" includes="**/*"/>
- </delete>
- </then></if>
- <delete dir="@{dir}" includeemptydirs="yes" quiet="yes" failonerror="no"/>
- </sequential>
- </macrodef>
-
- <target name="clean" depends="ant-init" description="Removes QUICK, STRAP and API build products">
- <remove dir="${quick.dir}"/>
- <remove dir="${strap.dir}"/>
- <remove dir="${api.dir}"/>
- </target>
-
- <target name="clean.build" depends="ant-init"
- description="Removes all build products">
- <remove dir="${build.dir}"/>
- </target>
-
- <target name="clean.msil" depends="ant-init" description="Removes all MSIL build products">
- <remove dir="${msil.dir}"/>
- </target>
-
-<!--
- <target name="clean.cldc" depends="ant-init" description="Removes all CLDC build products">
- <remove dir="${cldc.dir}"/>
- </target>
--->
-
- <target name="clean.all" depends="ant-init"
- description="Removes all build products and distributions">
- <remove dir="${build.dir}"/>
- <remove dir="${dist.dir}"/>
- </target>
-
- <target name="clean.unfreeze" depends="init">
- <delete file="${locker.dir}/complete" quiet="yes" failonerror="no"/>
- <remove dir="${quick.dir}"/>
- </target>
-
-</project>
diff --git a/src/jvm14-library/scala/BigDecimal.scala b/src/jvm14-library/scala/BigDecimal.scala
deleted file mode 100644
index 0c9fd0f5fd..0000000000
--- a/src/jvm14-library/scala/BigDecimal.scala
+++ /dev/null
@@ -1,269 +0,0 @@
-/* __ *\
-** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2007-2009, LAMP/EPFL **
-** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
-** /____/\___/_/ |_/____/_/ | | **
-** |/ **
-\* */
-
-// $Id: BigDecimal.scala 15937 2008-08-26 13:48:19Z michelou $
-
-package scala
-
-import java.math.{BigDecimal => BigDec}
-
-/**
- * @author Stephane Micheloud
- * @version 1.0
- */
-object BigDecimal {
-
- @serializable
- object RoundingMode extends Enumeration {
- type RoundingMode = Value
- val ROUND_UP, ROUND_DOWN, ROUND_CEILING, ROUND_FLOOR, ROUND_HALF_UP,
- ROUND_HALF_DOWN, ROUND_HALF_EVEN, ROUND_UNNECESSARY = Value
- }
-
- private val minCached = -512
- private val maxCached = 512
- private lazy val cache = new Array[BigDecimal](maxCached - minCached + 1)
-
- /** Constructs a <code>BigDecimal</code> whose value is equal to that of the
- * specified <code>Integer</code> value.
- *
- * @param i the specified integer value
- * @return the constructed <code>BigDecimal</code>
- */
- def apply(i: Int): BigDecimal =
- if (minCached <= i && i <= maxCached) {
- val offset = i - minCached
- var n = cache(offset)
- if (n eq null) { n = new BigDecimal(BigDec.valueOf(i)); cache(offset) = n }
- n
- } else new BigDecimal(BigDec.valueOf(i))
-
- /** Constructs a <code>BigDecimal</code> whose value is equal to that of the
- * specified long value.
- *
- * @param l the specified long value
- * @return the constructed <code>BigDecimal</code>
- */
- def apply(l: Long): BigDecimal =
- if (minCached <= l && l <= maxCached) apply(l.toInt)
- else new BigDecimal(BigDec.valueOf(l))
-
- /** Constructs a <code>BigDecimal</code> whose value is equal to that of the
- * specified double value.
- *
- * @param d the specified <code>Double</code> value
- * @return the constructed <code>BigDecimal</code>
- */
- def apply(d: Double): BigDecimal =
- new BigDecimal(new BigDec(d))
-
- /** Translates a character array representation of a <code>BigDecimal</code>
- * into a <code>BigDecimal</code>.
- */
- def apply(x: Array[Char]): BigDecimal =
- new BigDecimal(new BigDec(x.toString))
-
- /** Translates the decimal String representation of a <code>BigDecimal</code>
- * into a <code>BigDecimal</code>.
- */
- def apply(x: String): BigDecimal =
- new BigDecimal(new BigDec(x))
-
- /** Constructs a <code>BigDecimal</code> whose value is equal to that of the
- * specified <code>BigInt</code> value.
- *
- * @param x the specified <code>BigInt</code> value
- * @return the constructed <code>BigDecimal</code>
- */
- def apply(x: BigInt): BigDecimal =
- new BigDecimal(new BigDec(x.bigInteger))
-
- /** Implicit conversion from <code>Int</code> to <code>BigDecimal</code>. */
- implicit def int2bigDecimal(i: Int): BigDecimal = apply(i)
-
- /** Implicit conversion from <code>Long</code> to <code>BigDecimal</code>. */
- implicit def long2bigDecimal(l: Long): BigDecimal = apply(l)
-
- /** Implicit conversion from <code>Double</code> to <code>BigDecimal</code>. */
- implicit def double2bigDecimal(d: Double): BigDecimal = apply(d)
-
- /** Implicit conversion from BigDecimal to <code>Ordered</code>. */
- implicit def bigDecimal2ordered(x: BigDecimal): Ordered[BigDecimal] =
- new Ordered[BigDecimal] with Proxy {
- def self: Any = x
- def compare(y: BigDecimal): Int = x.bigDecimal.compareTo(y.bigDecimal)
- }
-}
-
-/**
- * @author Stephane Micheloud
- * @version 1.0
- */
-@serializable
-class BigDecimal(val bigDecimal: BigDec) extends java.lang.Number {
- import BigDecimal.RoundingMode._
-
- /** Returns the hash code for this BigDecimal. */
- override def hashCode(): Int = this.bigDecimal.hashCode()
-
- /** Compares this BigDecimal with the specified value for equality.
- */
- override def equals(that: Any): Boolean = that match {
- case that: BigDecimal => this equals that
- case that: java.lang.Double => this.bigDecimal.doubleValue == that.doubleValue
- case that: java.lang.Float => this.bigDecimal.floatValue == that.floatValue
- case that: java.lang.Number => this equals BigDecimal(that.longValue)
- case that: java.lang.Character => this equals BigDecimal(that.charValue.asInstanceOf[Int])
- case _ => false
- }
-
- /** Compares this BigDecimal with the specified BigDecimal for equality.
- */
- def equals (that: BigDecimal): Boolean =
- this.bigDecimal.compareTo(that.bigDecimal) == 0
-
- /** Compares this BigDecimal with the specified BigDecimal
- */
- def compare (that: BigDecimal): Int = this.bigDecimal.compareTo(that.bigDecimal)
-
- /** Less-than-or-equals comparison of BigDecimals
- */
- def <= (that: BigDecimal): Boolean = this.bigDecimal.compareTo(that.bigDecimal) <= 0
-
- /** Greater-than-or-equals comparison of BigDecimals
- */
- def >= (that: BigDecimal): Boolean = this.bigDecimal.compareTo(that.bigDecimal) >= 0
-
- /** Less-than of BigDecimals
- */
- def < (that: BigDecimal): Boolean = this.bigDecimal.compareTo(that.bigDecimal) < 0
-
- /** Greater-than comparison of BigDecimals
- */
- def > (that: BigDecimal): Boolean = this.bigDecimal.compareTo(that.bigDecimal) > 0
-
- /** Addition of BigDecimals
- */
- def + (that: BigDecimal): BigDecimal =
- new BigDecimal(this.bigDecimal.add(that.bigDecimal))
-
- /** Subtraction of BigDecimals
- */
- def - (that: BigDecimal): BigDecimal =
- new BigDecimal(this.bigDecimal.subtract(that.bigDecimal))
-
- /** Multiplication of BigDecimals
- */
- def * (that: BigDecimal): BigDecimal =
- new BigDecimal(this.bigDecimal.multiply(that.bigDecimal))
-
- /** Division of BigDecimals. Default rounding mode is <code>ROUND_HALF_UP</code>
- * (same value as <code>MathContext.DEFAULT_ROUNDINGMODE</code> (private)
- * in Java 1.5 or newer).
- */
- def / (that: BigDecimal): BigDecimal =
- new BigDecimal(this.bigDecimal.divide(that.bigDecimal, BigDec.ROUND_HALF_UP))
-
- /** Returns the minimum of this and that
- */
- def min (that: BigDecimal): BigDecimal =
- new BigDecimal(this.bigDecimal.min(that.bigDecimal))
-
- /** Returns the maximum of this and that
- */
- def max (that: BigDecimal): BigDecimal =
- new BigDecimal(this.bigDecimal.max(that.bigDecimal))
-
- /** Returns a BigDecimal whose value is the negation of this BigDecimal
- */
- def unary_- : BigDecimal = new BigDecimal(this.bigDecimal.negate())
-
- /** Returns the absolute value of this BigDecimal
- */
- def abs: BigDecimal = new BigDecimal(this.bigDecimal.abs())
-
- /** Returns the sign of this BigDecimal, i.e.
- * -1 if it is less than 0,
- * +1 if it is greater than 0
- * 0 if it is equal to 0
- */
- def signum: Int = this.bigDecimal.signum()
-
- /** Returns the scale of this <code>BigDecimal</code>.
- */
- def scale: Int = this.bigDecimal.scale()
-
- /** Returns a <code>BigDecimal</code> whose scale is the specified value, and whose value is
- * numerically equal to this BigDecimal's.
- */
- def setScale(scale: Int): BigDecimal =
- new BigDecimal(this.bigDecimal setScale scale)
-
- def setScale(scale: Int, mode: RoundingMode): BigDecimal =
- new BigDecimal(this.bigDecimal.setScale(scale, mode.id))
-
- /** Converts this BigDecimal to a <tt>byte</tt>.
- * If the BigDecimal is too big to fit in a byte, only the low-order 8 bits are returned.
- * Note that this conversion can lose information about the overall magnitude of the
- * BigDecimal value as well as return a result with the opposite sign.
- */
- override def byteValue = intValue.toByte
-
- /** Converts this BigDecimal to a <tt>short</tt>.
- * If the BigDecimal is too big to fit in a byte, only the low-order 16 bits are returned.
- * Note that this conversion can lose information about the overall magnitude of the
- * BigDecimal value as well as return a result with the opposite sign.
- */
- override def shortValue = intValue.toShort
-
- /** Converts this BigDecimal to a <tt>char</tt>.
- * If the BigDecimal is too big to fit in a char, only the low-order 16 bits are returned.
- * Note that this conversion can lose information about the overall magnitude of the
- * BigDecimal value and that it always returns a positive result.
- */
- def charValue = intValue.toChar
-
- /** Converts this BigDecimal to an <tt>int</tt>.
- * If the BigDecimal is too big to fit in a char, only the low-order 32 bits
- * are returned. Note that this conversion can lose information about the
- * overall magnitude of the BigDecimal value as well as return a result with
- * the opposite sign.
- */
- def intValue = this.bigDecimal.intValue
-
- /** Converts this BigDecimal to a <tt>Long</tt>.
- * If the BigDecimal is too big to fit in a char, only the low-order 64 bits
- * are returned. Note that this conversion can lose information about the
- * overall magnitude of the BigDecimal value as well as return a result with
- * the opposite sign.
- */
- def longValue = this.bigDecimal.longValue
-
- /** Converts this BigDecimal to a <tt>float</tt>.
- * if this BigDecimal has too great a magnitude to represent as a float,
- * it will be converted to <code>Float.NEGATIVE_INFINITY</code> or
- * <code>Float.POSITIVE_INFINITY</code> as appropriate.
- */
- def floatValue = this.bigDecimal.floatValue
-
- /** Converts this BigDecimal to a <tt>Double</tt>.
- * if this BigDecimal has too great a magnitude to represent as a float,
- * it will be converted to <code>Float.NEGATIVE_INFINITY</code> or
- * <code>Float.POSITIVE_INFINITY</code> as appropriate.
- */
- def doubleValue = this.bigDecimal.doubleValue
-
- /** Converts this <code>BigDecimal</code> to a BigInteger.
- */
- def toBigInt(): BigInt = new BigInt(this.bigDecimal.toBigInteger())
-
- /** Returns the decimal String representation of this BigDecimal.
- */
- override def toString(): String = this.bigDecimal.toString()
-
-}
diff --git a/src/jvm14-library/scala/runtime/RichString.scala b/src/jvm14-library/scala/runtime/RichString.scala
deleted file mode 100644
index ada259931d..0000000000
--- a/src/jvm14-library/scala/runtime/RichString.scala
+++ /dev/null
@@ -1,266 +0,0 @@
-/* __ *\
-** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2002-2009, LAMP/EPFL **
-** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
-** /____/\___/_/ |_/____/_/ | | **
-** |/ **
-\* */
-
-// $Id$
-
-
-package scala.runtime
-
-import Predef._
-import scala.util.matching.Regex
-
-final class RichString(val self: String) extends Proxy with RandomAccessSeq[Char] with Ordered[String] {
- import RichString._
- override def apply(n: Int) = self charAt n
- override def length = self.length
- override def toString = self
- override def mkString = self
-
- override def slice(from: Int, until: Int): RichString = {
- val len = self.length
- new RichString(
- if (from >= until || from >= len)
- ""
- else {
- val from0 = if (from < 0) 0 else from
- val until0 = if (until > len) len else until
- self.substring(from0, until0)
- }
- )
- }
-
- //override def ++ [B >: A](that: Iterable[B]): Seq[B] = {
- override def ++[B >: Char](that: Iterable[B]): RandomAccessSeq[B] = that match {
- case that: RichString => new RichString(self + that.self)
- case that => super.++(that)
- }
-
- override def take(until: Int): RichString = slice(0, until)
-
- override def drop(from: Int): RichString = slice(from, self.length)
-
- override def startsWith[B](that: Seq[B]) = that match {
- case that: RichString => self startsWith that.self
- case that => super.startsWith(that)
- }
-
- override def endsWith[B](that: Seq[B]) = that match {
- case that: RichString => self endsWith that.self
- case that => super.endsWith(that)
- }
-
- override def indexOf[B](that: Seq[B]) = that match {
- case that: RichString => self indexOf that.self
- case that => super.indexOf(that)
- }
-
- override def containsSlice[B](that: Seq[B]) = that match {
- case that: RichString => self contains that.self
- case that => super.containsSlice(that)
- }
-
- def contains(arg: String) : Boolean = {
- self.matches(""".*\Q"""+arg+"""\E.*""")
- }
-
- override def reverse: RichString = {
- val buf = new StringBuilder
- var i = self.length - 1
- while (i >= 0) {
- buf append (self charAt i)
- i -= 1
- }
- new RichString(buf.toString)
- }
-
- /** return n times the current string
- */
- def * (n: Int): String = {
- val buf = new StringBuilder
- for (i <- 0 until n) buf append self
- buf.toString
- }
-
- override def compare(other: String) = self compareTo other
-
- private def isLineBreak(c: Char) = c == LF || c == FF
-
- /** <p>
- * Strip trailing line end character from this string if it has one.
- * A line end character is one of
- * </p>
- * <ul style="list-style-type: none;">
- * <li>LF - line feed (0x0A hex)</li>
- * <li>FF - form feed (0x0C hex)</li>
- * </ul>
- * <p>
- * If a line feed character LF is preceded by a carriage return CR
- * (0x0D hex), the CR character is also stripped (Windows convention).
- * </p>
- */
- def stripLineEnd: String = {
- val len = self.length
- if (len == 0) self
- else {
- val last = apply(len - 1)
- if (isLineBreak(last))
- self.substring(0, if (last == LF && len >= 2 && apply(len - 2) == CR) len - 2 else len - 1)
- else
- self
- }
- }
-
- /** <p>
- * Return all lines in this string in an iterator, including trailing
- * line end characters.
- * </p>
- * <p>
- * The number of strings returned is one greater than the number of line
- * end characters in this string. For an empty string, a single empty
- * line is returned. A line end character is one of
- * </p>
- * <ul style="list-style-type: none;">
- * <li>LF - line feed (0x0A hex)</li>
- * <li>FF - form feed (0x0C hex)</li>
- * </ul>
- */
- def linesWithSeparators = new Iterator[String] {
- val len = self.length
- var index = 0
- def hasNext: Boolean = index < len
- def next(): String = {
- if (index >= len) throw new NoSuchElementException("next on empty iterator")
- val start = index
- while (index < len && !isLineBreak(apply(index))) index += 1
- index += 1
- self.substring(start, index min len)
- }
- }
-
- /** Return all lines in this string in an iterator, excluding trailing line
- * end characters, i.e. apply <code>.stripLineEnd</code> to all lines
- * returned by <code>linesWithSeparators</code>.
- */
- def lines: Iterator[String] =
- linesWithSeparators map (line => new RichString(line).stripLineEnd)
-
- /** Returns this string with first character converted to upper case */
- def capitalize: String =
- if (self == null) null
- else if (self.length == 0) ""
- else {
- val chars = self.toCharArray
- chars(0) = chars(0).toUpperCase
- new String(chars)
- }
-
- /** <p>
- * For every line in this string:
- * </p>
- * <blockquote>
- * Strip a leading prefix consisting of blanks or control characters
- * followed by <code>marginChar</code> from the line.
- * </blockquote>
- */
- def stripMargin(marginChar: Char): String = {
- val buf = new StringBuilder
- for (line <- linesWithSeparators) {
- val len = line.length
- var index = 0
- while (index < len && line.charAt(index) <= ' ') index += 1
- buf append
- (if (index < len && line.charAt(index) == marginChar) line.substring(index + 1) else line)
- }
- buf.toString
- }
-
- /** <p>
- * For every line in this string:
- * </p>
- * <blockquote>
- * Strip a leading prefix consisting of blanks or control characters
- * followed by <code>|</code> from the line.
- * </blockquote>
- */
- def stripMargin: String = stripMargin('|')
-
- // NB. "\\Q" + '\\' + "\\E" works on Java 1.5 and newer, but not on Java 1.4
- private def escape(ch: Char): String = ch match {
- case '\\' => "\\\\"
- case _ => "\\Q"+ch+"\\E"
- }
-
- @throws(classOf[java.util.regex.PatternSyntaxException])
- def split(separator: Char): Array[String] = self.split(escape(separator))
-
- @throws(classOf[java.util.regex.PatternSyntaxException])
- def split(separators: Array[Char]): Array[String] = {
- val re = separators.foldLeft("[")(_+escape(_)) + "]"
- self.split(re)
- }
-
- /** You can follow a string with `.r', turning
- * it into a Regex. E.g.
- *
- * """A\w*""".r is the regular expression for identifiers starting with `A'.
- */
- def r: Regex = new Regex(self)
-
- def toBoolean: Boolean = parseBoolean(self)
- def toByte: Byte = java.lang.Byte.parseByte(self)
- def toShort: Short = java.lang.Short.parseShort(self)
- def toInt: Int = java.lang.Integer.parseInt(self)
- def toLong: Long = java.lang.Long.parseLong(self)
- def toFloat: Float = java.lang.Float.parseFloat(self)
- def toDouble: Double = java.lang.Double.parseDouble(self)
-
- def toArray: Array[Char] = {
- val result = new Array[Char](length)
- self.getChars(0, length, result, 0)
- result
- }
-
-
- /** <p>
- * Uses the underlying string as a pattern (in a fashion similar to
- * printf in C), and uses the supplied arguments to fill in the
- * holes. Only works on Java 1.5 or higher!
- * </p>
- * <p>
- * The interpretation of the formatting patterns is described in
- * <a href="" target="contentFrame" class="java/util/Formatter">
- * <code>java.util.Formatter</code></a>.
- * </p>
- *
- * @param args the arguments used to instantiating the pattern.
- * @throws java.lang.IllegalArgumentException
- */
- def format(args : Any*) : String = {
- val m = classOf[String].getDeclaredMethod("format", classOf[String], classOf[Array[Object]])
- m.invoke(null, self,
- args.asInstanceOf[scala.runtime.BoxedObjectArray].
- unbox(args.getClass).asInstanceOf[Array[Object]]).asInstanceOf[String]
- }
-}
-
-object RichString {
- // just statics for rich string.
- private final val LF: Char = 0x0A
- private final val FF: Char = 0x0C
- private final val CR: Char = 0x0D
- private final val SU: Char = 0x1A
-
- private def parseBoolean(s: String): Boolean =
- if (s != null) s.toLowerCase match {
- case "true" => true
- case "false" => false
- case _ => throw new NumberFormatException("For input string: \""+s+"\"")
- }
- else
- throw new NumberFormatException("For input string: \"null\"")
-}
diff --git a/src/jvm14-library/scala/util/parsing/json/JSON.scala b/src/jvm14-library/scala/util/parsing/json/JSON.scala
deleted file mode 100644
index b03149cde1..0000000000
--- a/src/jvm14-library/scala/util/parsing/json/JSON.scala
+++ /dev/null
@@ -1,95 +0,0 @@
-/* __ *\
-** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2006-2009, LAMP/EPFL **
-** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
-** /____/\___/_/ |_/____/_/ | | **
-** |/ **
-\* */
-
-// $Id: JSON.scala 15746 2008-08-11 17:33:54Z dchenbecker $
-
-
-package scala.util.parsing.json
-
-/**
- * This object provides a simple interface to the JSON parser class. The default conversion
- * for numerics is into a double. If you wish to override this behavior at the global level,
- * you can set the globalNumberParser property to your own (String => Any) function. If you only
- * want to override at the per-thread level then you can set the perThreadNumberParser property to your
- * function. For example:
- *
- * <pre>
- * val myConversionFunc = {input : String => BigDecimal(input)}
- *
- * // Global override
- * JSON.globalNumberParser = myConversionFunc
- *
- * // Per-thread override
- * JSON.perThreadNumberParser = myConversionFunc
- * </pre>
- *
- * @author Derek Chen-Becker <"java"+@+"chen-becker"+"."+"org">
- */
-object JSON extends Parser {
-
- /**
- * Parse the given JSON string and return a list of elements. If the
- * string is a JSON object it will be a list of pairs. If it's a JSON
- * array it will be be a list of individual elements.
- *
- * @param input the given JSON string.
- * @return an optional list of of elements.
- */
- def parse(input: String): Option[List[Any]] =
- phrase(root)(new lexical.Scanner(input)) match {
- case Success(result, _) => Some(result)
- case _ => None
- }
-
- /**
- * Parse the given JSON string and return either a <code>List[Any]</code>
- * if the JSON string specifies an <code>Array</code>, or a
- * <code>Map[String,Any]</code> if the JSON string specifies an object.
- *
- * @param input the given JSON string.
- * @return an optional list or map.
- */
- def parseFull(input: String): Option[Any] =
- parse(input) match {
- case Some(data) => Some(resolveType(data))
- case None => None
- }
-
- /**
- * A utility method to resolve a parsed JSON list into objects or
- * arrays. See the parse method for details.
- */
- def resolveType(input: List[_]): Any = {
- var objMap = Map[String, Any]()
-
- if (input.forall {
- case (key: String, value: List[_]) =>
- objMap += (key -> resolveType(value))
- true
- case (key : String, value : Any) =>
- objMap += (key -> value)
- true
- case _ => false
- }) objMap
- else
- input
- }
-
- /**
- * The global (VM) default function for converting a string to a numeric value.
- */
- def globalNumberParser_=(f: NumericParser) { defaultNumberParser = f }
- def globalNumberParser : NumericParser = defaultNumberParser
-
- /**
- * Defines the function used to convert a numeric string literal into a numeric format on a per-thread
- * basis. Use globalNumberParser for a global override
- */
- def perThreadNumberParser_=(f : NumericParser) { numberParser.set(f) }
- def perThreadNumberParser : NumericParser = numberParser.get().asInstanceOf[NumericParser] // cast for jvm 1.4
-}
diff --git a/src/jvm14-library/scala/util/parsing/json/Parser.scala b/src/jvm14-library/scala/util/parsing/json/Parser.scala
deleted file mode 100644
index 1f024d16ea..0000000000
--- a/src/jvm14-library/scala/util/parsing/json/Parser.scala
+++ /dev/null
@@ -1,50 +0,0 @@
-/* __ *\
-** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2006-2009, LAMP/EPFL **
-** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
-** /____/\___/_/ |_/____/_/ | | **
-** |/ **
-\* */
-
-// $Id: Parser.scala 15746 2008-08-11 17:33:54Z dchenbecker $
-
-
-package scala.util.parsing.json
-
-import scala.util.parsing.combinator._
-import scala.util.parsing.combinator.syntactical._
-import scala.util.parsing.combinator.lexical._
-
-/**
- * @author Derek Chen-Becker <"java"+@+"chen-becker"+"."+"org">
- */
-class Parser extends StdTokenParsers with ImplicitConversions {
- // Fill in abstract defs
- type Tokens = Lexer
- val lexical = new Tokens
-
- // Configure lexical parsing
- lexical.reserved ++= List("true", "false", "null")
- lexical.delimiters ++= List("{", "}", "[", "]", ":", ",")
-
- /** Type signature for functions that can parse numeric literals */
- type NumericParser = String => Any
-
- // Global default number parsing function
- protected var defaultNumberParser : NumericParser = {_.toDouble}
-
- // Per-thread default number parsing function
- protected val numberParser = new ThreadLocal[NumericParser]() {
- override def initialValue() = defaultNumberParser
- }
-
- // Define the grammar
- def root = jsonObj | jsonArray
- def jsonObj = "{" ~> repsep(objEntry, ",") <~ "}"
- def jsonArray = "[" ~> repsep(value, ",") <~ "]"
- def objEntry = stringVal ~ (":" ~> value) ^^ { case x ~ y => (x, y) }
- def value: Parser[Any] = (jsonObj | jsonArray | number | "true" ^^^ true | "false" ^^^ false | "null" ^^^ null | stringVal)
- def stringVal = accept("string", { case lexical.StringLit(n) => n} )
- def number = accept("number", { case lexical.NumericLit(n) => numberParser.get.asInstanceOf[NumericParser].apply(n)} ) // cast for jvm 1.4
-}
-