/[cvs]/jsr166/build.xml
ViewVC logotype

Diff of /jsr166/build.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.229 by jsr166, Tue Dec 20 04:18:46 2016 UTC revision 1.241 by jsr166, Mon Mar 27 02:11:26 2017 UTC
# Line 18  Line 18 
18    itself.  Because the JDK version matters and because different    itself.  Because the JDK version matters and because different
19    targets require different JDKs, we assume that users have created a    targets require different JDKs, we assume that users have created a
20    hierarchy containing:    hierarchy containing:
   $HOME/jdk/jdk6  
   $HOME/jdk/jdk7  
21    $HOME/jdk/jdk8    $HOME/jdk/jdk8
22    $HOME/jdk/jdk9    $HOME/jdk/jdk9
23      $HOME/jdk/jdk10
24    where each of the above is a JDK or a symlink to same, and    where each of the above is a JDK or a symlink to same, and
   $HOME/jdk/src/jdk6  
   $HOME/jdk/src/jdk7  
25    $HOME/jdk/src/jdk8    $HOME/jdk/src/jdk8
26    $HOME/jdk/src/jdk9    $HOME/jdk/src/jdk9
27      $HOME/jdk/src/jdk10
28    where each of the above is a complete JDK source tree    where each of the above is a complete JDK source tree
29    (e.g. mercurial forest) or a symlink to same.    (e.g. mercurial forest) or a symlink to same.
30    
31    Alternatively, define ant variables thus:    Alternatively, define ant variables thus:
32    ant -Djdk$N.home=... -Djdk$N.src.home=...    ant -Djdk$N.home=... -Djdk$N.src.home=...
33    for $N in 6 7 8 9 ...    for $N in 8 9 10 ...
34    
35    As of 2016-03, the sources in src/main are for jdk9+ only.  The "docs"    As of 2016-03, the sources in src/main are for jdk9+ only.
   target is currently broken.  
36  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
37    </description>    </description>
38    
# Line 134  Line 131 
131    <defjdklocations v="7"/>    <defjdklocations v="7"/>
132    <defjdklocations v="8"/>    <defjdklocations v="8"/>
133    <defjdklocations v="9"/>    <defjdklocations v="9"/>
134      <defjdklocations v="10"/>
135    
136    <!-- Source locations -->    <!-- Source locations -->
137    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
# Line 143  Line 141 
141    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
142    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
143    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>
144      <property name="jtreg10.src.dir"      location="${test.src.dir}/jtreg"/>
145    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>
146    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
147    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
# Line 233  Line 232 
232        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
233      </condition>      </condition>
234    
235        <local name="use-doclint"/>
236        <condition property="use-doclint">
237          <not> <equals arg1="@{target}" arg2="7"/> </not>
238        </condition>
239    
240      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
241    
242      <javac srcdir="@{tck.src.dir}"      <javac srcdir="@{tck.src.dir}"
# Line 252  Line 256 
256        <include name="*.java"/>        <include name="*.java"/>
257        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
258        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
259          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
260        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
261        <compilerarg line="--patch-module java.base=@{classes}" if:set="modules"/>        <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
262        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
263        <javac-elements/>        <javac-elements/>
264    
# Line 264  Line 269 
269            jvm="${java@{target}}"            jvm="${java@{target}}"
270            fork="true">            fork="true">
271          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
272          <jvmarg line="--patch-module java.base=@{classes}" if:set="modules"/>          <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
273          <jvmarg line="--add-opens java.base/java.util=ALL-UNNAMED" if:set="modules"/>          <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
274          <jvmarg line="--add-opens java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>          <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
275          <jvmarg line="--add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>          <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
276          <jvmarg line="--add-opens java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>          <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
277            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
278          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
279          <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->          <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
280          <jvmarg line="${vmoptions}" if:set="vmoptions"/>          <jvmarg line="${vmoptions}" if:set="vmoptions"/>
# Line 364  Line 370 
370    <property name="build.main.javac" value="${javac9}"/>    <property name="build.main.javac" value="${javac9}"/>
371    
372    <target name="dists"    <target name="dists"
373            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
374            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
375              <!--
376                  depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
377              -->
378    
379    <target name="compile"    <target name="compile"
380            depends="configure-compiler"            depends="configure-compiler"
# Line 398  Line 407 
407             fork="true">             fork="true">
408    
409        <include name="**/*.java"/>        <include name="**/*.java"/>
410        <compilerarg value="-Xmodule:java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}" if:set="modules"/>
411        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
412        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
413        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
414        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
415        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
416        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
417        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
418    
# Line 454  Line 463 
463        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java9.docroot.url}"/>
464        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
465        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
466        <arg value="-Xmodule:java.base"/>        <arg value="--patch-module=java.base=${src.dir}"/>
467        <arg value="-tag"/>        <arg value="-tag"/>
468        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
469  <!-- @apiNote currently unused -->  <!-- @apiNote currently unused -->
# Line 502  Line 511 
511    
512    <target name="clean"    <target name="clean"
513            description="Removes all build products">            description="Removes all build products">
   
514      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
515    </target>    </target>
516    
517    
518    <target name="dist-clean"    <target name="dist-clean"
519            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
520      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
521      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
522    </target>    </target>
523    
524    
# Line 534  Line 539 
539      <run-tck-tests      <run-tck-tests
540        target="${build.main.java.version}"        target="${build.main.java.version}"
541        workdir="${build.dir}"        workdir="${build.dir}"
542        classes="${product.jar}"/>        classes="${product.jar}">
543          <javac-elements>
544            <compilerarg value="-Werror"/>
545          </javac-elements>
546        </run-tck-tests>
547    </target>    </target>
548    
549    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
# Line 569  Line 578 
578    
579    <target name="test"    <target name="test"
580            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
581            description="Runs tck and jtreg tests for src/main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
582    
583  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
584    
# Line 602  Line 610 
610    
611    <target name="configure-compiler">    <target name="configure-compiler">
612      <fail message="ant version too old">      <fail message="ant version too old">
613        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
614      </fail>      </fail>
615    
616      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 650  Line 656 
656      <java classname="ALoops" fork="true">      <java classname="ALoops" fork="true">
657        <classpath refid="loops.classpath"/>        <classpath refid="loops.classpath"/>
658      </java>      </java>
   
659    </target>    </target>
660    
661    
662    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
663            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
664    
665      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
666    
# Line 675  Line 680 
680        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
681        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
682        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
683      </javac>      </javac>
   
684    </target>    </target>
685    
686    
# Line 703  Line 706 
706             encoding="ASCII"             encoding="ASCII"
707             executable="${javac8}"             executable="${javac8}"
708             fork="true">             fork="true">
   
709        <include name="**/*.java"/>        <include name="**/*.java"/>
710        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
711        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
712        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
713        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
714        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
715      </javac>      </javac>
716    </target>    </target>
717    
# Line 734  Line 735 
735             encoding="ASCII"             encoding="ASCII"
736             executable="${javac8}"             executable="${javac8}"
737             fork="true">             fork="true">
   
738        <include name="**/*.java"/>        <include name="**/*.java"/>
739        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
740        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
741        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
742        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
743        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
744      </javac>      </javac>
745    </target>    </target>
746    
# Line 757  Line 756 
756          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
757        </manifest>        </manifest>
758      </jar>      </jar>
   
759    </target>    </target>
760    
761    
# Line 773  Line 771 
771          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
772          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
773          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
774            <compilerarg value="-Werror"/>
775        </javac-elements>        </javac-elements>
776      </run-tck-tests>      </run-tck-tests>
777    </target>    </target>
# Line 790  Line 789 
789    
790    <target name="4jdk8-test"    <target name="4jdk8-test"
791            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
792            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
793    
794    
795    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 834  Line 832 
832    
833    <target name="4jdk8clean"    <target name="4jdk8clean"
834            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
835      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
836    </target>    </target>
837    
838    
# Line 852  Line 848 
848    </target>    </target>
849    
850    
851      <!-- jsr166 4jdk7 (no longer maintained) -->
852    
853    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
854      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
855    
856      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 882  Line 874 
874        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
875        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
876        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
877      </javac>      </javac>
878    </target>    </target>
879    
880    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
881      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
882    
883      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 913  Line 901 
901        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
902        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
903        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
904      </javac>      </javac>
905    </target>    </target>
906    
907      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
908      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
909        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
910        <manifest>        <manifest>
# Line 929  Line 912 
912          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
913        </manifest>        </manifest>
914      </jar>      </jar>
   
915    </target>    </target>
916    
917      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
918      <run-tck-tests      <run-tck-tests
919        target="7"        target="7"
920        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 954  Line 932 
932          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
933          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
934          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
935            <compilerarg value="-Werror"/>
936        </javac-elements>        </javac-elements>
937      </run-tck-tests>      </run-tck-tests>
938    </target>    </target>
939    
   
940    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
941    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
942    
943      <junit printsummary="true"      <junit printsummary="true"
944             showoutput="true"             showoutput="true"
# Line 983  Line 960 
960    
961        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
962        </test>        </test>
   
963      </junit>      </junit>
964    </target>    </target>
965    
966    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
967      <run-jtreg-tests      <run-jtreg-tests
968         target="7"         target="7"
969         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
970         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
971    </target>    </target>
972    
973      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
974    
975    <target name="4jdk7-test"    <target name="4jdk7docs">
           depends="4jdk7-tck, 4jdk7-jtreg"  
           description="Runs tck and jtreg tests for jsr166-4jdk7">  
   </target>  
   
   
   <target name="4jdk7docs"  
           description="Builds javadocs for src/jdk7 to dist dir">  
   
976      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
977      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
978    
# Line 1026  Line 993 
993      </javadoc>      </javadoc>
994    </target>    </target>
995    
996      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
997    
998    <target name="4jdk7dist"    <target name="4jdk7clean">
           depends="4jdk7dist-jar, 4jdk7dist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="4jdk7clean"  
           description="Removes all 4jdk7 build products">  
   
999      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1000    </target>    </target>
1001    
1002      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1003      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1004    </target>    </target>
1005    
1006      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1007      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1008    </target>    </target>
1009    
1010    
1011    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1012    
1013      <target name="jsr166xcompile" depends="configure-compiler">
1014      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1015    
1016      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1074  Line 1027 
1027             encoding="ASCII"             encoding="ASCII"
1028             executable="${javac7}"             executable="${javac7}"
1029             fork="true">             fork="true">
   
1030        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1031        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1032        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1033        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1034        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1035      </javac>      </javac>
1036    </target>    </target>
1037    
1038      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1039      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1040        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1041        <manifest>        <manifest>
# Line 1096  Line 1043 
1043          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1044        </manifest>        </manifest>
1045      </jar>      </jar>
   
1046    </target>    </target>
1047    
1048      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1049      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1050      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1051    
# Line 1117  Line 1060 
1060               failonerror = "true">               failonerror = "true">
1061        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1062        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1063      </javadoc>      </javadoc>
1064    </target>    </target>
1065    
1066      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1067    
1068    <target name="jsr166xdist"    <target name="jsr166xclean">
           depends="jsr166xdist-jar, jsr166xdist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="jsr166xclean"  
           description="Removes all jsr166x build products">  
   
1069      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1070    </target>    </target>
1071    
1072      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1073      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1074    </target>    </target>
1075    
1076    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1077      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1078    </target>    </target>
1079    
   <!-- jsr166y -->  
1080    
1081      <!-- jsr166y (no longer maintained) -->
1082    
1083    <target name="jsr166ycompile"    <target name="jsr166ycompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
   
1084      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1085    
1086      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1174  Line 1103 
1103        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1104        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1105        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1106      </javac>      </javac>
1107    </target>    </target>
1108    
1109      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1110      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1111        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1112        <manifest>        <manifest>
# Line 1190  Line 1114 
1114          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1115        </manifest>        </manifest>
1116      </jar>      </jar>
   
1117    </target>    </target>
1118    
1119      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1120      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1121      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1122    
# Line 1211  Line 1131 
1131               failonerror = "true">               failonerror = "true">
1132        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1133        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1134      </javadoc>      </javadoc>
1135    </target>    </target>
1136    
1137      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1138    
1139    <target name="jsr166ydist"    <target name="jsr166yclean">
           depends="jsr166ydist-jar, jsr166ydist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="jsr166yclean"  
           description="Removes all jsr166y build products">  
   
1140      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1141    </target>    </target>
1142    
1143      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1144      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1145    </target>    </target>
1146    
1147    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1148      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1149    </target>    </target>
1150    
1151    
1152    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1153    
1154      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1155      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1156    
1157      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1269  Line 1174 
1174        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1175        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1176        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1177      </javac>      </javac>
1178    </target>    </target>
1179    
1180      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1181      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1182        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1183        <manifest>        <manifest>
# Line 1285  Line 1185 
1185          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1186        </manifest>        </manifest>
1187      </jar>      </jar>
   
1188    </target>    </target>
1189    
1190      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1191      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1192      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1193    
# Line 1305  Line 1201 
1201               executable="${javadoc7}">               executable="${javadoc7}">
1202        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1203        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1204      </javadoc>      </javadoc>
1205    </target>    </target>
1206    
1207      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1208    
1209    <target name="extra166ydist"    <target name="extra166yclean">
           depends="extra166ydist-jar, extra166ydist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="extra166yclean"  
           description="Removes all extra166y build products">  
   
1210      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1211    </target>    </target>
1212    
1213      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1214      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1215    </target>    </target>
1216    
1217    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1218      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1219    </target>    </target>
1220    
1221    <!-- jsr166e -->  
1222      <!-- jsr166e (no longer maintained) -->
1223    
1224    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1225    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1226    
1227    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1228      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1229    
1230      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1362  Line 1245 
1245        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1246        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1247        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1248      </javac>      </javac>
1249    </target>    </target>
1250    
   <!-- jsr166e: find doclint errors -->  
1251    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1252      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1253    
1254      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1390  Line 1270 
1270        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1271        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1272        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1273      </javac>      </javac>
1274    </target>    </target>
1275    
1276      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1277      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1278        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1279        <manifest>        <manifest>
# Line 1406  Line 1281 
1281          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1282        </manifest>        </manifest>
1283      </jar>      </jar>
   
1284    </target>    </target>
1285    
1286      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1287      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1288      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1289    
# Line 1426  Line 1297 
1297               failonerror = "true">               failonerror = "true">
1298        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1299        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1300      </javadoc>      </javadoc>
1301    </target>    </target>
1302    
1303      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1304      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1305      <run-tck-tests      <run-tck-tests
1306        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1307        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1443  Line 1309 
1309        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1310    </target>    </target>
1311    
1312    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1313    
1314  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1315  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1465  Line 1330 
1330      </antcall>      </antcall>
1331    </target>    </target>
1332    
1333      <target name="jsr166e-test" depends="jsr166e-tck"/>
1334    
1335    <target name="jsr166e-test"    <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/>
           depends="jsr166e-tck"  
           description="Runs all tests for jsr166e">  
   </target>  
   
   <target name="jsr166edist"  
           depends="jsr166edist-jar, jsr166edist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
1336    
1337    <target name="jsr166eclean"    <target name="jsr166eclean">
           description="Removes all jsr166e build products">  
1338      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1339    </target>    </target>
1340    
   
1341    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1342            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1343      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1344    </target>    </target>
1345    
1346    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1347      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1348    </target>    </target>
1349    
# Line 1508  Line 1363 
1363      </antcall>      </antcall>
1364    </target>    </target>
1365    
1366    
1367    <!-- ==============================================================
1368      Experimental errorprone support - http://errorprone.info
1369      You may need to bring your own errorprone jar.
1370    =================================================================== -->
1371      <target name="errorprone"
1372              depends="clean, configure-compiler"
1373              description="Run errorprone over jsr166 source code (experimental)">
1374    
1375        <local name="destdir"/>
1376        <property name="destdir" value="${build.classes.dir}/java.base"/>
1377        <mkdir dir="${destdir}"/>
1378    
1379        <javac srcdir="${src.dir}"
1380               destdir="${destdir}"
1381               debug="${build.debug}"
1382               debuglevel="${build.debuglevel}"
1383               deprecation="${build.deprecation}"
1384               classpath=""
1385               includeAntRuntime="false"
1386               includeJavaRuntime="false"
1387               encoding="ASCII"
1388               executable="${build.main.javac}"
1389               fork="true">
1390    
1391          <include name="**/*.java"/>
1392          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>
1393          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>
1394          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>
1395          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>
1396          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>
1397          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>
1398          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>
1399          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1400          <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1401          <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>
1402          <compilerarg value="-Xplugin:ErrorProne
1403                              -Xep:IdentityBinaryExpression:WARN
1404                              -Xep:MissingOverride:OFF
1405                              -Xep:MixedArrayDimensions:WARN
1406                              -Xep:RemoveUnusedImports:ERROR
1407                              -Xep:MethodCanBeStatic:WARN"/>
1408          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1409          <compilerarg value="-Xprefer:source"/>
1410          <compilerarg value="-XDignore.symbol.file=true"/>
1411          <compilerarg value="-Xlint:all"/>
1412          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1413          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1414          <compilerarg line="${build.args}"/>
1415        </javac>
1416    
1417        <jar destfile="${product.jar}">
1418          <fileset dir="${destdir}"/>
1419        </jar>
1420    
1421        <run-tck-tests
1422          target="${build.main.java.version}"
1423          workdir="${build.dir}"
1424          classes="${product.jar}">
1425          <javac-elements>
1426            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>
1427            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>
1428            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>
1429            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>
1430            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>
1431            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>
1432            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>
1433            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1434            <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1435            <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>
1436            <compilerarg value="-Xplugin:ErrorProne
1437                                -Xep:IdentityBinaryExpression:WARN
1438                                -Xep:BoxedPrimitiveConstructor:OFF
1439                                -Xep:HashtableContains:OFF
1440                                -Xep:ModifyingCollectionWithItself:OFF
1441                                -Xep:MissingOverride:OFF
1442                                -Xep:MixedArrayDimensions:WARN
1443                                -Xep:RemoveUnusedImports:ERROR
1444                                -Xep:MethodCanBeStatic:WARN"/>
1445            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1446          </javac-elements>
1447        </run-tck-tests>
1448      </target>
1449    
1450    
1451  <!-- ==============================================================  <!-- ==============================================================
1452    Running guava tests against jsr166 code    Running guava tests against jsr166 code
1453  =================================================================== -->  =================================================================== -->
1454    
1455  <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->  <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1456  <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0-rc1"/> -->  <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1457  <!-- <property name="guava.version" value="20.0"/> -->  <!-- <property name="guava.version" value="21.0"/> -->
1458    
1459  <!-- HOWTO debug print a path id -->  <!-- HOWTO debug print a path id -->
1460  <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->  <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
# Line 1556  Line 1496 
1496        type="jar,bundle" inline="true" conf="default,master"        type="jar,bundle" inline="true" conf="default,master"
1497        pattern="${guava.dir}/[artifact].[ext]"        pattern="${guava.dir}/[artifact].[ext]"
1498        organisation="com.google.guava" module="guava-testlib"/>        organisation="com.google.guava" module="guava-testlib"/>
1499      <property name="guava.version" value="21.0-rc1"/>      <property name="guava.version" value="21.0"/>
1500      <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"      <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1501           dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>           dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1502      <junit printsummary="true" showoutput="true" haltonfailure="true"      <junit printsummary="true" showoutput="true" haltonfailure="true"

Legend:
Removed from v.1.229  
changed lines
  Added in v.1.241

dl@cs.oswego.edu
ViewVC Help
Powered by ViewVC 1.1.27