SpecApplication.
+++ /dev/null
-## tests/jvm98/Makefile.am
-##
-## Copyright (C) 1996-2005 R. Grafl, A. Krall, C. Kruegel, C. Oates,
-## R. Obermaisser, M. Platter, M. Probst, S. Ring, E. Steiner,
-## C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, J. Wenninger,
-## Institut f. Computersprachen - TU Wien
-##
-## This file is part of CACAO.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the terms of the GNU General Public License as
-## published by the Free Software Foundation; either version 2, or (at
-## your option) any later version.
-##
-## This program is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-## General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-##
-## Contact: cacao@complang.tuwien.ac.at
-##
-## Authors: Christian Thalinger
-##
-## Changes:
-##
-## $Id: Makefile.am 1794 2004-12-21 14:10:20Z twisti $
-
-## Process this file with automake to produce Makefile.in
-
-EXTRA_DIST = \
- check.diff \
- compress.diff compress.output \
- db.diff db.output \
- javac.diff javac.output \
- mpegaudio.diff mpegaudio.output \
- raytrace.diff raytrace.output
-
-JAVA = $(top_srcdir)/../src/cacao/cacao
-JAVAC = jikes -nowarn
-
-checkjvm: compress db javac mpegaudio raytrace
-
-check compress db javac mpegaudio raytrace: force
- rm -rf $@
- cp -r ./jvm98/spec/benchmarks/_*_$@ $@
- patch -p0 < $@.diff
- (cd $@; \
- chmod 644 *; \
- chmod 755 input; \
- JAVA="$(JAVA)" JAVAC="$(JAVAC)" sh setup.sh || true; \
- $(JAVAC) -d . *.java && \
- $(JAVA) Main > $@.output; \
- JAVA="$(JAVA)" JAVAC="$(JAVAC)" sh postoutput.sh || true; \
- )
- diff --brief $@/$@.output $@.output
- rm -rf $@
-
-force:
-
-
-## Local variables:
-## mode: Makefile
-## indent-tabs-mode: t
-## c-basic-offset: 4
-## tab-width: 8
-## compile-command: "automake --add-missing"
-## End:
+++ /dev/null
-diff -u check1/FloatingPointCheck.java check/FloatingPointCheck.java
---- check1/FloatingPointCheck.java Wed Jun 17 22:14:10 1998
-+++ check/FloatingPointCheck.java Fri Oct 25 16:11:23 2002
-@@ -47,9 +47,6 @@
- * End of sample execution
- */
-
--package spec.benchmarks._200_check;
--import spec.harness.Context;
--
- public class FloatingPointCheck {
-
- // Level of print output produced
-@@ -97,21 +94,21 @@
- if (check != 0.0) {
- error = true;
- if (print) {
-- Context.out.println("Ooops: double range too big near 0");
-+ System.out.println("Ooops: double range too big near 0");
- }
- }
-
- if (print && verbose) {
- // Some diagnostics
-- Context.out.println(" tiny: " +
-+ System.out.println(" tiny: " +
- doubleTiny);
-- Context.out.println(" tiny/small: " +
-+ System.out.println(" tiny/small: " +
- (doubleTiny/doubleSmall));
-- Context.out.println(" (tiny/small)*big: " +
-+ System.out.println(" (tiny/small)*big: " +
- ((doubleTiny/doubleSmall)*doubleBig));
-- Context.out.println(" MIN_VALUE*big: " +
-+ System.out.println(" MIN_VALUE*big: " +
- (Double.MIN_VALUE*doubleBig));
-- Context.out.println(" (tiny*big)/small: " +
-+ System.out.println(" (tiny*big)/small: " +
- ((doubleTiny*doubleBig)/doubleSmall));
- }
-
-@@ -127,16 +124,16 @@
- if ( check != Double.POSITIVE_INFINITY ) {
- error = true;
- if (print) {
-- Context.out.println("Ooops: double range too big near infinity");
-+ System.out.println("Ooops: double range too big near infinity");
- }
- }
- if (print && verbose) {
- // Some diagnostics
-- Context.out.println(" huge: " +
-+ System.out.println(" huge: " +
- doubleHuge);
-- Context.out.println(" huge*small: " +
-+ System.out.println(" huge*small: " +
- (doubleHuge*doubleSmall));
-- Context.out.println(" (huge*small)/big: " +
-+ System.out.println(" (huge*small)/big: " +
- ((doubleHuge*doubleSmall)/doubleBig));
- }
- }
-@@ -148,21 +145,21 @@
- if (check != 0.0) {
- error = true;
- if (print) {
-- Context.out.println("Ooops: float range too big near 0");
-+ System.out.println("Ooops: float range too big near 0");
- }
- }
-
- if (print && verbose) {
- // Some diagnostics
-- Context.out.println(" tiny: " +
-+ System.out.println(" tiny: " +
- floatTiny);
-- Context.out.println(" tiny/small: " +
-+ System.out.println(" tiny/small: " +
- (floatTiny/floatSmall));
-- Context.out.println(" (tiny/small)*big: " +
-+ System.out.println(" (tiny/small)*big: " +
- ((floatTiny/floatSmall)*floatBig));
-- Context.out.println(" MIN_VALUE*big: " +
-+ System.out.println(" MIN_VALUE*big: " +
- (Float.MIN_VALUE*floatBig));
-- Context.out.println(" (tiny*big)/small: " +
-+ System.out.println(" (tiny*big)/small: " +
- ((floatTiny*floatBig)/floatSmall));
- }
-
-@@ -170,16 +167,16 @@
- if ( check != Float.POSITIVE_INFINITY ) {
- error = true;
- if (print) {
-- Context.out.println("Ooops: float range too big near infinity");
-+ System.out.println("Ooops: float range too big near infinity");
- }
- }
- if (print && verbose) {
- // Some diagnostics
-- Context.out.println(" huge: " +
-+ System.out.println(" huge: " +
- floatHuge);
-- Context.out.println(" huge*small: " +
-+ System.out.println(" huge*small: " +
- (floatHuge*floatSmall));
-- Context.out.println(" (huge*small)/big: " +
-+ System.out.println(" (huge*small)/big: " +
- ((floatHuge*floatSmall)/floatBig));
- }
- }
-@@ -195,18 +192,18 @@
- if (check != 0.0) {
- error = true;
- if (print) {
-- Context.out.println("Ooops: double precision too big near 1");
-+ System.out.println("Ooops: double precision too big near 1");
- }
- }
- if (print && verbose) {
- // Some diagnostics
-- Context.out.println(" eps: " +
-+ System.out.println(" eps: " +
- doubleEpsilon );
-- Context.out.println(" eps: 0x" +
-+ System.out.println(" eps: 0x" +
- Long.toString(Double.doubleToLongBits(doubleEpsilon), 16));
-- Context.out.println(" 1+eps: " +
-+ System.out.println(" 1+eps: " +
- (doubleOne+doubleEpsilon) );
-- Context.out.println(" (1+eps)-1: " +
-+ System.out.println(" (1+eps)-1: " +
- ((doubleOne+doubleEpsilon)-doubleOne) );
- }
- }
-@@ -223,18 +220,18 @@
- if (check != 0.0) {
- error = true;
- if (print) {
-- Context.out.println("Ooops: float precision too big near 1");
-+ System.out.println("Ooops: float precision too big near 1");
- }
- }
- if (print && verbose) {
- // Some diagnostics
-- Context.out.println(" eps: " +
-+ System.out.println(" eps: " +
- floatEpsilon );
-- Context.out.println(" eps: 0x" +
-+ System.out.println(" eps: 0x" +
- Integer.toString(Float.floatToIntBits(floatEpsilon), 16));
-- Context.out.println(" 1+eps: " +
-+ System.out.println(" 1+eps: " +
- (floatOne+floatEpsilon) );
-- Context.out.println(" (1+eps)-1: " +
-+ System.out.println(" (1+eps)-1: " +
- ((floatOne+floatEpsilon)-floatOne) );
- }
- }
-@@ -254,7 +251,7 @@
- // compiler with a floating point bug might pass at say 1% where
- // it hadn't fully compiled everything, but then fail at 100%
- // after it compiled erroneously
-- Context.out.println("FloatingPointCheck");
-+ System.out.println("FloatingPointCheck");
- int count;
- for (count = 0; count < 1*10000*length; count += 1) {
- test(false);
-@@ -262,9 +259,9 @@
- // Run it once to get the answers
- test(true);
- if (error)
-- Context.out.println ("Error");
-+ System.out.println ("Error");
- else
-- Context.out.println ("OK");
-+ System.out.println ("OK");
- }
-
- public static void main(String[] args) {
-diff -u check1/LoopBounds.java check/LoopBounds.java
---- check1/LoopBounds.java Wed Jun 17 22:14:11 1998
-+++ check/LoopBounds.java Fri Oct 25 22:31:48 2002
-@@ -15,10 +15,7 @@
- * Walter Bays
- */
-
--package spec.benchmarks._200_check;
--import spec.harness.*;
- import java.util.Vector;
--import spec.benchmarks._200_check.*;
-
- class LoopBounds {
-
-@@ -50,9 +47,9 @@
- public void execute(){
- for (int i= 0; i < size(); ++i) {
- //System.out.println ("v.size()=" + v.size() + " size()=" + size());
-- Context.out.print (constraintAt(i) + " ");
-+ System.out.print (constraintAt(i) + " ");
- }
-- Context.out.println();
-+ System.out.println();
- }
-
- public static void main (String[] args){
-@@ -61,20 +58,22 @@
-
- public static void run (){
- (new LoopBounds()).execute();
-- String name = "spec.benchmarks._200_check.LoopBounds2";
-+/*
-+ String name = "LoopBounds2";
- try{
- Class c = Class.forName (name);
- Object o = c.newInstance();
- if (! (o instanceof LoopBounds)){
-- Context.out.println (name + " is not a LoopBounds\n");
-+ System.out.println (name + " is not a LoopBounds\n");
- gotError = true;
- return;
- }
- ((LoopBounds) o).execute();
- }catch (Exception e){
-- Context.out.println ("Error " + e);
-+ System.out.println ("Error " + e);
- gotError = true;
- }
-+*/
- }
-
- }//end LoopBounds
-diff -u check1/Main.java check/Main.java
---- check1/Main.java Wed Jun 17 22:14:12 1998
-+++ check/Main.java Fri Oct 25 16:17:32 2002
-@@ -19,10 +19,7 @@
- * fail output verification.
- */
-
--package spec.benchmarks._200_check;
--import spec.harness.*;
--
--public class Main implements SpecBenchmark {
-+public class Main {
-
- ///////////////////////////////////////
- //class variable field declarations
-@@ -47,44 +44,45 @@
- int[] a = new int[10];
- for (int i=0; i<=10; i++)
- a[i] = i;
-- spec.harness.Context.out.println("Error: array bounds not checked");
-+ System.out.println("Error: array bounds not checked");
- }catch (ArrayIndexOutOfBoundsException e){
- caughtIndex = true;
- }finally{
- gotToFinally = true;
- }
- if (!caughtIndex)
-- spec.harness.Context.out.println("1st bounds test error:\tindex exception not received");
-+ System.out.println("1st bounds test error:\tindex exception not received");
- if (!gotToFinally)
-- spec.harness.Context.out.println("1st bounds test error:\tfinally clause not executed");
-+ System.out.println("1st bounds test error:\tfinally clause not executed");
- if (caughtIndex && gotToFinally)
-- spec.harness.Context.out.println("1st bounds test:\tOK");
-+ System.out.println("1st bounds test:\tOK");
- checkSubclassing();
- LoopBounds mule = new LoopBounds();
- mule.run();
- if (mule.gotError)
-- spec.harness.Context.out.println("2nd bounds test:\tfailed");
-+ System.out.println("2nd bounds test:\tfailed");
- else
-- spec.harness.Context.out.println("2nd bounds test:\tOK");
-+ System.out.println("2nd bounds test:\tOK");
- PepTest horse = new PepTest();
- horse.instanceMain();
- if (horse.gotError)
-- spec.harness.Context.out.println("PepTest failed");
-+ System.out.println("PepTest failed");
- return 0;
- }
-
- public static void main( String[] args ) {
- runBenchmark( args );
-+ new FloatingPointCheck().run(100);
- }
-
- private static void checkSubclassing(){
- Super sup = new Super (3);
- Sub sub = new Sub (3);
-- spec.harness.Context.out.println (sup.getName() + ": " + sup.toString());
-- spec.harness.Context.out.println (sub.getName() + ": " + sub.toString());
-- spec.harness.Context.out.println ("Super: prot=" + sup.getProtected() +
-+ System.out.println (sup.getName() + ": " + sup.toString());
-+ System.out.println (sub.getName() + ": " + sub.toString());
-+ System.out.println ("Super: prot=" + sup.getProtected() +
- ", priv=" + sup.getPrivate());
-- spec.harness.Context.out.println ("Sub: prot=" + sub.getProtected() +
-+ System.out.println ("Sub: prot=" + sub.getProtected() +
- ", priv=" + sub.getPrivate());
- }
-
-diff -u check1/Sub.java check/Sub.java
---- check1/Sub.java Wed Jun 17 22:14:14 1998
-+++ check/Sub.java Fri Oct 25 16:12:54 2002
-@@ -9,8 +9,6 @@
- * See what happens here where we subclass Super
- */
-
--package spec.benchmarks._200_check;
--
- public class Sub extends Super{
-
- ///////////////////////////////////////
-diff -u check1/Super.java check/Super.java
---- check1/Super.java Wed Jun 17 22:14:15 1998
-+++ check/Super.java Fri Oct 25 16:13:01 2002
-@@ -9,8 +9,6 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._200_check;
--
- public class Super{
-
- ///////////////////////////////////////
---- check1/PepTest.java 2004-08-03 17:41:02.000000000 +0200
-+++ check/PepTest.java 2004-08-03 19:57:21.000000000 +0200
-@@ -20,9 +20,6 @@
- * Fix (jvm98support-25)
- */
-
--package spec.benchmarks._200_check;
--import spec.harness.*;
--
- class syncTest {
- int x = 5;
-
-@@ -96,7 +93,7 @@
- public boolean gotError = false;
-
- String testDiv() {
-- Context.out.print("testDiv: ");
-+ System.out.print("testDiv: ");
- int a, b;
- long c, d;
- double e, f;
-@@ -148,7 +145,7 @@
- }
-
- String testIf() {
-- Context.out.print("testIf: ");
-+ System.out.print("testIf: ");
- int a = 3, b, c;
- b = a;
- if(b * b == 9)
-@@ -224,7 +221,7 @@
-
- String testBitOps() {
- /* Simple test of a few bit operations. By no means complete. */
-- Context.out.print("testBitOps: ");
-+ System.out.print("testBitOps: ");
- int v = 0xcafebabe;
- if (shiftAnd(v, 24) != 0xca) return "bad shift-and 1";
- if (shiftAnd(v, 16) != 0xfe) return "bad shift-and 2";
-@@ -235,7 +232,7 @@
-
- String testFor() {
- int s = 0;
-- Context.out.print("testFor: ");
-+ System.out.print("testFor: ");
- for (int a = 0; a < 100; a++)
- for (int b = a; b >=0; b = b - 2)
- s = a + s + b;
-@@ -245,7 +242,7 @@
- }
-
- String testTableSwitch() {
-- Context.out.print("testTableSwitch: ");
-+ System.out.print("testTableSwitch: ");
- int s = 2, r;
- s = s * 3;
- switch(s) {
-@@ -277,7 +274,7 @@
- }
-
- String testLookupSwitch() {
-- Context.out.print("testLookupSwitch: ");
-+ System.out.print("testLookupSwitch: ");
- int s = 2, r;
- s = s * 3000;
- switch(s) {
-@@ -309,7 +306,7 @@
- }
-
- String testHiddenField() {
-- Context.out.print("testHiddenField: ");
-+ System.out.print("testHiddenField: ");
- subClass f2 = new subClass();
- superClass f1 = f2;
- if (f1.val != 1)
-@@ -325,10 +322,10 @@
-
- void printTime() {
- java.util.Date now = new java.util.Date();
-- Context.out.print("Time now is ");
-- Context.out.print(now.toString());
-- Context.out.print(", ms: ");
-- Context.out.println(System.currentTimeMillis());
-+ System.out.print("Time now is ");
-+ System.out.print(now.toString());
-+ System.out.print(", ms: ");
-+ System.out.println(System.currentTimeMillis());
- }
-
- String checkInst(superClass x, boolean r1, boolean r2, boolean r3, int c) {
-@@ -344,7 +341,7 @@
- }
-
- String checkInstanceOf() {
-- Context.out.print("checkInstanceOf: ");
-+ System.out.print("checkInstanceOf: ");
-
- /* subClass a[] = new subClass[2];
- ((superClass[])a)[1] = new superClass(); */
-@@ -370,7 +367,7 @@
- }
-
- String checkInterfaceInstanceOf() {
-- Context.out.print("checkInterfaceInstanceOf: ");
-+ System.out.print("checkInterfaceInstanceOf: ");
- java.lang.Object c1 = new C1();
- java.lang.Object c2 = new C2();
- java.lang.Object c3 = new C3();
-@@ -397,7 +394,7 @@
- }
-
- String testExc1() {
-- Context.out.print("testExc1(simple throw/catch): ");
-+ System.out.print("testExc1(simple throw/catch): ");
- int x = 0;
- try {
- if (x == 0) x = 1; else x = -1;
-@@ -420,7 +417,7 @@
- }
-
- String testExc2() {
-- Context.out.print("testExc2(skip catch clauses): ");
-+ System.out.print("testExc2(skip catch clauses): ");
- int x = 0;
- try {
- if (x == 0) x = 1; else x = -1;
-@@ -440,7 +437,7 @@
- }
-
- String testExc3() {
-- Context.out.print("testExc3(catch in inner): ");
-+ System.out.print("testExc3(catch in inner): ");
- int x = 0;
- try {
- if (x == 0) x = 1; else x = -1;
-@@ -464,7 +461,7 @@
- }
-
- String testExc4() {
-- Context.out.print("testExc4(catch in outer): ");
-+ System.out.print("testExc4(catch in outer): ");
- int x = 0;
- try {
- if (x == 0) x = 1; else x = -1;
-@@ -484,7 +481,7 @@
- }
-
- String testExc5() {
-- Context.out.print("testExc5(rethrow): ");
-+ System.out.print("testExc5(rethrow): ");
- int x = 0;
- try {
- if (x == 0) x = 1; else x = -1;
-@@ -505,7 +502,7 @@
- }
-
- String testExc6() {
-- Context.out.print("testExc6(throw accross call): ");
-+ System.out.print("testExc6(throw accross call): ");
- int x = 0;
- try {
- x = 1;
-@@ -521,7 +518,7 @@
- }
-
- String testExc7() {
-- Context.out.print("testExc7(throw accr. 2 calls): ");
-+ System.out.print("testExc7(throw accr. 2 calls): ");
- int x = 0;
- try {
- x = 1;
-@@ -547,7 +544,7 @@
- final static int allocChunk = 50000;
-
- String testExc8() {
-- Context.out.print("testExc8(keep throwing; see if GC works): ");
-+ System.out.print("testExc8(keep throwing; see if GC works): ");
- System.gc();
- Runtime runt = Runtime.getRuntime();
- long freeSpace = runt.freeMemory();
-@@ -579,7 +576,7 @@
- }
-
- String testExc9() {
-- Context.out.print("testExc9(keep throwing accross fct; see if GC works): ");
-+ System.out.print("testExc9(keep throwing accross fct; see if GC works): ");
- System.gc();
- Runtime runt = Runtime.getRuntime();
- long freeSpace = runt.freeMemory();
-@@ -619,7 +616,7 @@
-
-
- String testStringHash() {
-- Context.out.print("testStringHash: ");
-+ System.out.print("testStringHash: ");
- String res;
- /* These are the JDK1.1 values. */
- if (null != (res = stringHash("monkey", -817689237, -1068495917)))
-@@ -637,7 +634,7 @@
-
-
- String testObjectHash() {
-- Context.out.print("testObjectHash: ");
-+ System.out.print("testObjectHash: ");
- java.util.Hashtable ht = new java.util.Hashtable();
- Integer ii;
- for (int i = 0; i < 1000; i++) {
-@@ -652,7 +649,7 @@
- }
-
- String loopExitContinueInExceptionHandler() {
-- Context.out.print("loopExitContinueInExceptionHandler: ");
-+ System.out.print("loopExitContinueInExceptionHandler: ");
- int i = 0;
- while(i < 10000) {
- i++;
-@@ -674,7 +671,7 @@
- }
-
- String testClone() {
-- Context.out.print("testClone: ");
-+ System.out.print("testClone: ");
- int[] w, v = new int[100]; /* Check that we can clone arrays. */
- for (int i = 0; i < v.length; i++) v[i] = i * i;
- w = (int[])v.clone();
-@@ -712,16 +709,16 @@
- }
-
- void printInterfaces(java.lang.Class cl) {
-- Context.out.print(cl.getName() + ": ");
-+ System.out.print(cl.getName() + ": ");
- java.lang.Class intf[] = cl.getInterfaces();
- for (int i = 0; i < intf.length; i++) {
-- Context.out.print(intf[i].getName() + " ");
-+ System.out.print(intf[i].getName() + " ");
- if (!intf[i].isInterface())
-- Context.out.println("Error: should have been an interface!");
-+ System.out.println("Error: should have been an interface!");
- }
- if (0 == intf.length)
-- Context.out.print("no interfaces");
-- Context.out.println();
-+ System.out.print("no interfaces");
-+ System.out.println();
- }
-
- String testClass() {
-@@ -761,7 +758,7 @@
- }
-
- String testWaitNull() {
-- Context.out.print("testWaitNull: ");
-+ System.out.print("testWaitNull: ");
- try {
- ((java.lang.Object)null).wait(43);
- } catch (java.lang.Exception e) {
-@@ -773,7 +770,7 @@
- }
-
- String testVarAndMethodNameClash() {
-- Context.out.print("testVarAndMethodNameClash: ");
-+ System.out.print("testVarAndMethodNameClash: ");
- superClass s = new superClass();
- int x;
-
-@@ -808,12 +805,12 @@
-
- void checkAllNull(java.lang.Object a[]) {
- for (int i = 0; i < a.length; i++) {
-- if (a[i] != null) Context.out.println("error: should have been null");
-+ if (a[i] != null) System.out.println("error: should have been null");
- }
- }
-
- String testObjectArray() {
-- Context.out.print("testObjectArray: ");
-+ System.out.print("testObjectArray: ");
- subClass a[] = new subClass[10];
- superClass b[] = new superClass[10];
-
-@@ -923,9 +920,9 @@
- if (a == 1)
- throw(new java.lang.ArithmeticException("fisk"));
- if (a == 1)
-- Context.out.println("should not print this");
-+ System.out.println("should not print this");
- else
-- Context.out.println("should print this");
-+ System.out.println("should print this");
- }
-
- int testDup() {
-@@ -946,7 +943,7 @@
- static int staticIntArray[][] = {{1,2,3}, {4,5,6}};
-
- String testArray() {
-- Context.out.print("testArray: ");
-+ System.out.print("testArray: ");
- int x[];
- x = new int[6];
- x[4] = 3;
-@@ -991,33 +988,33 @@
- }
-
- void printPrimes() {
-- Context.out.print("Primes less than 50: ");
-+ System.out.print("Primes less than 50: ");
- for (int i = 2; i < 50; i++) {
- if (isPrime(i)) {
-- Context.out.print(i);
-- Context.out.print(" ");
-+ System.out.print(i);
-+ System.out.print(" ");
- }
- }
-- Context.out.println("");
-+ System.out.println("");
- }
-
- public void Verify(String str) {
- if (null == str || str.equals(""))
-- Context.out.println("OK");
-+ System.out.println("OK");
- else {
- gotError = true;
-- Context.out.println();
-- Context.out.println("******************************************");
-- Context.out.println(str);
-- Context.out.println("******************************************");
-+ System.out.println();
-+ System.out.println("******************************************");
-+ System.out.println(str);
-+ System.out.println("******************************************");
- }
- }
-
- boolean checkRemL(long a, long b, long res) {
- boolean ok = (res == a % b);
- if (!ok) {
-- Context.out.print("Failed: " + a + " % " + b + " = " + (a % b));
-- Context.out.println(" (should be: " + res);
-+ System.out.print("Failed: " + a + " % " + b + " = " + (a % b));
-+ System.out.println(" (should be: " + res);
- }
- return ok;
- }
-@@ -1025,21 +1022,21 @@
- boolean checkRemD(double a, double b, double res) {
- boolean ok = (res == a % b);
- if (!ok) {
-- Context.out.print("Failed: " + a + " % " + b + " = " + (a % b));
-- Context.out.println(" (should be: " + res);
-+ System.out.print("Failed: " + a + " % " + b + " = " + (a % b));
-+ System.out.println(" (should be: " + res);
- }
- return ok;
- }
-
-
- void printRemD(double a, double b) {
-- Context.out.print(a + " % " + b + " = " + (a % b));
-+ System.out.print(a + " % " + b + " = " + (a % b));
- }
-
- String checkRemainders() {
-- Context.out.print("checkRemainders: ");
-+ System.out.print("checkRemainders: ");
- boolean ok = true;
-- Context.out.print(" long ");
-+ System.out.print(" long ");
- if (!checkRemL( 10L, 7L, 3L)) ok = false;
- if (!checkRemL( 10L, -7L, 3L)) ok = false;
- if (!checkRemL(-10L, 7L, -3L)) ok = false;
-@@ -1050,7 +1047,7 @@
- if (!checkRemD(-10.5, 7.0, -3.5)) ok = false;
- if (!checkRemD(-10.5, -7.0, -3.5)) ok = false;
- if (!ok) return "remainders failed";
-- Context.out.print("double ");
-+ System.out.print("double ");
- return null;
- }
-
-@@ -1064,14 +1061,14 @@
- m = ar;
- if (m == 0.0) m = 1.0;
- if ((v - r) / m > 0.0001) {
-- Context.out.println(exprStr + " evaluated to: " + v + ", expected: " + r);
-+ System.out.println(exprStr + " evaluated to: " + v + ", expected: " + r);
- return false;
- }
- return true;
- }
-
- String checkMathFcts() {
-- Context.out.print("checkMathFcts: ");
-+ System.out.print("checkMathFcts: ");
- boolean ok = true;
- if (!checkClose("log(0.7)", Math.log(0.7), -0.356675)) ok = false;
- if (!checkClose("sin(0.7)", Math.sin(0.7), 0.644218)) ok = false;
-@@ -1110,13 +1107,13 @@
- }
-
- String testDeepStack() {
-- Context.out.print("testDeepStack: ");
-+ System.out.print("testDeepStack: ");
- if (deepRecursion(5555, 0) != (5555 * 5555 + 5555) / 2) return "failed";
- return null;
- }
-
- String testMisk() {
-- Context.out.print("testMisk: ");
-+ System.out.print("testMisk: ");
- String right = "-9223372036854775808";
- if (!right.equals("" + ((long)1 << 63)))
- return "(long)1 << 63 failed, returned: " + ((long)1 << 63) +
-@@ -1148,7 +1145,7 @@
- }
-
- String testGC() {
-- Context.out.print("testGC: ");
-+ System.out.print("testGC: ");
- byte[][] bytesArrays = new byte[1000][];
- bytesArrays[0] = new byte[1000]; /* See if GC eats this array! */
- Runtime.getRuntime().gc();
-@@ -1170,7 +1167,7 @@
- /*
- * Skip file tests in an applet, wnb 2/13/98
- String testFileOps() {
-- Context.out.print("testFileOps: ");
-+ System.out.print("testFileOps: ");
- java.io.File f = new java.io.File(".");
- if (!f.isDirectory()) return "'.' is not a directory";
- if (!f.exists()) return "'.' does not exist";
-@@ -1222,11 +1219,11 @@
- // Don't perform fp accuracy check so that 80-bit intermediate values
- // will not be flagged as invalid. Per precedent of (osgjava-143) November
- // 1997 minutes, and (osgjava-340) May 1998 minutes: specifications section
--// (new FloatingPointCheck()).run (spec.harness.Context.getSpeed());
-+// (new FloatingPointCheck()).run (spec.harness.System.getSpeed());
- if (gotError)
-- Context.out.println("****** PepTest found an error ******");
-+ System.out.println("****** PepTest found an error ******");
- else
-- Context.out.println("****** PepTest completed ******");
-+ System.out.println("****** PepTest completed ******");
- }
-
- public static void main(String[] args) {
+++ /dev/null
-1st bounds test: OK
-Super: Class Super, public=34, protected=33, private=32
-Sub: Class Super, public=804, protected=803, private=802
-Super: prot=33, priv=32
-Sub: prot=111, priv=105
-1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
-2nd bounds test: OK
-testIf: OK
-testArray: OK
-testBitOps: OK
-testFor: OK
-testDiv: OK
-testTableSwitch: OK
-testLookupSwitch: OK
-testHiddenField: OK
-checkRemainders: long double OK
-checkMathFcts: OK
-Primes less than 50: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
-testExc1(simple throw/catch): OK
-testExc2(skip catch clauses): OK
-testExc3(catch in inner): OK
-testExc4(catch in outer): OK
-testExc5(rethrow): OK
-testExc6(throw accross call): OK
-testExc7(throw accr. 2 calls): OK
-loopExitContinueInExceptionHandler: OK
-testStringHash: OK
-testClone: OK
-testObjectArray: OK
-checkInstanceOf: OK
-checkInterfaceInstanceOf: OK
-testWaitNull: OK
-testVarAndMethodNameClash: OK
-testMisk: OK
-testGC: OK
-****** PepTest completed ******
-FloatingPointCheck
- tiny: 1.0E-323
- tiny/small: 0.0
- (tiny/small)*big: 0.0
- MIN_VALUE*big: 1.265E-321
- (tiny*big)/small: 3.16E-322
- huge: 8.988465674311579E307
- huge*small: Infinity
- (huge*small)/big: Infinity
- eps: 1.1102230246251565E-16
- eps: 0x3ca0000000000000
- 1+eps: 1.0
- (1+eps)-1: 0.0
- tiny: 2.802597E-45
- tiny/small: 0.0
- (tiny/small)*big: 0.0
- MIN_VALUE*big: 3.587324E-43
- (tiny*big)/small: 8.96831E-44
- huge: 1.7014117E38
- huge*small: Infinity
- (huge*small)/big: Infinity
- eps: 5.9604645E-8
- eps: 0x33800000
- 1+eps: 1.0
- (1+eps)-1: 0.0
-OK
+++ /dev/null
-diff -u compress1/Compress.java compress/Compress.java
---- compress1/Compress.java Wed Jun 17 22:14:24 1998
-+++ compress/Compress.java Fri Oct 25 11:47:20 2002
-@@ -1,15 +1,4 @@
- /*
-- * Used 'Inner Classes' to minimize temptations of JVM exploiting low hanging
-- * fruits. 'Inner classes' are defined in appendix D of the 'Java Programming
-- * Language' by Ken Arnold.
-- * - We moved the class declaration, unchanged, of Hash_Table to within the
-- * class declaration of Compressor.
-- * - We moved the class declarations, unchanged, of De_Stack and
-- Suffix_Table to within the class declaration of Decompressor.
-- * - pre-computed trivial htab(i) to minimize millions of trivial calls
-- * - Don McCauley (IBM), Kaivalya 4/16/98
-- *
-- * @(#)Compress.java 1.7 06/17/98
- * // Don McCauley/kmd - IBM 02/26/98
- * // getbyte and getcode fixed -- kaivalya & Don
- * compress.c - File compression ala IEEE Computer, June 1984.
-@@ -29,12 +18,8 @@
- * substrings and replaces them with a variable size code. This is
- * deterministic, and can be done on the fly. Thus, the decompression
- * procedure needs no input table, but tracks the way the table was built.
-- *
-- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._201_compress;
--
- final class Compress {
- final static int BITS = 16; /* always set to 16 for SPEC95 */
- final static int INIT_BITS = 9; /* initial number of bits/code */
-@@ -162,6 +147,39 @@
-
- /*****************************************************************/
-
-+final class Hash_Table {
-+ private int tab[];
-+ private int size; /* for dynamic table sizing */
-+
-+ public Hash_Table() {
-+ size = Compress.HSIZE;
-+ tab = new int[size];
-+ }
-+
-+ public int of(int i) {
-+ return tab[i];
-+ }
-+
-+ public void set(int i, int v) {
-+ tab[i] = v;
-+ }
-+
-+ public int hsize() {
-+ return size;
-+ }
-+
-+ public void clear() {
-+ int i;
-+
-+ for (i = 0; i < size; i++) {
-+ tab[i] = -1;
-+ }
-+ }
-+};
-+
-+
-+/*****************************************************************/
-+
- final class Code_Table {
- private short tab[];
-
-@@ -188,6 +206,58 @@
-
- /*****************************************************************/
-
-+final class Suffix_Table {
-+ private byte tab[];
-+
-+ public Suffix_Table () {
-+ tab = new byte[Compress.SUFFIX_TAB_SZ];
-+ }
-+
-+ public byte of(int i) {
-+ return tab[i];
-+ }
-+
-+ public void set(int i, byte v) {
-+ tab[i] = v;
-+ }
-+
-+ public void init(int size) {
-+ int code;
-+ for ( code = 0; code < size; code++ ) {
-+ tab[code] = (byte)code;
-+ }
-+ }
-+};
-+
-+
-+/*****************************************************************/
-+
-+final class De_Stack {
-+ private byte tab[];
-+ private int index;
-+
-+ public De_Stack() {
-+ tab = new byte[Compress.STACK_SZ];
-+ index = 0;
-+ }
-+
-+ public void push(byte c) {
-+ tab[index++] = c;
-+ }
-+
-+ public byte pop() {
-+ index--;
-+ return tab[index];
-+ }
-+
-+ public boolean is_empty() {
-+ return (index == 0);
-+ }
-+};
-+
-+
-+/*****************************************************************/
-+
- class Comp_Base {
- protected int n_bits; /* number of bits/code */
- protected int maxbits; /* user settable max # bits/code */
-@@ -264,7 +334,7 @@
- checkpoint = CHECK_GAP;
- free_ent = ((block_compress != 0) ? Compress.FIRST : 256 );
-
-- htab = new Hash_Table(); // dm/kmd 4/10/98
-+ htab = new Hash_Table();
- codetab = new Code_Table();
-
- Output.putbyte(Compress.magic_header[0]);
-@@ -296,15 +366,13 @@
- in_count++;
- fcode = (((int) c << maxbits) + ent);
- i = ((c << hshift) ^ ent); /* xor hashing */
-- int temphtab = htab.of (i); // dm/kmd 4/15
--//dm kmd if ( htab.of (i) == fcode ) { // dm/kmd 4/15
-- if ( temphtab == fcode ) {
-+
-+ if ( htab.of (i) == fcode ) {
- ent = codetab.of (i);
- continue next_byte;
- }
-
--//dm kmd 4/15 if ( htab.of (i) >= 0 ) { /* non-empty slot */
-- if ( temphtab >= 0 ) { /* non-empty slot dm kmd 4/15*/
-+ if ( htab.of (i) >= 0 ) { /* non-empty slot */
- disp = hsize_reg - i; /* secondary hash (after G. Knott) */
- if ( i == 0 )
- disp = 1;
-@@ -313,15 +381,11 @@
- if ( (i -= disp) < 0 )
- i += hsize_reg;
-
-- temphtab = htab.of (i); // dm/kmd 4/15
--
--// dm/kmd 4/15 if ( htab.of (i) == fcode ) {
-- if ( temphtab == fcode ) {
-+ if ( htab.of (i) == fcode ) {
- ent = codetab.of (i);
- continue next_byte;
- }
--// dm/kmd 4/15 } while ( htab.of (i) > 0 );
-- } while ( temphtab > 0 ); // dm kmd 4/15
-+ } while ( htab.of (i) > 0 );
- }
-
- output ( ent );
-@@ -463,41 +527,6 @@
- output ( (int) Compress.CLEAR );
- }
- }
--
--final class Hash_Table { // moved 4/15/98 dm/kmd
--/* Use protected instead of private
-- * to allow access by parent class
-- * of inner class. wnb 4/17/98
-- */
-- protected int tab[]; // for dynamic table sizing */
-- protected int size;
--
-- public Hash_Table() {
-- size = Compress.HSIZE;
-- tab = new int[size];
-- }
--
-- public int of(int i) {
-- return tab[i];
-- }
--
-- public void set(int i, int v) {
-- tab[i] = v;
-- }
--
-- public int hsize() {
-- return size;
-- }
--
-- public void clear() {
-- int i;
--
-- for (i = 0; i < size; i++) {
-- tab[i] = -1;
-- }
-- }
--};
--
- };
-
-
-@@ -678,65 +707,6 @@
-
- return code;
- }
--
--/*****************************************************************/
--
--final class De_Stack { // moved 4/15/98 dm/kmd
--/* Use protected instead of private
-- * to allow access by parent class
-- * of inner class. wnb 4/17/98
-- */
-- protected byte tab[];
-- protected int index;
--
-- public De_Stack() {
-- tab = new byte[Compress.STACK_SZ];
-- index = 0;
-- }
--
-- public void push(byte c) {
-- tab[index++] = c;
-- }
--
-- public byte pop() {
-- index--;
-- return tab[index];
-- }
--
-- public boolean is_empty() {
-- return (index == 0);
-- }
--};
--
--/*****************************************************************/
--
--final class Suffix_Table { // moved 4/15/98 dm/kmd
--/* Use protected instead of private
-- * to allow access by parent class
-- * of inner class. wnb 4/17/98
-- */
-- protected byte tab[];
--
-- public Suffix_Table () {
-- tab = new byte[Compress.SUFFIX_TAB_SZ];
-- }
--
-- public byte of(int i) {
-- return tab[i];
-- }
--
-- public void set(int i, byte v) {
-- tab[i] = v;
-- }
--
-- public void init(int size) {
-- int code;
-- for ( code = 0; code < size; code++ ) {
-- tab[code] = (byte)code;
-- }
-- }
--};
--
- };
-
-
-diff -u compress1/Main.java compress/Main.java
---- compress1/Main.java Fri Jun 26 21:42:33 1998
-+++ compress/Main.java Mon Nov 30 18:39:00 1998
-@@ -6,15 +6,12 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._201_compress;
--import spec.harness.*;
--
--public class Main implements SpecBenchmark {
-+public class Main {
-
-
- static long runBenchmark( String[] args ) {
-
-- int speed = spec.harness.Context.getSpeed();
-+ int speed = 100;
-
- if( args.length == 0 ) {
-
-@@ -46,18 +43,11 @@
- }
- }
-
-- return new Harness().inst_main( args );
-+ return new MyCompress().inst_main( args );
- }
-
-
- public static void main( String[] args ) {
- runBenchmark( args );
- }
--
--
-- public long harnessMain( String[] args ) {
-- return runBenchmark( args );
-- }
--
--
- }
-diff -Nu compress1/MyCompress.java compress/MyCompress.java
---- compress1/MyCompress.java Thu Jan 1 01:00:00 1970
-+++ compress/MyCompress.java Fri Oct 25 22:01:30 2002
-@@ -0,0 +1,118 @@
-+/*
-+ * @(#)Harness.java 1.14 06/26/98
-+ *
-+ * Copyright (c) 1998 Standard Performance Evaluation Corporation (SPEC)
-+ * All rights reserved.
-+ * Copyright (c) 1997,1998 Sun Microsystems, Inc. All rights reserved.
-+ *
-+ * Modified by Kaivalya M. Dixit & Don McCauley (IBM) to read input files
-+ * This source code is provided as is, without any express or implied warranty.
-+ */
-+
-+import java.io.*;
-+
-+public final class MyCompress
-+{
-+
-+ final static int COMPRESS = 0;
-+ final static int UNCOMPRESS = 1;
-+
-+ private byte orig_text_buffer[];
-+ private byte comp_text_buffer[];
-+
-+ private int fill_text_buffer(String infile) {
-+ int act = 0;
-+ int num_bytes = 0;
-+
-+ try {
-+
-+ java.io.FileInputStream sif = new java.io.FileInputStream(infile);
-+ java.io.File myfile = new File(infile);
-+ num_bytes = (int) myfile.length();
-+
-+ // Only allocate size of input file rather than MAX - kmd
-+ // If compressed file is larger than input file this allocation
-+ // will fail and out of bound exception will occur
-+ // In real lie, compress will no do any compression as no
-+ // space is saved.-- kaivalya
-+
-+ orig_text_buffer = new byte[num_bytes];
-+ comp_text_buffer = new byte[num_bytes];
-+
-+ int bytes_read;
-+ while ( (bytes_read = sif.read(orig_text_buffer, act , (num_bytes - act))) > 0){
-+ act = act + bytes_read;
-+ }
-+
-+ sif.close(); // release resources
-+
-+ if ( act != num_bytes ) {
-+ System.out.println("ERROR reading test input file");
-+ }
-+ }
-+ catch (IOException e) {
-+ System.out.println("ERROR opening/accessing input file: "+infile);
-+ };
-+
-+ return act;
-+ }
-+
-+
-+ public MyCompress() {
-+ /*
-+ orig_text_buffer = new byte[BUFFERSIZE];
-+ comp_text_buffer = new byte[BUFFERSIZE];
-+ new_text_buffer = new byte[BUFFERSIZE];
-+ */
-+ }
-+
-+ public boolean run_compress(String[] args) {
-+ int count = 0;
-+ int i, oper;
-+ int comp_count, new_count;
-+ int fn = Integer.parseInt(args [0] ); // get number of files
-+ int loopct = Integer.parseInt(args [1] ); // get loop count
-+
-+ System.out.println( "Loop count = " + loopct );
-+
-+ for (int cntr=0; cntr < loopct; cntr++ ) // iterate over
-+ for (int j=0; j < fn ; j++) { // number of files
-+ count = fill_text_buffer( args [j+2] ); // give file names to read
-+ oper=COMPRESS;
-+ System.out.println( count); // write input file size
-+
-+ // uncompress in the original text buffer.
-+ comp_count=Compress.spec_select_action(orig_text_buffer, count,
-+ oper, comp_text_buffer);
-+ System.out.println( comp_count); // write compressed file size
-+
-+ oper=UNCOMPRESS;
-+ new_count=Compress.spec_select_action(comp_text_buffer, comp_count,
-+ oper, orig_text_buffer);
-+ // if uncompressed files size is not same as the original ERROR
-+
-+ if ( new_count != count ) {
-+ System.out.println ("Error : Number of Bytes should have been " + count + " instead of " + new_count);
-+ }
-+
-+ // Release resources to prevent resource leak
-+ orig_text_buffer = null;
-+
-+ comp_text_buffer = null;
-+ }
-+ return true;
-+ }
-+
-+
-+ public long inst_main( String[] argv ) {
-+
-+ long startTime = System.currentTimeMillis();
-+
-+ if (!run_compress(argv))
-+ return 0;
-+
-+ return System.currentTimeMillis() - startTime;
-+ }
-+
-+}
-+
-diff -Nu compress1/Harness.java compress/Harness.java
---- compress1/Harness.java Fri Jun 26 21:36:51 1998
-+++ compress/Harness.java Thu Jan 1 01:00:00 1970
-@@ -1,122 +0,0 @@
--/*
-- * @(#)Harness.java 1.14 06/26/98
-- *
-- * Copyright (c) 1998 Standard Performance Evaluation Corporation (SPEC)
-- * All rights reserved.
-- * Copyright (c) 1997,1998 Sun Microsystems, Inc. All rights reserved.
-- *
-- * Modified by Kaivalya M. Dixit & Don McCauley (IBM) to read input files
-- * This source code is provided as is, without any express or implied warranty.
-- */
--
--package spec.benchmarks._201_compress;
--import spec.harness.*;
--
--import java.io.*;
--
--public final class Harness
--{
--
-- final static int COMPRESS = 0;
-- final static int UNCOMPRESS = 1;
--
-- private byte orig_text_buffer[];
-- private byte comp_text_buffer[];
--
-- private int fill_text_buffer(String infile) {
-- int act = 0;
-- int num_bytes = 0;
--
-- try {
--
-- spec.io.FileInputStream sif = new spec.io.FileInputStream(infile);
-- num_bytes = (int)sif.getContentLength();
--
-- // Only allocate size of input file rather than MAX - kmd
-- // If compressed file is larger than input file this allocation
-- // will fail and out of bound exception will occur
-- // In real lie, compress will no do any compression as no
-- // space is saved.-- kaivalya
--
-- orig_text_buffer = new byte[num_bytes];
-- comp_text_buffer = new byte[num_bytes];
--
-- int bytes_read;
-- while ( (bytes_read = sif.read(orig_text_buffer, act , (num_bytes - act))) > 0){
-- act = act + bytes_read;
-- }
--
-- sif.close(); // release resources
--
-- if ( act != num_bytes )
-- {
-- spec.harness.Context.out.println("ERROR reading test input file");
-- }
-- }
-- catch (IOException e)
-- {
-- spec.harness.Context.out.println("ERROR opening/accessing input file: "+infile);
-- };
--
-- return act;
-- }
--
--
-- public Harness() {
-- /*
-- orig_text_buffer = new byte[BUFFERSIZE];
-- comp_text_buffer = new byte[BUFFERSIZE];
-- new_text_buffer = new byte[BUFFERSIZE];
-- */
-- }
--
-- public boolean run_compress(String[] args) {
-- int count = 0;
-- int i, oper;
-- int comp_count, new_count;
-- int fn = Integer.parseInt(args [0] ); // get number of files
-- int loopct = Integer.parseInt(args [1] ); // get loop count
--
-- spec.harness.Context.out.println( "Loop count = " + loopct );
--
-- for (int cntr=0; cntr < loopct; cntr++ ) // iterate over
-- for (int j=0; j < fn ; j++) { // number of files
-- count = fill_text_buffer( args [j+2] ); // give file names to read
-- oper=COMPRESS;
-- spec.harness.Context.out.println( count); // write input file size
--
-- // uncompress in the original text buffer.
-- comp_count=Compress.spec_select_action(orig_text_buffer, count,
-- oper, comp_text_buffer);
-- spec.harness.Context.out.println( comp_count); // write compressed file size
--
-- oper=UNCOMPRESS;
-- new_count=Compress.spec_select_action(comp_text_buffer, comp_count,
-- oper, orig_text_buffer);
-- // if uncompressed files size is not same as the original ERROR
--
-- if ( new_count != count ) {
-- spec.harness.Context.out.println ("Error : Number of Bytes should have been " + count + " instead of " + new_count);
-- }
--
-- // Release resources tor prevent resource leak
-- orig_text_buffer = null;
-- comp_text_buffer = null;
--
-- }
-- return true;
-- }
--
--
-- public long inst_main( String[] argv ) {
--
-- long startTime = System.currentTimeMillis();
--
-- if (!run_compress(argv))
-- return 0;
--
-- return System.currentTimeMillis() - startTime;
-- }
--
--}
--
+++ /dev/null
-Loop count = 5
-3153920
-931067
-2856960
-1132510
-962560
-688827
-1280000
-591635
-1157120
-368657
-3153920
-931067
-2856960
-1132510
-962560
-688827
-1280000
-591635
-1157120
-368657
-3153920
-931067
-2856960
-1132510
-962560
-688827
-1280000
-591635
-1157120
-368657
-3153920
-931067
-2856960
-1132510
-962560
-688827
-1280000
-591635
-1157120
-368657
-3153920
-931067
-2856960
-1132510
-962560
-688827
-1280000
-591635
-1157120
-368657
+++ /dev/null
-diff -Nu db1/Database.java db/Database.java
---- db1/Database.java Wed Jun 17 23:23:16 1998
-+++ db/Database.java Sat Nov 30 16:02:53 2002
-@@ -30,9 +30,6 @@
- * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
- */
-
--package spec.benchmarks._209_db;
--import spec.harness.*;
--import spec.io.*;
- import java.util.*;
- import java.io.*;
-
-@@ -51,11 +48,11 @@
- private void read_fmt(String filename)
- {
- int len, act;
-- spec.io.FileInputStream fis;
-+ java.io.FileInputStream fis;
- String f;
-
- try {
-- fis = new spec.io.FileInputStream(filename);
-+ fis = new java.io.FileInputStream(filename);
- StreamTokenizer tok = new StreamTokenizer(fis);
-
- tok.commentChar(0);
-@@ -81,11 +78,11 @@
- switch(tok.ttype)
- {
- case StreamTokenizer.TT_NUMBER:
-- spec.harness.Context.out.println("token=TT_NUMBER: "+tok.nval);
-+ System.out.println("token=TT_NUMBER: "+tok.nval);
- break;
-
- case StreamTokenizer.TT_WORD:
-- spec.harness.Context.out.println("token=TT_WORD: "+tok.sval);
-+ System.out.println("token=TT_WORD: "+tok.sval);
- break;
-
- case '"':
-@@ -108,7 +105,7 @@
- }
- catch (IOException e)
- {
-- spec.harness.Context.out.println("ERROR opening/parsing format file "+filename);
-+ System.out.println("ERROR opening/parsing format file "+filename);
- System.exit(1);
- };
-
-@@ -135,12 +132,12 @@
- boolean OK;
- byte buffer[] = null;
-
-- spec.harness.Context.out.print("Reading database "+dbname+" ... ");
-- spec.harness.Context.out.flush();
-+ System.out.print("Reading database "+dbname+" ... ");
-+ System.out.flush();
-
- try {
-- spec.io.FileInputStream sif = new spec.io.FileInputStream(filename);
-- n = sif.getContentLength();
-+ java.io.FileInputStream sif = new java.io.FileInputStream(filename);
-+ n = (int) new java.io.File(".", filename).length();
- buffer = new byte[n];
-
- int bytes_read;
-@@ -150,7 +147,7 @@
- sif.close();
- sif = null; // 03/11/98 rrh
- if ( act != n ){
-- spec.harness.Context.out.println("ERROR reading input file");
-+ System.out.println("ERROR reading input file");
- //System.exit(1);
- return;
- }
-@@ -160,18 +157,18 @@
- {
- if ( n == 0 )
- {
-- spec.harness.Context.out.println("Empty database");
-+ System.out.println("Empty database");
- return;
- }
-
-- spec.harness.Context.out.println("ERROR opening/reading input file \""+filename+"\"");
-+ System.out.println("ERROR opening/reading input file \""+filename+"\"");
- // System.exit(1);
- };
-
- entry = new Entry();
-
-- spec.harness.Context.out.print("OK\nBuilding database ...");
-- spec.harness.Context.out.flush();
-+ System.out.print("OK\nBuilding database ...");
-+ System.out.flush();
-
- n = buffer.length;
- s = e = 0;
-@@ -200,7 +197,7 @@
-
- buffer = null; // 03/11/98 rrh
-
-- spec.harness.Context.out.println("Done.");
-+ System.out.println("Done.");
- }
-
-
-@@ -209,21 +206,21 @@
- Entry entry;
- String s;
- Enumeration e = entries.elements();
-- spec.io.FileOutputStream fos = null;
-+ java.io.FileOutputStream fos = null;
- byte buffer[] = new byte[64*1024];
- int c, len;
-
-
-- spec.harness.Context.out.print("Saving database "+dbname+" ... ");
-- spec.harness.Context.out.flush();
-+ System.out.print("Saving database "+dbname+" ... ");
-+ System.out.flush();
-
- try
- {
-- fos = new spec.io.FileOutputStream(dbname+".dat");
-+ fos = new java.io.FileOutputStream(dbname+".dat");
- }
- catch (IOException ex)
- {
-- spec.harness.Context.out.println("\nERROR creating output file "+dbname+".dat");
-+ System.out.println("\nERROR creating output file "+dbname+".dat");
- // System.exit(1);
- }
-
-@@ -246,7 +243,7 @@
- {
- try {fos.write(buffer, 0, c);} catch(IOException ex)
- {
-- spec.harness.Context.out.println("ERROR writing to output file "+dbname+".dat");
-+ System.out.println("ERROR writing to output file "+dbname+".dat");
- // System.exit(1);
- }
-
-@@ -267,7 +264,7 @@
- {
- try {fos.write(buffer, 0, c);} catch(IOException ex)
- {
-- spec.harness.Context.out.println("ERROR writing to output file "+dbname+".dat");
-+ System.out.println("ERROR writing to output file "+dbname+".dat");
- // System.exit(1);
- }
-
-@@ -288,14 +285,14 @@
- }
- catch(IOException ex)
- {
-- spec.harness.Context.out.println("ERROR writing to output file "+dbname+".dat");
-+ System.out.println("ERROR writing to output file "+dbname+".dat");
- // System.exit(1);
- }
-
- buffer = null; // 03/11/98 rrh
- fos = null; // 03/11/98 rrh
-
-- spec.harness.Context.out.println("Done.");
-+ System.out.println("Done.");
- }
-
-
-@@ -346,7 +343,7 @@
- printRec();
- }
- else
-- spec.harness.Context.out.println("Invalid record number ("+(rec+1)+")");
-+ System.out.println("Invalid record number ("+(rec+1)+")");
- }
-
-
-@@ -387,7 +384,7 @@
- if ( (current_record >= index.length) || (current_record < 0) )
- return;
-
-- spec.harness.Context.out.println("---- Record number "+(current_record+1)+" ----");
-+ System.out.println("---- Record number "+(current_record+1)+" ----");
-
- entry = index[current_record];
-
-@@ -400,18 +397,18 @@
- s = ((String)f.nextElement());
-
- if ( s != null )
-- spec.harness.Context.out.print(s);
-+ System.out.print(s);
- else
- {
- s = (String)i.nextElement();
-- spec.harness.Context.out.println(s);
-+ System.out.println(s);
- }
- }
-
- i = null; // 03/11/98 rrh
- f = null; // 03/11/98 rrh
-
-- spec.harness.Context.out.println();
-+ System.out.println();
- }
-
-
-@@ -445,15 +442,15 @@
- if ( field != null )
- {
- // These create too much output for benchmark - rrh
-- //spec.harness.Context.out.print(field);
-- //spec.harness.Context.out.flush();
-+ //System.out.print(field);
-+ //System.out.flush();
- }
- else
- {
- try { s = dis.readLine(); }
- catch (IOException e)
- {
-- spec.harness.Context.out.println("input error");
-+ System.out.println("input error");
- // System.exit(1);
- }
-
-@@ -485,20 +482,20 @@
- if ( field != null )
- {
- // Reduce output
-- //spec.harness.Context.out.print(field);
-- //spec.harness.Context.out.flush();
-+ //System.out.print(field);
-+ //System.out.flush();
- }
- else
- {
- os = (String)(((Entry)index[current_record]).items.elementAt(fn));
- // Reduce output
-- //spec.harness.Context.out.print(" ("+os+") ");
-- //spec.harness.Context.out.flush();
-+ //System.out.print(" ("+os+") ");
-+ //System.out.flush();
-
- try { s = dis.readLine(); }
- catch (IOException e)
- {
-- spec.harness.Context.out.println("input error");
-+ System.out.println("input error");
- // System.exit(1);
- }
-
-@@ -520,7 +517,7 @@
- public void status()
- {
- if ( index == null ) set_index();
-- spec.harness.Context.out.println("Record "+(current_record+1)+" of "+index.length);
-+ System.out.println("Record "+(current_record+1)+" of "+index.length);
- }
-
- private String fieldValue;
-@@ -546,15 +543,15 @@
- if ( fs != null )
- {
- // Reduce output
-- //spec.harness.Context.out.print(fs);
-- //spec.harness.Context.out.flush();
-+ //System.out.print(fs);
-+ //System.out.flush();
- }
- else
- {
- try { fieldValue = dis.readLine(); }
- catch (IOException ex)
- {
-- spec.harness.Context.out.println("input error");
-+ System.out.println("input error");
- // System.exit(1);
- }
-
-@@ -595,25 +592,25 @@
- if ( fn != fnum )
- {
- // Reduce output
-- //spec.harness.Context.out.print("Sorting on requested fieldname ... ");
-- //spec.harness.Context.out.flush();
-+ //System.out.print("Sorting on requested fieldname ... ");
-+ //System.out.flush();
- shell_sort(fn);
- }
- else
- {
-- //spec.harness.Context.out.print("Already sorted");
-+ //System.out.print("Already sorted");
- }
-
-
- // Reduce output
-- //spec.harness.Context.out.print("\nSearching ... ");
-- //spec.harness.Context.out.flush();
-+ //System.out.print("\nSearching ... ");
-+ //System.out.flush();
-
- if ( (rec = lookup(fieldValue, fnum)) < 0 )
-- spec.harness.Context.out.println("NOT found");
-+ System.out.println("NOT found");
- else
- {
-- spec.harness.Context.out.println();
-+ System.out.println();
-
- while ( rec >= 0 )
- {
-diff -Nu db1/Main.java db/Main.java
---- db1/Main.java Wed Jun 17 23:23:17 1998
-+++ db/Main.java Sat Nov 30 16:02:53 2002
-@@ -23,33 +23,30 @@
- * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
- */
-
--package spec.benchmarks._209_db;
--import spec.harness.*;
--
- import java.io.*;
- import java.util.*;
-
-
--public class Main implements SpecBenchmark
--{
-+public class Main {
-+
- private boolean standalone = true;
-
- static void help()
- {
-- spec.harness.Context.out.println("a - add record");
-- spec.harness.Context.out.println("b - show beginning record");
-- spec.harness.Context.out.println("d - delete record");
-- spec.harness.Context.out.println("e - show end record");
-- spec.harness.Context.out.println("f - find record");
-- spec.harness.Context.out.println("m - modify record");
-- spec.harness.Context.out.println("n - next entry");
-- spec.harness.Context.out.println("p - previous record");
-- spec.harness.Context.out.println("q - quit");
-- spec.harness.Context.out.println("w - write database");
-- spec.harness.Context.out.println("s - sort");
-- spec.harness.Context.out.println(". - current record number");
-- spec.harness.Context.out.println("x - Total records");
-- spec.harness.Context.out.println("num - goto record number 'num'");
-+ System.out.println("a - add record");
-+ System.out.println("b - show beginning record");
-+ System.out.println("d - delete record");
-+ System.out.println("e - show end record");
-+ System.out.println("f - find record");
-+ System.out.println("m - modify record");
-+ System.out.println("n - next entry");
-+ System.out.println("p - previous record");
-+ System.out.println("q - quit");
-+ System.out.println("w - write database");
-+ System.out.println("s - sort");
-+ System.out.println(". - current record number");
-+ System.out.println("x - Total records");
-+ System.out.println("num - goto record number 'num'");
- }
-
-
-@@ -57,7 +54,7 @@
-
- static long runBenchmark( String[] args ) {
-
-- int speed = spec.harness.Context.getSpeed();
-+ int speed = 100;
-
- // if( args.length == 0 ) {
- if( speed == 100 ) {
-@@ -95,13 +92,13 @@
- long starttime = System.currentTimeMillis();
- try {
- int iter = 1; //spec.harness.Context.getSpeed();
-- spec.harness.Context.out.println( "db " + iter + " iterations " );
-+ System.out.println( "db " + iter + " iterations " );
-
- for( int i = 0 ; i < iter ; i++ ) { //**NS**
- run(argv);
- }
- } catch (IOException e) {
-- spec.harness.Context.out.println("Error in run() method");
-+ System.out.println("Error in run() method");
- }
- return System.currentTimeMillis() - starttime;
- }
-@@ -113,7 +110,7 @@
- String s;
- Database db;
- DataInputStream dis = null;
-- dis = new DataInputStream( new spec.io.FileInputStream( arg[1]) );
-+ dis = new DataInputStream( new java.io.FileInputStream( arg[1]) );
-
- boolean OK = true;
- boolean changed = false;
-@@ -127,7 +124,7 @@
- while ( OK )
- {
- // Reduce output
-- //spec.harness.Context.out.print(": "); spec.harness.Context.out.flush();
-+ //System.out.print(": "); System.out.flush();
-
- s = dis.readLine();
-
-@@ -148,27 +145,27 @@
- {
- case 'a':
- db.add(db.getEntry(dis));
-- //spec.harness.Context.out.println("Number of records: "+db.numRecords());
-+ //System.out.println("Number of records: "+db.numRecords());
- // Really reduce output
-- //spec.harness.Context.out.println(db.numRecords()+" ");
-+ //System.out.println(db.numRecords()+" ");
- changed = true;
- break;
-
- case 'h': help(); break;
-
- case 'd':
-- //spec.harness.Context.out.print("Delete record "+(db.currentRec()+1)+" y/n? ");
-- //spec.harness.Context.out.print("d "+(db.currentRec()+1)+" y/n? ");
-- //spec.harness.Context.out.print(db.currentRec()+1+" ");
-- //spec.harness.Context.out.flush();
-+ //System.out.print("Delete record "+(db.currentRec()+1)+" y/n? ");
-+ //System.out.print("d "+(db.currentRec()+1)+" y/n? ");
-+ //System.out.print(db.currentRec()+1+" ");
-+ //System.out.flush();
- s = dis.readLine();
- if ( s.length() > 0 )
- {
- if ( s.charAt(0) == 'y' )
- {
- db.remove();
-- //spec.harness.Context.out.println("Number of records: "+db.numRecords());
-- //spec.harness.Context.out.println(db.numRecords());
-+ //System.out.println("Number of records: "+db.numRecords());
-+ //System.out.println(db.numRecords());
- changed = true;
- }
- }
-@@ -213,7 +210,7 @@
-
- if ( changed )
- {
-- spec.harness.Context.out.print("Save database (y or n)? "); spec.harness.Context.out.flush();
-+ System.out.print("Save database (y or n)? "); System.out.flush();
- s = dis.readLine();
-
- if ( (s.charAt(0) != 'n') && standalone )
+++ /dev/null
-db 1 iterations
-Reading database input/db6 ... OK
-Building database ...Done.
-NOT found
----- Record number 5000 ----
-Full name
- Last: Hendricks
- First: Todd
- MI: K
-Address
- Addr: 4140 South Cottonwood Blvd
- City: Galveston
- State: Connecticut
- ZIP: 28010
- Phone #: (132) 677-7327
-
-NOT found
----- Record number 5000 ----
-Full name
- Last: Hendricks
- First: Xaiver
- MI: A
-Address
- Addr: 6834 West Northwood Av
- City: Circleville
- State: Kansas
- ZIP: 11316
- Phone #: (242) 173-4891
-
-NOT found
----- Record number 5000 ----
-Full name
- Last: Hendricks
- First: Linda
- MI: G
-Address
- Addr: 1162 West Edmond
- City: Flat Head
- State: South Carolina
- ZIP: 38653
- Phone #: (121) 163-6018
-
-NOT found
-NOT found
----- Record number 5000 ----
-Full name
- Last: Hendricks
- First: George
- MI: P
-Address
- Addr: 8030 East Murphy
- City: Alpine
- State: Kentucky
- ZIP: 09790
- Phone #: (169) 364-9962
-
-NOT found
-NOT found
----- Record number 5000 ----
-Full name
- Last: Hendricks
- First: Tamara
- MI: X
-Address
- Addr: 4630 North Highland Dr
- City: Circleville
- State: Pennsylvania
- ZIP: 00414-9385
- Phone #: (375) 242-4953
-
-NOT found
-NOT found
----- Record number 5000 ----
-Full name
- Last: Hendricks
- First: Zelma
- MI: L
-Address
- Addr: 4797 South Ridgewood Lane
- City: Lamont
- State: Iowa
- ZIP: 45812
- Phone #: (321) 881-9749
-
-NOT found
-NOT found
----- Record number 5000 ----
-Full name
- Last: Hernandez
- First: Faith
- MI: O
-Address
- Addr: 7044 East Willowbrook
- City: Sanford
- State: Arkansas
- ZIP: 15407-7251
- Phone #: (919) 623-7368
-
-NOT found
----- Record number 5000 ----
-Full name
- Last: Hendricks
- First: Jake
- MI: S
-Address
- Addr: P.O. Box 498
- City: Fresno
- State: Kentucky
- ZIP: 04625
- Phone #: (905) 747-0285
-
----- Record number 1 ----
-Full name
- Last: Fisher
- First: Aaron
- MI: O
-Address
- Addr: 8489 West Cumberland
- City: Brandon
- State: Nevada
- ZIP: 35534
- Phone #: (464) 691-3947
-
----- Record number 15272 ----
-Full name
- Last: Stevensen
- First: Zelma
- MI: Y
-Address
- Addr: 611 Airport Way
- City: Sanford
- State: Alaska
- ZIP: 07509
- Phone #: (615) 750-3563
-
----- Record number 1 ----
-Full name
- Last: Johnston
- First: Ike
- MI: P
-Address
- Addr: 7130 East Wallace
- City: Paris
- State: Alabama
- ZIP: 07895
- Phone #: (659) 814-4503
-
-NOT found
----- Record number 4000 ----
-Full name
- Last: Glass
- First: Zane
- MI: M
-Address
- Addr: 6043 Wagon Wheel Circle
- City: Washington
- State: North Dakota
- ZIP: 22743
- Phone #: (781) 479-5710
-
-NOT found
----- Record number 6000 ----
-Full name
- Last: Jordan
- First: Bobby
- MI: A
-Address
- Addr: P.O. Box 5872
- City: Kasota
- State: California
- ZIP: 06408
- Phone #: (526) 916-8244
-
----- Record number 15273 ----
-Full name
- Last: Hayden
- First: Charlie
- MI:
-Address
- Addr: 111 Eagle Pass
- City: Kuttawa
- State: Kentucky
- ZIP: 43210
- Phone #: (800) 867-5309
-
-NOT found
----- Record number 6000 ----
-Full name
- Last: Jordan
- First: Gerald
- MI: D
-Address
- Addr: P.O. Box 8143
- City: Troy
- State: Michigan
- ZIP: 46205
- Phone #: (987) 528-4503
-
----- Record number 1 ----
-Full name
- Last: Weatherby
- First: Frank
- MI: D
-Address
- Addr: 2911 South Fountainwood Ln
- City: Lexington
- State: Minnesota
- ZIP: 01564
- Phone #: (616) 327-4172
-
----- Record number 2 ----
-Full name
- Last: Becker
- First: Greg
- MI: V
-Address
- Addr: 5145 North Virginia
- City: Middletown
- State: Oregon
- ZIP: 23941
- Phone #: (725) 685-0911
-
----- Record number 3 ----
-Full name
- Last: Adair
- First: Barbara
- MI: I
-Address
- Addr: 5703 Rio Grande
- City: Troy
- State: Florida
- ZIP: 29820
- Phone #: (965) 274-9108
-
----- Record number 4 ----
-Full name
- Last: Connors
- First: Nancy
- MI: Z
-Address
- Addr: 7719 West Elm
- City: Benton
- State: Rhode Island
- ZIP: 15808
- Phone #: (437) 894-8762
-
----- Record number 15262 ----
-Full name
- Last: Walden
- First: Pete
- MI: X
-Address
- Addr: P.O. Box 8978
- City: Bandera
- State: Tennessee
- ZIP: 01861
- Phone #: (872) 554-6376
-
----- Record number 15261 ----
-Full name
- Last: VonSpritzenhaugher
- First: Samantha
- MI: I
-Address
- Addr: 7812 South Spring Valley
- City: Gilmore
- State: Louisiana
- ZIP: 07504
- Phone #: (934) 778-0650
-
----- Record number 15260 ----
-Full name
- Last: Zimmerman
- First: Gena
- MI: Y
-Address
- Addr: 8104 North Stagecoach
- City: Eureka
- State: Alabama
- ZIP: 10131
- Phone #: (771) 365-3303
-
----- Record number 15259 ----
-Full name
- Last: Burns
- First: Bart
- MI: J
-Address
- Addr: P.O. Box 6187
- City: Galveston
- State: South Carolina
- ZIP: 61796
- Phone #: (738) 984-7415
-
-Save database (y or n)?
\ No newline at end of file
+++ /dev/null
-diff -u javac1/input/lib/spec/benchmarks/_202_jess/Main.java javac/input/lib/spec/benchmarks/_202_jess/Main.java
---- javac1/input/lib/spec/benchmarks/_202_jess/Main.java Wed Jun 17 01:31:47 1998
-+++ javac/input/lib/spec/benchmarks/_202_jess/Main.java Mon Dec 2 00:03:00 2002
-@@ -5,7 +5,7 @@
-
- static long runBenchmark( String[] args ) {
-
-- int speed = 1;
-+ int speed = 100;
-
- if( speed == 100 ) {
- args = new String[1];
---- javac1/input/Middle.java Wed Nov 12 00:51:07 1997
-+++ javac/input/Middle.java Mon Dec 2 00:40:16 2002
-@@ -1,5 +1,5 @@
-
--public class Middle {
-+public class Main {
-
- public static void main(String args[]){
-
-diff -Nu javac2/postoutput.sh javac/postoutput.sh
---- javac2/postoutput.sh Thu Jan 1 01:00:00 1970
-+++ javac/postoutput.sh Mon Dec 2 09:53:53 2002
-@@ -0,0 +1,6 @@
-+unset LANG LC_ALL LC_COLLATE
-+rm -f *.class
-+$JAVAC -target 1.3 -classpath classes.zip JavaLex.java
-+rm -fr sun
-+$JAVA JavaLex sample.lex
-+cat sample.lex.java >> javac.output
-diff -Nu javac2/setup.sh javac/setup.sh
---- javac2/setup.sh Thu Jan 1 01:00:00 1970
-+++ javac/setup.sh Mon Dec 2 12:52:56 2002
-@@ -0,0 +1,6 @@
-+rm -f *.class
-+mv input/* .
-+mv Middle.java Main.java
-+cp ../jvm98/spec/benchmarks/_*_jess/input/* input
-+mv lib/spec .
-+$JAVAC -d . spec/*/*/*.java
-diff -Nu javac2/sample.lex javac/sample.lex
---- javac2/sample.lex Thu Jan 1 01:00:00 1970
-+++ javac/sample.lex Wed Sep 6 16:09:48 2000
-@@ -0,0 +1,159 @@
-+import java.lang.System;
-+
-+class Sample {
-+ public static void main(String argv[]) throws java.io.IOException {
-+ Yylex yy = new Yylex(System.in);
-+ Yytoken t;
-+ while ((t = yy.yylex()) != null)
-+ System.out.println(t);
-+ }
-+}
-+
-+class Utility {
-+ public static void assert
-+ (
-+ boolean expr
-+ )
-+ {
-+ if (false == expr) {
-+ throw (new Error("Error: Assertion failed."));
-+ }
-+ }
-+
-+ private static final String errorMsg[] = {
-+ "Error: Unmatched end-of-comment punctuation.",
-+ "Error: Unmatched start-of-comment punctuation.",
-+ "Error: Unclosed string.",
-+ "Error: Illegal character."
-+ };
-+
-+ public static final int E_ENDCOMMENT = 0;
-+ public static final int E_STARTCOMMENT = 1;
-+ public static final int E_UNCLOSEDSTR = 2;
-+ public static final int E_UNMATCHED = 3;
-+
-+ public static void error
-+ (
-+ int code
-+ )
-+ {
-+ System.out.println(errorMsg[code]);
-+ }
-+}
-+
-+class Yytoken {
-+ Yytoken
-+ (
-+ int index,
-+ String text,
-+ int line,
-+ int charBegin,
-+ int charEnd
-+ )
-+ {
-+ m_index = index;
-+ m_text = new String(text);
-+ m_line = line;
-+ m_charBegin = charBegin;
-+ m_charEnd = charEnd;
-+ }
-+
-+ public int m_index;
-+ public String m_text;
-+ public int m_line;
-+ public int m_charBegin;
-+ public int m_charEnd;
-+ public String toString() {
-+ return "Token #"+m_index+": "+m_text+" (line "+m_line+")";
-+ }
-+}
-+
-+%%
-+
-+%{
-+ private int comment_count = 0;
-+%}
-+%line
-+%char
-+%state COMMENT
-+
-+ALPHA=[A-Za-z]
-+DIGIT=[0-9]
-+NONNEWLINE_WHITE_SPACE_CHAR=[\ \t\b\012]
-+WHITE_SPACE_CHAR=[\n\ \t\b\012]
-+STRING_TEXT=(\\\"|[^\n\"]|\\{WHITE_SPACE_CHAR}+\\)*
-+COMMENT_TEXT=([^/*\n]|[^*\n]"/"[^*\n]|[^/\n]"*"[^/\n]|"*"[^/\n]|"/"[^*\n])*
-+
-+
-+%%
-+
-+<YYINITIAL> "," { return (new Yytoken(0,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> ":" { return (new Yytoken(1,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> ";" { return (new Yytoken(2,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> "(" { return (new Yytoken(3,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> ")" { return (new Yytoken(4,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> "[" { return (new Yytoken(5,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> "]" { return (new Yytoken(6,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> "{" { return (new Yytoken(7,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> "}" { return (new Yytoken(8,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> "." { return (new Yytoken(9,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> "+" { return (new Yytoken(10,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> "-" { return (new Yytoken(11,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> "*" { return (new Yytoken(12,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> "/" { return (new Yytoken(13,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> "=" { return (new Yytoken(14,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> "<>" { return (new Yytoken(15,yytext(),yyline,yychar,yychar+2)); }
-+<YYINITIAL> "<" { return (new Yytoken(16,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> "<=" { return (new Yytoken(17,yytext(),yyline,yychar,yychar+2)); }
-+<YYINITIAL> ">" { return (new Yytoken(18,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> ">=" { return (new Yytoken(19,yytext(),yyline,yychar,yychar+2)); }
-+<YYINITIAL> "&" { return (new Yytoken(20,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> "|" { return (new Yytoken(21,yytext(),yyline,yychar,yychar+1)); }
-+<YYINITIAL> ":=" { return (new Yytoken(22,yytext(),yyline,yychar,yychar+2)); }
-+
-+<YYINITIAL> {NONNEWLINE_WHITE_SPACE_CHAR}+ { }
-+
-+<YYINITIAL,COMMENT> \n { }
-+
-+<YYINITIAL> "/*" { yybegin(COMMENT); comment_count = comment_count + 1; }
-+
-+<COMMENT> "/*" { comment_count = comment_count + 1; }
-+<COMMENT> "*/" {
-+ comment_count = comment_count - 1;
-+ Utility.assert(comment_count >= 0);
-+ if (comment_count == 0) {
-+ yybegin(YYINITIAL);
-+ }
-+}
-+<COMMENT> {COMMENT_TEXT} { }
-+
-+<YYINITIAL> \"{STRING_TEXT}\" {
-+ String str = yytext().substring(1,yytext().length() - 1);
-+
-+ Utility.assert(str.length() == yytext().length() - 2);
-+ return (new Yytoken(40,str,yyline,yychar,yychar + str.length()));
-+}
-+<YYINITIAL> \"{STRING_TEXT} {
-+ String str = yytext().substring(1,yytext().length());
-+
-+ Utility.error(Utility.E_UNCLOSEDSTR);
-+ Utility.assert(str.length() == yytext().length() - 1);
-+ return (new Yytoken(41,str,yyline,yychar,yychar + str.length()));
-+}
-+<YYINITIAL> {DIGIT}+ {
-+ return (new Yytoken(42,yytext(),yyline,yychar,yychar + yytext().length()));
-+}
-+<YYINITIAL> {ALPHA}({ALPHA}|{DIGIT}|_)* {
-+ return (new Yytoken(43,yytext(),yyline,yychar,yychar + yytext().length()));
-+}
-+<YYINITIAL,COMMENT> . {
-+ System.out.println("Illegal character: <" + yytext() + ">");
-+ Utility.error(Utility.E_UNMATCHED);
-+}
-+
-+
-+
-+
-+
-+
-+
---- javac1/input/lib/spec/benchmarks/_202_jess/Funcall.java 2004-08-03 18:29:03.000000000 +0200
-+++ javac/input/lib/spec/benchmarks/_202_jess/Funcall.java 2004-08-03 18:02:35.000000000 +0200
-@@ -265,9 +265,9 @@
-
- engine.advance();
- switch (engine.st.ttype) {
-- case engine.st.TT_WORD:
-+ case StreamTokenizer.TT_WORD:
- return new Value(RU.putAtom(engine.st.sval), RU.ATOM);
-- case engine.st.TT_NUMBER:
-+ case StreamTokenizer.TT_NUMBER:
- return new Value(engine.st.nval, RU.FLOAT);
- case '"':
- return new Value(RU.putAtom(engine.st.sval), RU.STRING);
---- javac1/input/lib/spec/benchmarks/_202_jess/Jesp.java 2004-08-03 18:29:03.000000000 +0200
-+++ javac/input/lib/spec/benchmarks/_202_jess/Jesp.java 2004-08-03 18:05:05.000000000 +0200
-@@ -104,12 +104,12 @@
-
- private Value ParseSexp() throws ReteException {
- if (st.ttype != '(')
-- if (advance() != st.TT_WORD)
-+ if (advance() != StreamTokenizer.TT_WORD)
- throw new ReteException("Jesp::ParseSexp", "Expected '(' at line " + st.lineno(),
- "" + st.ttype);
-
- /* first symbol is always a word */
-- if (advance() != st.TT_WORD)
-+ if (advance() != StreamTokenizer.TT_WORD)
- throw new ReteException("Jesp::ParseSexp", "Expected an atom at line "+st.lineno(),
- "" + st.ttype);
-
-@@ -153,7 +153,7 @@
- while (st.ttype == '?') {
- advance();
- // name of variable expected
-- if (st.ttype != st.TT_WORD)
-+ if (st.ttype != StreamTokenizer.TT_WORD)
- throw new ReteException("Jesp::ParseDefglobal",
- "Expected an atom for variable at line " + st.lineno(),
- "" + st.ttype);
-@@ -164,9 +164,9 @@
- advance();
-
- switch (st.ttype) {
-- case st.TT_WORD:
-+ case StreamTokenizer.TT_WORD:
- dg.AddGlobal(g, new Value(st.sval, RU.ATOM)); break;
-- case st.TT_NUMBER:
-+ case StreamTokenizer.TT_NUMBER:
- dg.AddGlobal(g, new Value(st.nval, RU.FLOAT)); break;
- case '"':
- dg.AddGlobal(g, new Value(st.sval, RU.STRING)); break;
-@@ -207,7 +207,7 @@
- advance();
-
- // name of deffacts required
-- if (st.ttype != st.TT_WORD)
-+ if (st.ttype != StreamTokenizer.TT_WORD)
- throw new ReteException("Jesp::ParseDeffacts", "Expected an atom at line "
- + st.lineno(), "" + st.ttype);
-
-@@ -267,7 +267,7 @@
- advance();
-
- // name of defrule required
-- if (st.ttype != st.TT_WORD)
-+ if (st.ttype != StreamTokenizer.TT_WORD)
- throw new ReteException("Jesp::ParseDefrule", "Expected an atom at line "
- + st.lineno(), "" + st.ttype);
- name = st.sval;
-@@ -345,7 +345,7 @@
- dr.AddPattern(p);
- }
-
-- if (st.ttype != st.TT_WORD || !st.sval.equals("=>"))
-+ if (st.ttype != StreamTokenizer.TT_WORD || !st.sval.equals("=>"))
- throw new ReteException("Jesp::ParseDefrule","expected '=>' in rule at line "
- + st.lineno(), name);
- advance(); // throw out '=>'
-@@ -382,7 +382,7 @@
- advance();
-
- // name of deffunction required
-- if (st.ttype != st.TT_WORD)
-+ if (st.ttype != StreamTokenizer.TT_WORD)
- throw new ReteException("Jesp::ParseDeffunction", "Expected an atom at line "
- + st.lineno(),"" + st.ttype);
- name = st.sval;
-@@ -446,7 +446,7 @@
-
- // class name
- advance();
-- if (st.ttype != st.TT_WORD)
-+ if (st.ttype != StreamTokenizer.TT_WORD)
- throw new ReteException("Jesp::ParseFact",
- "Bad class name at line " + st.lineno(),
- "\"" + (char) st.ttype + "\"");
-@@ -471,16 +471,16 @@
- f = new Fact(name, RU.UNORDERED_FACT, engine);
- while (st.ttype == '(') {
- advance();
-- if (st.ttype != st.TT_WORD)
-+ if (st.ttype != StreamTokenizer.TT_WORD)
- throw new ReteException("Jesp::ParseFact",
- "Bad slot name at line " + st.lineno(),
- "\"" + (char) st.ttype + "\"");
- slot = st.sval;
- advance();
- switch (st.ttype) {
-- case st.TT_WORD:
-+ case StreamTokenizer.TT_WORD:
- f.AddValue(slot, st.sval, RU.ATOM); break;
-- case st.TT_NUMBER:
-+ case StreamTokenizer.TT_NUMBER:
- f.AddValue(slot, st.nval, RU.FLOAT); break;
- case '"':
- f.AddValue(slot, st.sval, RU.STRING); break;
-@@ -508,9 +508,9 @@
- f = new Fact(name, RU.ORDERED_FACT, engine);
- while (st.ttype != ')') {
- switch (st.ttype) {
-- case st.TT_WORD:
-+ case StreamTokenizer.TT_WORD:
- f.AddValue(st.sval, RU.ATOM); break;
-- case st.TT_NUMBER:
-+ case StreamTokenizer.TT_NUMBER:
- f.AddValue(st.nval, RU.FLOAT); break;
- case '"':
- f.AddValue(st.sval, RU.STRING); break;
-@@ -564,7 +564,7 @@
-
- // class name
- advance();
-- if (st.ttype != st.TT_WORD)
-+ if (st.ttype != StreamTokenizer.TT_WORD)
- throw new ReteException("Jesp::ParsePattern",
- "Bad class name at line " + st.lineno(),
- "\"" + (char) st.ttype + "\"");
-@@ -597,7 +597,7 @@
- p = new Pattern(name, RU.UNORDERED_FACT, engine);
- while (st.ttype == '(') {
- advance();
-- if (st.ttype != st.TT_WORD)
-+ if (st.ttype != StreamTokenizer.TT_WORD)
- throw new ReteException("Jesp::ParsePattern",
- "Bad slot name at line " + st.lineno(),
- "\"" + (char) st.ttype + "\"");
-@@ -613,9 +613,9 @@
- }
-
- switch (st.ttype) {
-- case st.TT_WORD:
-+ case StreamTokenizer.TT_WORD:
- p.AddTest(slot, new Value(st.sval, RU.ATOM), not_slot); break;
-- case st.TT_NUMBER:
-+ case StreamTokenizer.TT_NUMBER:
- p.AddTest(slot, new Value(st.nval, RU.FLOAT), not_slot); break;
- case '"':
- p.AddTest(slot, new Value(st.sval, RU.STRING), not_slot); break;
-@@ -666,9 +666,9 @@
- }
-
- switch (st.ttype) {
-- case st.TT_WORD:
-+ case StreamTokenizer.TT_WORD:
- p.AddTest(new Value(st.sval, RU.ATOM), not_slot); break;
-- case st.TT_NUMBER:
-+ case StreamTokenizer.TT_NUMBER:
- p.AddTest(new Value(st.nval, RU.FLOAT), not_slot); break;
- case '"':
- p.AddTest(new Value(st.sval, RU.STRING), not_slot); break;
-@@ -724,7 +724,7 @@
-
- // functor
- switch (st.ttype) {
-- case st.TT_WORD:
-+ case StreamTokenizer.TT_WORD:
- name = st.sval;
- break;
- case '-': case '/':
-@@ -734,16 +734,16 @@
- default:
- throw new ReteException("Jesp::ParseFuncall",
- "Bad Functor at line " + st.lineno(),
-- "\"" + (char) st.ttype + "\"");;
-+ "\"" + (char) st.ttype + "\"");
- }
- advance();
-
- f = new Funcall(name, engine);
- while (st.ttype != ')') {
- switch (st.ttype) {
-- case st.TT_WORD:
-+ case StreamTokenizer.TT_WORD:
- f.AddArgument(st.sval, RU.ATOM); break;
-- case st.TT_NUMBER:
-+ case StreamTokenizer.TT_NUMBER:
- f.AddArgument(st.nval, RU.FLOAT); break;
- case '"':
- f.AddArgument(st.sval, RU.STRING); break;
-@@ -793,9 +793,9 @@
- pair.add(new Value(st.sval, RU.ATOM));
- advance();
- switch (st.ttype) {
-- case st.TT_WORD:
-+ case StreamTokenizer.TT_WORD:
- pair.add(new Value(st.sval, RU.ATOM)); break;
-- case st.TT_NUMBER:
-+ case StreamTokenizer.TT_NUMBER:
- pair.add(new Value(st.nval, RU.FLOAT)); break;
- case '"':
- pair.add(new Value(st.sval, RU.STRING)); break;
-@@ -833,7 +833,7 @@
- advance();
-
- // name of deftemplate: required
-- if (st.ttype == st.TT_WORD) {
-+ if (st.ttype == StreamTokenizer.TT_WORD) {
- name = st.sval;
- dt = new Deftemplate(st.sval, RU.UNORDERED_FACT);
- advance();
-@@ -853,17 +853,17 @@
- // Now we're looking for slot descriptors.
- while (st.ttype == '(') {
- advance();
-- if (st.ttype == st.TT_WORD)
-+ if (st.ttype == StreamTokenizer.TT_WORD)
- if (st.sval.equals("slot")) {
- advance();
-- if (st.ttype == st.TT_WORD) {
-+ if (st.ttype == StreamTokenizer.TT_WORD) {
- default_value = new Value(RU.NONE, RU.NONE);
- name = st.sval;
- advance();
- // parse slot descriptor fields
- while (st.ttype == '(') {
- advance();
-- if (st.ttype != st.TT_WORD)
-+ if (st.ttype != StreamTokenizer.TT_WORD)
- throw new ReteException("Jesp::ParseDeftemplate",
- "Syntax error at slot qualifier at line "
- + st.lineno(),
-@@ -871,9 +871,9 @@
- if (st.sval.equals("default")) {
- advance();
- switch (st.ttype) {
-- case st.TT_WORD:
-+ case StreamTokenizer.TT_WORD:
- default_value = new Value(RU.putAtom(st.sval), RU.ATOM); break;
-- case st.TT_NUMBER:
-+ case StreamTokenizer.TT_NUMBER:
- default_value = new Value(st.nval, RU.FLOAT); break;
- case '"':
- default_value = new Value(st.sval, RU.STRING); break;
---- javac1/input/JavaLex.java 2004-08-03 18:37:20.000000000 +0200
-+++ javac/input/JavaLex.java 2004-08-03 18:37:05.000000000 +0200
-@@ -1793,23 +1793,23 @@
- {
- switch (token)
- {
-- case m_lexGen.CLOSE_PAREN:
-- case m_lexGen.AT_EOL:
-- case m_lexGen.OR:
-- case m_lexGen.EOS:
-+ case CLexGen.CLOSE_PAREN:
-+ case CLexGen.AT_EOL:
-+ case CLexGen.OR:
-+ case CLexGen.EOS:
- return false;
-
-- case m_lexGen.CLOSURE:
-- case m_lexGen.PLUS_CLOSE:
-- case m_lexGen.OPTIONAL:
-+ case CLexGen.CLOSURE:
-+ case CLexGen.PLUS_CLOSE:
-+ case CLexGen.OPTIONAL:
- CError.parse_error(CError.E_CLOSE,m_input.m_line_number);
- return false;
-
-- case m_lexGen.CCL_END:
-+ case CLexGen.CCL_END:
- CError.parse_error(CError.E_BRACKET,m_input.m_line_number);
- return false;
-
-- case m_lexGen.AT_BOL:
-+ case CLexGen.AT_BOL:
- CError.parse_error(CError.E_BOL,m_input.m_line_number);
- return false;
-
-@@ -3407,7 +3407,6 @@
- lg = new CLexGen(arg[0]);
- lg.generate();
-
-- spec.benchmarks._202_jess.Main.main(null);
- }
- }
-
-@@ -8813,23 +8813,23 @@
- {
- switch (token)
- {
-- case m_lexGen.CLOSE_PAREN:
-- case m_lexGen.AT_EOL:
-- case m_lexGen.OR:
-- case m_lexGen.EOS:
-+ case CLexGen.CLOSE_PAREN:
-+ case CLexGen.AT_EOL:
-+ case CLexGen.OR:
-+ case CLexGen.EOS:
- return false;
-
-- case m_lexGen.CLOSURE:
-- case m_lexGen.PLUS_CLOSE:
-- case m_lexGen.OPTIONAL:
-+ case CLexGen.CLOSURE:
-+ case CLexGen.PLUS_CLOSE:
-+ case CLexGen.OPTIONAL:
- JJdTyoVCJ.parse_error(JJdTyoVCJ.E_CLOSE,m_input.m_line_number);
- return false;
-
-- case m_lexGen.CCL_END:
-+ case CLexGen.CCL_END:
- JJdTyoVCJ.parse_error(JJdTyoVCJ.E_BRACKET,m_input.m_line_number);
- return false;
-
-- case m_lexGen.AT_BOL:
-+ case CLexGen.AT_BOL:
- JJdTyoVCJ.parse_error(JJdTyoVCJ.E_BOL,m_input.m_line_number);
- return false;
-
-@@ -15831,23 +15831,23 @@
- {
- switch (token)
- {
-- case m_lexGen.CLOSE_PAREN:
-- case m_lexGen.AT_EOL:
-- case m_lexGen.OR:
-- case m_lexGen.EOS:
-+ case CLexGen.CLOSE_PAREN:
-+ case CLexGen.AT_EOL:
-+ case CLexGen.OR:
-+ case CLexGen.EOS:
- return false;
-
-- case m_lexGen.CLOSURE:
-- case m_lexGen.PLUS_CLOSE:
-- case m_lexGen.OPTIONAL:
-+ case CLexGen.CLOSURE:
-+ case CLexGen.PLUS_CLOSE:
-+ case CLexGen.OPTIONAL:
- fdUvxtAVx.parse_error(fdUvxtAVx.E_CLOSE,m_input.m_line_number);
- return false;
-
-- case m_lexGen.CCL_END:
-+ case CLexGen.CCL_END:
- fdUvxtAVx.parse_error(fdUvxtAVx.E_BRACKET,m_input.m_line_number);
- return false;
-
-- case m_lexGen.AT_BOL:
-+ case CLexGen.AT_BOL:
- fdUvxtAVx.parse_error(fdUvxtAVx.E_BOL,m_input.m_line_number);
- return false;
-
-@@ -22849,23 +22849,23 @@
- {
- switch (token)
- {
-- case m_lexGen.CLOSE_PAREN:
-- case m_lexGen.AT_EOL:
-- case m_lexGen.OR:
-- case m_lexGen.EOS:
-+ case CLexGen.CLOSE_PAREN:
-+ case CLexGen.AT_EOL:
-+ case CLexGen.OR:
-+ case CLexGen.EOS:
- return false;
-
-- case m_lexGen.CLOSURE:
-- case m_lexGen.PLUS_CLOSE:
-- case m_lexGen.OPTIONAL:
-+ case CLexGen.CLOSURE:
-+ case CLexGen.PLUS_CLOSE:
-+ case CLexGen.OPTIONAL:
- pERmcHeDz.parse_error(pERmcHeDz.E_CLOSE,m_input.m_line_number);
- return false;
-
-- case m_lexGen.CCL_END:
-+ case CLexGen.CCL_END:
- pERmcHeDz.parse_error(pERmcHeDz.E_BRACKET,m_input.m_line_number);
- return false;
-
-- case m_lexGen.AT_BOL:
-+ case CLexGen.AT_BOL:
- pERmcHeDz.parse_error(pERmcHeDz.E_BOL,m_input.m_line_number);
- return false;
-
-@@ -29867,23 +29867,23 @@
- {
- switch (token)
- {
-- case m_lexGen.CLOSE_PAREN:
-- case m_lexGen.AT_EOL:
-- case m_lexGen.OR:
-- case m_lexGen.EOS:
-+ case CLexGen.CLOSE_PAREN:
-+ case CLexGen.AT_EOL:
-+ case CLexGen.OR:
-+ case CLexGen.EOS:
- return false;
-
-- case m_lexGen.CLOSURE:
-- case m_lexGen.PLUS_CLOSE:
-- case m_lexGen.OPTIONAL:
-+ case CLexGen.CLOSURE:
-+ case CLexGen.PLUS_CLOSE:
-+ case CLexGen.OPTIONAL:
- KzuxJIHqb.parse_error(KzuxJIHqb.E_CLOSE,m_input.m_line_number);
- return false;
-
-- case m_lexGen.CCL_END:
-+ case CLexGen.CCL_END:
- KzuxJIHqb.parse_error(KzuxJIHqb.E_BRACKET,m_input.m_line_number);
- return false;
-
-- case m_lexGen.AT_BOL:
-+ case CLexGen.AT_BOL:
- KzuxJIHqb.parse_error(KzuxJIHqb.E_BOL,m_input.m_line_number);
- return false;
-
-@@ -36885,23 +36885,23 @@
- {
- switch (token)
- {
-- case m_lexGen.CLOSE_PAREN:
-- case m_lexGen.AT_EOL:
-- case m_lexGen.OR:
-- case m_lexGen.EOS:
-+ case CLexGen.CLOSE_PAREN:
-+ case CLexGen.AT_EOL:
-+ case CLexGen.OR:
-+ case CLexGen.EOS:
- return false;
-
-- case m_lexGen.CLOSURE:
-- case m_lexGen.PLUS_CLOSE:
-- case m_lexGen.OPTIONAL:
-+ case CLexGen.CLOSURE:
-+ case CLexGen.PLUS_CLOSE:
-+ case CLexGen.OPTIONAL:
- zYNGrmVJo.parse_error(zYNGrmVJo.E_CLOSE,m_input.m_line_number);
- return false;
-
-- case m_lexGen.CCL_END:
-+ case CLexGen.CCL_END:
- zYNGrmVJo.parse_error(zYNGrmVJo.E_BRACKET,m_input.m_line_number);
- return false;
-
-- case m_lexGen.AT_BOL:
-+ case CLexGen.AT_BOL:
- zYNGrmVJo.parse_error(zYNGrmVJo.E_BOL,m_input.m_line_number);
- return false;
-
-@@ -43903,23 +43903,23 @@
- {
- switch (token)
- {
-- case m_lexGen.CLOSE_PAREN:
-- case m_lexGen.AT_EOL:
-- case m_lexGen.OR:
-- case m_lexGen.EOS:
-+ case CLexGen.CLOSE_PAREN:
-+ case CLexGen.AT_EOL:
-+ case CLexGen.OR:
-+ case CLexGen.EOS:
- return false;
-
-- case m_lexGen.CLOSURE:
-- case m_lexGen.PLUS_CLOSE:
-- case m_lexGen.OPTIONAL:
-+ case CLexGen.CLOSURE:
-+ case CLexGen.PLUS_CLOSE:
-+ case CLexGen.OPTIONAL:
- ZonUICcHj.parse_error(ZonUICcHj.E_CLOSE,m_input.m_line_number);
- return false;
-
-- case m_lexGen.CCL_END:
-+ case CLexGen.CCL_END:
- ZonUICcHj.parse_error(ZonUICcHj.E_BRACKET,m_input.m_line_number);
- return false;
-
-- case m_lexGen.AT_BOL:
-+ case CLexGen.AT_BOL:
- ZonUICcHj.parse_error(ZonUICcHj.E_BOL,m_input.m_line_number);
- return false;
-
-@@ -50921,23 +50921,23 @@
- {
- switch (token)
- {
-- case m_lexGen.CLOSE_PAREN:
-- case m_lexGen.AT_EOL:
-- case m_lexGen.OR:
-- case m_lexGen.EOS:
-+ case CLexGen.CLOSE_PAREN:
-+ case CLexGen.AT_EOL:
-+ case CLexGen.OR:
-+ case CLexGen.EOS:
- return false;
-
-- case m_lexGen.CLOSURE:
-- case m_lexGen.PLUS_CLOSE:
-- case m_lexGen.OPTIONAL:
-+ case CLexGen.CLOSURE:
-+ case CLexGen.PLUS_CLOSE:
-+ case CLexGen.OPTIONAL:
- qvqQhISao.parse_error(qvqQhISao.E_CLOSE,m_input.m_line_number);
- return false;
-
-- case m_lexGen.CCL_END:
-+ case CLexGen.CCL_END:
- qvqQhISao.parse_error(qvqQhISao.E_BRACKET,m_input.m_line_number);
- return false;
-
-- case m_lexGen.AT_BOL:
-+ case CLexGen.AT_BOL:
- qvqQhISao.parse_error(qvqQhISao.E_BOL,m_input.m_line_number);
- return false;
-
+++ /dev/null
-There are five houses, each of a different color, inhabited by men of
-different nationalities, with different pets, drinks, and cigarettes.
-
-The Englishman lives in the red house. The Spaniard owns the dog.
-The ivory house is immediately to the left of the green house, where
-the coffee drinker lives. The milk drinker lives in the middle house.
-The man who smokes Old Golds also keeps snails. The Ukrainian drinks
-tea. The Norwegian resides in the first house on the left. The
-Chesterfields smoker lives next door to the fox owner. The Lucky
-Strike smoker drinks orange juice. The Japanese smokes Parliaments.
-The horse owner lives next to the Kools smoker, whose house is yellow.
-The Norwegian lives next to the blue house.
-
-Now, who drinks water? And who owns the zebra?
-
-HOUSE | Nationality Color Pet Drink Smokes
---------------------------------------------------------------------
- 1 |norwegian yellow fox water kools
- 2 |ukrainian blue horse tea chesterfields
- 3 |englishman red snails milk old-golds
- 4 |spaniard ivory dog orange-juice lucky-strikes
- 5 |japanese green zebra coffee parliaments
-
-
-The problem is
- GERALD
- + DONALD
- ------
- = ROBERT
- 1.0 9.0 7.0 4.0 8.0 5.0
- + 5.0 2.0 6.0 4.0 8.0 5.0
- ------
- = 7.0 2.0 3.0 9.0 7.0 0.0
-check #2.0= 15.0
- 1.0 9.0 7.0 4.0 8.0 5.0
- + 5.0 2.0 6.0 4.0 8.0 5.0
- ------
- = 7.0 2.0 3.0 9.0 7.0 0.0
-check #3.0= 16.0
- 1.0 9.0 7.0 4.0 8.0 5.0
- + 5.0 2.0 6.0 4.0 8.0 5.0
- ------
- = 7.0 2.0 3.0 9.0 7.0 0.0
-check #4.0= 17.0
- 1.0 9.0 7.0 4.0 8.0 5.0
- + 5.0 2.0 6.0 4.0 8.0 5.0
- ------
- = 7.0 2.0 3.0 9.0 7.0 0.0
-check #5.0= 18.0
- 1.0 9.0 7.0 4.0 8.0 5.0
- + 5.0 2.0 6.0 4.0 8.0 5.0
- ------
- = 7.0 2.0 3.0 9.0 7.0 0.0
-check #6.0= 19.0
- 1.0 9.0 7.0 4.0 8.0 5.0
- + 5.0 2.0 6.0 4.0 8.0 5.0
- ------
- = 7.0 2.0 3.0 9.0 7.0 0.0
-check #7.0= 20.0
- 1.0 9.0 7.0 4.0 8.0 5.0
- + 5.0 2.0 6.0 4.0 8.0 5.0
- ------
- = 7.0 2.0 3.0 9.0 7.0 0.0
-check #8.0= 21.0
- 1.0 9.0 7.0 4.0 8.0 5.0
- + 5.0 2.0 6.0 4.0 8.0 5.0
- ------
- = 7.0 2.0 3.0 9.0 7.0 0.0
-check #9.0= 22.0
- 1.0 9.0 7.0 4.0 8.0 5.0
- + 5.0 2.0 6.0 4.0 8.0 5.0
- ------
- = 7.0 2.0 3.0 9.0 7.0 0.0
-check #10.0= 23.0
- 1.0 9.0 7.0 4.0 8.0 5.0
- + 5.0 2.0 6.0 4.0 8.0 5.0
- ------
- = 7.0 2.0 3.0 9.0 7.0 0.0
-check #11.0= 24.0
- 1.0 9.0 7.0 4.0 8.0 5.0
- + 5.0 2.0 6.0 4.0 8.0 5.0
- ------
- = 7.0 2.0 3.0 9.0 7.0 0.0
-check #12.0= 25.0
- 1.0 9.0 7.0 4.0 8.0 5.0
- + 5.0 2.0 6.0 4.0 8.0 5.0
- ------
- = 7.0 2.0 3.0 9.0 7.0 0.0
-check #13.0= 26.0
- 1.0 9.0 7.0 4.0 8.0 5.0
- + 5.0 2.0 6.0 4.0 8.0 5.0
- ------
- = 7.0 2.0 3.0 9.0 7.0 0.0
-check #14.0= 27.0
- 1.0 9.0 7.0 4.0 8.0 5.0
- + 5.0 2.0 6.0 4.0 8.0 5.0
- ------
- = 7.0 2.0 3.0 9.0 7.0 0.0
-check #15.0= 28.0
-import java.lang.System;
-class Sample {
- public static void main(String argv[]) throws java.io.IOException {
- Yylex yy = new Yylex(System.in);
- Yytoken t;
- while ((t = yy.yylex()) != null)
- System.out.println(t);
- }
-}
-class Utility {
- public static void assert
- (
- boolean expr
- )
- {
- if (false == expr) {
- throw (new Error("Error: Assertion failed."));
- }
- }
- private static final String errorMsg[] = {
- "Error: Unmatched end-of-comment punctuation.",
- "Error: Unmatched start-of-comment punctuation.",
- "Error: Unclosed string.",
- "Error: Illegal character."
- };
- public static final int E_ENDCOMMENT = 0;
- public static final int E_STARTCOMMENT = 1;
- public static final int E_UNCLOSEDSTR = 2;
- public static final int E_UNMATCHED = 3;
- public static void error
- (
- int code
- )
- {
- System.out.println(errorMsg[code]);
- }
-}
-class Yytoken {
- Yytoken
- (
- int index,
- String text,
- int line,
- int charBegin,
- int charEnd
- )
- {
- m_index = index;
- m_text = new String(text);
- m_line = line;
- m_charBegin = charBegin;
- m_charEnd = charEnd;
- }
- public int m_index;
- public String m_text;
- public int m_line;
- public int m_charBegin;
- public int m_charEnd;
- public String toString() {
- return "Token #"+m_index+": "+m_text+" (line "+m_line+")";
- }
-}
-
-
-class Yylex {
- private static final int YY_BUFFER_SIZE = 512;
- private static final int YY_F = -1;
- private static final int YY_NO_STATE = -1;
- private static final byte YY_NOT_ACCEPT = 0;
- private static final int YY_START = 1;
- private static final int YY_END = 2;
- private static final byte YY_NO_ANCHOR = 4;
- public static final int YYEOF = -1;
-
- private int comment_count = 0;
- private java.io.DataInputStream yy_instream;
- private int yy_buffer_index;
- private int yy_buffer_read;
- private int yy_buffer_start;
- private int yy_buffer_end;
- private byte yy_buffer[];
- private int yy_char_count;
- private int yy_line_count;
- private int yy_lexical_state;
- Yylex (java.io.InputStream instream) {
- if (null == instream) {
- throw (new Error("Error: Bad input stream initializer."));
- }
- yy_instream = new java.io.DataInputStream(instream);
- yy_buffer = new byte[YY_BUFFER_SIZE];
- yy_buffer_read = 0;
- yy_buffer_index = 0;
- yy_buffer_start = 0;
- yy_buffer_end = 0;
- yy_char_count = 0;
- yy_line_count = 0;
- yy_lexical_state = YYINITIAL;
- }
- private boolean yy_eof_done = false;
- private final int YYINITIAL = 0;
- private final int COMMENT = 1;
- private final int yy_state_dtrans[] = {
- 0,
- 31
- };
- private void yybegin (int state) {
- yy_lexical_state = state;
- }
- private int yy_advance ()
- throws java.io.IOException {
- int next_read;
- int i;
- int j;
-
- if (yy_buffer_index < yy_buffer_read) {
- return yy_buffer[yy_buffer_index++] & 0xFF;
- }
-
- if (0 != yy_buffer_start) {
- i = yy_buffer_start;
- j = 0;
- while (i < yy_buffer_read) {
- yy_buffer[j] = yy_buffer[i];
- ++i;
- ++j;
- }
- yy_buffer_end = yy_buffer_end - yy_buffer_start;
- yy_buffer_start = 0;
- yy_buffer_read = j;
- yy_buffer_index = j;
- next_read = yy_instream.read(yy_buffer,
- yy_buffer_read,
- yy_buffer.length - yy_buffer_read);
- if (-1 == next_read) {
- return YYEOF;
- }
- yy_buffer_read = yy_buffer_read + next_read;
- }
-
- while (yy_buffer_index >= yy_buffer_read) {
- if (yy_buffer_index >= yy_buffer.length) {
- yy_buffer = yy_double(yy_buffer);
- }
- next_read = yy_instream.read(yy_buffer,
- yy_buffer_read,
- yy_buffer.length - yy_buffer_read);
- if (-1 == next_read) {
- return YYEOF;
- }
- yy_buffer_read = yy_buffer_read + next_read;
- }
- return yy_buffer[yy_buffer_index++] & 0xFF;
- }
- private void yy_move_start () {
- if ((byte) '\n' == yy_buffer[yy_buffer_start]) {
- ++yy_line_count; yy_char_count = 0;
- }
- ++yy_char_count;
- ++yy_buffer_start;
- }
- private void yy_pushback () {
- --yy_buffer_end;
- }
- private void yy_mark_start () {
- int i;
- for (i = yy_buffer_start; i < yy_buffer_index; ++i) {
- if ((byte) '\n' == yy_buffer[i]) {
- ++yy_line_count; yy_char_count = 0;
- }
- ++yy_char_count;
- }
- yy_buffer_start = yy_buffer_index;
- }
- private void yy_mark_end () {
- yy_buffer_end = yy_buffer_index;
- }
- private void yy_to_mark () {
- yy_buffer_index = yy_buffer_end;
- }
- private java.lang.String yy_gettext () {
- return (new java.lang.String(yy_buffer,0,
- yy_buffer_start,
- yy_buffer_end - yy_buffer_start));
- }
-private char[] yy_getcharArray()
- {
- int count = yy_buffer_end - yy_buffer_start;
- char value[] = new char[count];
- for( int i = count ; i-- > 0 ; )
- value[i] = (char) (yy_buffer[i + yy_buffer_start] & 0xff);
- return value;
- }
- private int yy_getchar () {
- return yy_char_count;
- }
- private int yy_getline () {
- return yy_line_count;
- }
- private byte[] yy_double (byte buf[]) {
- int i;
- byte newbuf[];
- newbuf = new byte[2*buf.length];
- for (i = 0; i < buf.length; ++i) {
- newbuf[i] = buf[i];
- }
- return newbuf;
- }
- private final int YY_E_INTERNAL = 0;
- private final int YY_E_MATCH = 1;
- private java.lang.String yy_error_string[] = {
- "Error: Internal error.\n",
- "Error: Unmatched input.\n"
- };
- private void yy_error (int code,boolean fatal) {
- java.lang.System.out.print(yy_error_string[code]);
- java.lang.System.out.flush();
- if (true == fatal) {
- throw new Error("Fatal Error.\n");
- }
- }
- private byte yy_acpt[] = {
- YY_NOT_ACCEPT,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NOT_ACCEPT,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NOT_ACCEPT,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NO_ANCHOR,
- YY_NOT_ACCEPT,
- YY_NO_ANCHOR
- };
- private short yy_cmap[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 3, 0, 0, 0, 4, 0,
- 5, 6, 7, 8, 9, 10, 11, 12,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 14, 15, 16, 17, 18, 0,
- 0, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 20, 21, 22, 0, 23,
- 0, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 24, 25, 26, 0, 0
-
- };
- private short yy_rmap[] = {
- 0, 1, 2, 3, 1, 1, 1, 1,
- 1, 1, 1, 1, 4, 5, 6, 1,
- 7, 1, 8, 9, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 10,
- 1, 1, 1, 11, 12, 13, 3, 14,
- 15, 16, 17, 18, 19, 20
- };
- private short yy_nxt[][] = {
- { 1, 2, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 1, 21, 1,
- 22, 23, 24
- },
- { -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1
- },
- { -1, 2, 2, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1
- },
- { 3, 3, -1, 25, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 37, 3, 3,
- 3, 3, 3
- },
- { -1, -1, -1, -1, -1, -1, -1, 26,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1
- },
- { -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 13, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1
- },
- { -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 27, -1, -1, -1, -1, -1, -1,
- -1, -1, -1
- },
- { -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 28, 29, -1, -1, -1, -1, -1,
- -1, -1, -1
- },
- { -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 30, -1, -1, -1, -1, -1, -1,
- -1, -1, -1
- },
- { -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 19, -1, -1,
- -1, -1, -1, 19, -1, -1, -1, 19,
- -1, -1, -1
- },
- { 39, 39, 32, 39, 39, 39, 39, 36,
- 39, 39, 39, 39, 41, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39
- },
- { -1, 35, 35, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 3, -1, -1,
- -1, -1, -1
- },
- { 39, 39, -1, 39, 39, 39, 39, 43,
- 39, 39, 39, 39, 33, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39
- },
- { 3, 42, 35, 38, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 37, 3, 3,
- 3, 3, 3
- },
- { 39, 39, -1, 39, 39, 39, 39, 40,
- 39, 39, 39, 39, 44, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39
- },
- { 39, 39, -1, 39, 39, 39, 39, 43,
- 39, 39, 39, 39, -1, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39
- },
- { 39, 39, -1, 39, 39, 39, 39, 34,
- 39, 39, 39, 39, 45, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39
- },
- { 3, 42, 35, 25, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 37, 3, 3,
- 3, 3, 3
- },
- { 39, 39, -1, 39, 39, 39, 39, 43,
- 39, 39, 39, 39, 44, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39
- },
- { 39, 39, -1, 39, 39, 39, 39, -1,
- 39, 39, 39, 39, 45, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39
- },
- { 39, 39, -1, 39, 39, 39, 39, 40,
- 39, 39, 39, 39, 45, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39
- }
- };
- public Yytoken yylex ()
- throws java.io.IOException {
- int yy_lookahead;
- int yy_anchor = YY_NO_ANCHOR;
- int yy_state = yy_state_dtrans[yy_lexical_state];
- int yy_next_state = YY_NO_STATE;
- int yy_last_accept_state = YY_NO_STATE;
- boolean yy_initial = true;
- byte yy_this_accept;
- int yychar;
- int yyline;
- java.lang.String yytext;
-
- yy_mark_start();
- yy_this_accept = yy_acpt[yy_state];
- if (YY_NOT_ACCEPT != yy_this_accept) {
- yy_last_accept_state = yy_state;
- yy_mark_end();
- }
- while (true) {
- yy_lookahead = yy_advance();
- yy_next_state = YY_F;
- if (YYEOF != yy_lookahead) {
- yy_next_state = yy_nxt[yy_rmap[yy_state]][yy_cmap[yy_lookahead]];
- }
- if (YY_F != yy_next_state) {
- yy_state = yy_next_state;
- yy_initial = false;
- yy_this_accept = yy_acpt[yy_state];
- if (YY_NOT_ACCEPT != yy_this_accept) {
- yy_last_accept_state = yy_state;
- yy_mark_end();
- }
- }
- else {
- if (YYEOF == yy_lookahead && true == yy_initial) {
- return null;
- }
- else if (YY_NO_STATE == yy_last_accept_state) {
- throw (new Error("Lexical Error: Unmatched Input."));
- }
- else {
- yy_to_mark();
- yy_anchor = yy_acpt[yy_last_accept_state];
- if (0 != (YY_END & yy_anchor)) {
- yy_pushback();
- }
- if (0 != (YY_START & yy_anchor)) {
- yy_move_start();
- }
- yychar = yy_getchar();
- yyline = yy_getline();
- yytext = yy_gettext();
- switch (yy_last_accept_state) {
- case 1:
- {
- System.out.println("Illegal character: <" + yytext() + ">");
- Utility.error(Utility.E_UNMATCHED);
-}
- case -2:
- break;
- case 2:
- { }
- case -3:
- break;
- case 3:
- {
- String str = yytext().substring(1,yytext().length());
- Utility.error(Utility.E_UNCLOSEDSTR);
- Utility.assert(str.length() == yytext().length() - 1);
- return (new Yytoken(41,str,yyline,yychar,yychar + str.length()));
-}
- case -4:
- break;
- case 4:
- { return (new Yytoken(20,yytext(),yyline,yychar,yychar+1)); }
- case -5:
- break;
- case 5:
- { return (new Yytoken(3,yytext(),yyline,yychar,yychar+1)); }
- case -6:
- break;
- case 6:
- { return (new Yytoken(4,yytext(),yyline,yychar,yychar+1)); }
- case -7:
- break;
- case 7:
- { return (new Yytoken(12,yytext(),yyline,yychar,yychar+1)); }
- case -8:
- break;
- case 8:
- { return (new Yytoken(10,yytext(),yyline,yychar,yychar+1)); }
- case -9:
- break;
- case 9:
- { return (new Yytoken(0,yytext(),yyline,yychar,yychar+1)); }
- case -10:
- break;
- case 10:
- { return (new Yytoken(11,yytext(),yyline,yychar,yychar+1)); }
- case -11:
- break;
- case 11:
- { return (new Yytoken(9,yytext(),yyline,yychar,yychar+1)); }
- case -12:
- break;
- case 12:
- { return (new Yytoken(13,yytext(),yyline,yychar,yychar+1)); }
- case -13:
- break;
- case 13:
- {
- return (new Yytoken(42,yytext(),yyline,yychar,yychar + yytext().length()));
-}
- case -14:
- break;
- case 14:
- { return (new Yytoken(1,yytext(),yyline,yychar,yychar+1)); }
- case -15:
- break;
- case 15:
- { return (new Yytoken(2,yytext(),yyline,yychar,yychar+1)); }
- case -16:
- break;
- case 16:
- { return (new Yytoken(16,yytext(),yyline,yychar,yychar+1)); }
- case -17:
- break;
- case 17:
- { return (new Yytoken(14,yytext(),yyline,yychar,yychar+1)); }
- case -18:
- break;
- case 18:
- { return (new Yytoken(18,yytext(),yyline,yychar,yychar+1)); }
- case -19:
- break;
- case 19:
- {
- return (new Yytoken(43,yytext(),yyline,yychar,yychar + yytext().length()));
-}
- case -20:
- break;
- case 20:
- { return (new Yytoken(5,yytext(),yyline,yychar,yychar+1)); }
- case -21:
- break;
- case 21:
- { return (new Yytoken(6,yytext(),yyline,yychar,yychar+1)); }
- case -22:
- break;
- case 22:
- { return (new Yytoken(7,yytext(),yyline,yychar,yychar+1)); }
- case -23:
- break;
- case 23:
- { return (new Yytoken(21,yytext(),yyline,yychar,yychar+1)); }
- case -24:
- break;
- case 24:
- { return (new Yytoken(8,yytext(),yyline,yychar,yychar+1)); }
- case -25:
- break;
- case 25:
- {
- String str = yytext().substring(1,yytext().length() - 1);
- Utility.assert(str.length() == yytext().length() - 2);
- return (new Yytoken(40,str,yyline,yychar,yychar + str.length()));
-}
- case -26:
- break;
- case 26:
- { yybegin(COMMENT); comment_count = comment_count + 1; }
- case -27:
- break;
- case 27:
- { return (new Yytoken(22,yytext(),yyline,yychar,yychar+2)); }
- case -28:
- break;
- case 28:
- { return (new Yytoken(17,yytext(),yyline,yychar,yychar+2)); }
- case -29:
- break;
- case 29:
- { return (new Yytoken(15,yytext(),yyline,yychar,yychar+2)); }
- case -30:
- break;
- case 30:
- { return (new Yytoken(19,yytext(),yyline,yychar,yychar+2)); }
- case -31:
- break;
- case 31:
- { }
- case -32:
- break;
- case 32:
- { }
- case -33:
- break;
- case 33:
- {
- comment_count = comment_count - 1;
- Utility.assert(comment_count >= 0);
- if (comment_count == 0) {
- yybegin(YYINITIAL);
- }
-}
- case -34:
- break;
- case 34:
- { comment_count = comment_count + 1; }
- case -35:
- break;
- case 36:
- {
- System.out.println("Illegal character: <" + yytext() + ">");
- Utility.error(Utility.E_UNMATCHED);
-}
- case -36:
- break;
- case 37:
- {
- String str = yytext().substring(1,yytext().length());
- Utility.error(Utility.E_UNCLOSEDSTR);
- Utility.assert(str.length() == yytext().length() - 1);
- return (new Yytoken(41,str,yyline,yychar,yychar + str.length()));
-}
- case -37:
- break;
- case 38:
- {
- String str = yytext().substring(1,yytext().length() - 1);
- Utility.assert(str.length() == yytext().length() - 2);
- return (new Yytoken(40,str,yyline,yychar,yychar + str.length()));
-}
- case -38:
- break;
- case 39:
- { }
- case -39:
- break;
- case 41:
- {
- System.out.println("Illegal character: <" + yytext() + ">");
- Utility.error(Utility.E_UNMATCHED);
-}
- case -40:
- break;
- case 42:
- {
- String str = yytext().substring(1,yytext().length());
- Utility.error(Utility.E_UNCLOSEDSTR);
- Utility.assert(str.length() == yytext().length() - 1);
- return (new Yytoken(41,str,yyline,yychar,yychar + str.length()));
-}
- case -41:
- break;
- case 43:
- { }
- case -42:
- break;
- case 45:
- { }
- case -43:
- break;
- default:
- yy_error(YY_E_INTERNAL,false);
- case -1:
- }
- yy_initial = true;
- yy_state = yy_state_dtrans[yy_lexical_state];
- yy_next_state = YY_NO_STATE;
- yy_last_accept_state = YY_NO_STATE;
- yy_mark_start();
- yy_this_accept = yy_acpt[yy_state];
- if (YY_NOT_ACCEPT != yy_this_accept) {
- yy_last_accept_state = yy_state;
- }
- }
- }
- }
- }
-}
+++ /dev/null
-diff -Nu mpegaudio1/Context.java mpegaudio/Context.java
---- mpegaudio1/Context.java Thu Jan 1 01:00:00 1970
-+++ mpegaudio/Context.java Tue Nov 26 11:35:40 2002
-@@ -0,0 +1,444 @@
-+/*
-+ * @(#)Context.java 1.31 06/17/98
-+ *
-+ * Copyright (c) 1998 Standard Performance Evaluation Corporation (SPEC)
-+ * All rights reserved.
-+ * Copyright (c) 1997,1998 Sun Microsystems, Inc. All rights reserved.
-+ *
-+ * This source code is provided as is, without any express or implied warranty.
-+ */
-+
-+package spec.harness;
-+
-+/**
-+ * This class is used to define the context for the execution of the
-+ * benchmark. This container class has the parameters which can hold
-+ * the benchmark run specific parameters like the run time, speed,
-+ * files opened, number of cached_files, SpecBasePath, console window
-+ * for displaying the trace
-+ */
-+
-+
-+public final class Context{
-+
-+/**
-+ * SpecBasePath is used to define the base directory of the specJava
-+ * @see java.lang.String
-+ */
-+ private static String SpecBasePath = "";
-+
-+/**
-+ * NetworkAccess flag is used to define whether the benchmark uses
-+ * the network or not
-+ */
-+ static boolean NetworkAccess = false;
-+
-+/**
-+ * BasePath
-+ * @see java.lang.String
-+ */
-+ static String BasePath = "";
-+
-+/**
-+ * speed is used to define the benchmark run length. The benchmarks
-+ * can be run at 1%, 10% and 100% of their full length of execution.
-+ * Some times the % variation is reflected by just altering the loop
-+ * count in the benchmark (ie repeatedly executing the same benchmark)
-+ */
-+ static int speed = 100;
-+
-+/**
-+ * CachedInput is flag used to indicate, whether the classes have to
-+ * be cached or not. When the benchmark is run by the harness. The
-+ * classes are fetched over the net during the first run. The execution
-+ * time in this case includes the network load time. Depending on the
-+ * user selection this flag will be toggled and used to cache the
-+ * classes loaded first time. The second run uses these cached
-+ * classes if flag is turned on.
-+ */
-+ static boolean CachedInput = true;
-+
-+/**
-+ * IOtime is gives the cumilative io time of the all the io calls in
-+ * in the execution of the benchmark. The refference time is taken
-+ * before entering the io routine and the refference time is taken at
-+ * the time of exiting from the routine. The difference between them
-+ * gives the time sepent in that routine. All such times are
-+ * accumilated to give the overall io time in the benchmark execution.
-+ * see @java.lang.System#getSystemTime
-+ */
-+ static boolean batch = false;
-+
-+/**
-+ * This flag is used to turn on/off the graphicsMode. Some of the tests
-+ * have the graphics in them. The graphics are conditionally enabled or
-+ * disabled depending on the final version of SpecJava
-+ */
-+ static boolean graphicsMode = false;
-+
-+/**
-+ * The parameter is used to for storing the IOtime of the current benchmark
-+ * under execution.
-+ */
-+ static long IOtime = 0;
-+
-+/**
-+ * num_files_open is an integer variable to hold the number of files
-+ * opened during the benchmark run.
-+ */
-+ static int num_files_open = 0;
-+
-+/**
-+ * cached_data is an integer variable to hold the number of bytes of
-+ * data that is cached. This can be more than zero for the first run
-+ * but this has to be zero for the subsequent runs.
-+ */
-+ static int cached_data = 0;
-+
-+/**
-+ * num_cached_files is an integer variable to hold the number of files
-+ * cached during the run of the benchmark.
-+ */
-+ static int num_cached_files = 0;
-+
-+/**
-+ * userPropFile is the string used to hold the user profile file name
-+ * The user profile file has the user specific data, which can also be
-+ * modified by using the setup key. The Setup parameters are initialized
-+ * with the data from the user profile file
-+ */
-+ static String userPropFile;
-+
-+/**
-+ * verify flag is used to turn on/off the verification process of benchmark
-+ * runs.
-+ */
-+ static boolean verify = true;
-+
-+/**
-+ * commandLineMode is a flag that holds the value which indicate whether the
-+ * benchmark is running in command line mode or as an applet.
-+ */
-+ static boolean commandLineMode = false;
-+
-+/**
-+ * window is the ConsoleWindow object type where the trace of the
-+ * benchmark execution is displayed.
-+ * @see spec.harness.ConsoleWindow
-+ */
-+
-+/**
-+ * out is the PrintStream into which the trace messages will be written.
-+ * This is assigned to the System.output stream by default
-+ */
-+ public static java.io.PrintStream out = System.out;
-+
-+/**
-+ * This function returns the integer value given the String form
-+ * of it. In case of any number format exception, the function returns
-+ * default value.
-+ * @param s String value passed
-+ * @param deft the default value to be returned.
-+ */
-+ public static int getValue(String s, int deft) {
-+
-+ try {
-+ return Integer.parseInt(s, 10);
-+ } catch(NumberFormatException x) {}
-+
-+ return deft;
-+ }
-+
-+/**
-+ * This function creates the new Console window and the print stream
-+ * @see spec.harness.ConsoleWindow
-+ */
-+ public static void setupConsoleWindow(){
-+ }
-+
-+/**
-+ * This function set the SpecBasePath to the string value passed with
-+ * some data stripped.
-+ * @param basePath The URL of the file
-+ */
-+ public static void setSpecBasePath(String basepath){
-+ if (basepath.indexOf("file:" , 0) == 0){
-+ SpecBasePath = basepath.substring(5);
-+ }
-+ else{
-+ SpecBasePath = basepath;
-+ }
-+
-+ if (SpecBasePath.indexOf("http:" , 0) == 0){
-+ NetworkAccess = true;
-+ } else {
-+ while (SpecBasePath.charAt(0) == '/' && SpecBasePath.charAt(1) == '/') {
-+ SpecBasePath = SpecBasePath.substring(1);
-+ }
-+ }
-+ }
-+
-+/**
-+ returns the specbase path
-+ */
-+ public static String getSpecBasePath(){
-+ return SpecBasePath;
-+ }
-+
-+/**
-+ * Increments the the cached_data parameter by the integer passed.
-+ * @param num increment value
-+ */
-+ public static void addCachedDataSize(int num){
-+ cached_data += num;
-+ }
-+
-+/**
-+ * gets the cached data size.
-+ * @return The cached_data value
-+ */
-+ public static int getCachedDataSize(){
-+ return cached_data;
-+ }
-+
-+/**
-+ * Increments the the num_cached_files parameter by 1.
-+ */
-+ public static void IncrementNumCachedFiles(){
-+ num_cached_files++;
-+ }
-+
-+/**
-+ * gets the numbef of cached files.
-+ * @return The num_cached_files value
-+ */
-+ public static int getNumCachedFiles(){
-+ return num_cached_files;
-+ }
-+
-+/**
-+ * Increments the number of Files open parameter. The number of files
-+ * open parameter is used for debugging purposes to findout whether the
-+ * finalizers are called or not
-+ */
-+ public static void IncrementNumOpenFiles(){
-+ num_files_open++;
-+ }
-+
-+/**
-+ Decrements the number of Files open parameter
-+ */
-+ public static void DecrementNumOpenFiles(){
-+ num_files_open--;
-+ }
-+
-+/**
-+ returns the number of files open
-+ */
-+ public static int getNumOpenFiles(){
-+ return num_files_open;
-+ }
-+
-+/**
-+ * sets the benchmark relative path. For example if SpecBasepath is
-+ * /var/htdocs/v11/spec, The relative benchmark path path for
-+ * _201_compress is benchmarks/_201_compress. This function adds these
-+ * two strings and forms the BasePath
-+ * BasePath = /var/htdocs/v11/spec + benchmarks/_201_compress
-+ * @param rpath Relative path of the benchmark
-+ */
-+ public static void setBenchmarkRelPath(String rpath){
-+ BasePath = SpecBasePath + rpath;
-+ }
-+
-+
-+/**
-+ * This function changes the basepath to point to the input directory
-+ * of the benchmark. this function just concatinates the "/input"
-+ * to the existing basepath if it is not added already.
-+ */
-+ public static void cdInput(){
-+ if( !BasePath.endsWith( "input/" )) {
-+ BasePath = BasePath + "input/" ;
-+ }
-+ }
-+
-+/**
-+ * Sets the network access flag
-+ * @param flag Flag indicating the network access
-+ */
-+ public static void setNetworkAccess(boolean flag){
-+
-+ NetworkAccess = flag;
-+ }
-+
-+/**
-+ Returns the spec base path. This function is handly in loading the files
-+ from the relative directories.
-+ */
-+ public static String getBasePath(){
-+
-+ return BasePath;
-+ }
-+
-+/**
-+ Indicates whether SpecJVMClient is running as an applet or application
-+ */
-+ public static boolean isNetworkAccess(){
-+
-+ return NetworkAccess;
-+
-+ }
-+
-+/**
-+ * Sets the speed of execution to the value passed. Depending on the
-+ * user's selection, the speed of execution is set as 1% 10% or 100%
-+ * @param n Speed selected by the user
-+ */
-+ public static void setSpeed( int n ) {
-+ speed = n;
-+ }
-+
-+/**
-+ Returns the speed of the benchmark.
-+ */
-+ public static int getSpeed() {
-+ return speed;
-+ }
-+
-+/**
-+ Sets the CachedInput flag. The data is read from the Cache during the second
-+ run if this flag is set.\7f
-+ */
-+ public static void setCachedInputFlag( boolean cif ){
-+ CachedInput = cif;
-+ }
-+
-+/**
-+ Sets the batch flag
-+ @param b boolean value for the batch flag
-+ */
-+ public static void setBatch( boolean b ){
-+ batch = b;
-+ }
-+
-+/**
-+ Returns whether SpecJVMClient is running in batch mode
-+ */
-+ public static boolean isBatch(){
-+ return batch;
-+ }
-+
-+/**
-+ Sets the graphics mode. Normally SepcJVM client runs with graphics disabled.
-+ This flag is for future extensions and debugging
-+ */
-+ public static void setGraphicsMode (boolean mode){
-+ graphicsMode = mode;
-+ }
-+
-+/**
-+ Returns the graphic mode flag value
-+ */
-+ public static boolean getGraphicsMode(){
-+ return graphicsMode;
-+ }
-+
-+/**
-+ Sets the user properties file. These properties are stored in the mail sent at
-+ the end of the test
-+ @param s Properties file name
-+ */
-+ public static void setUserPropFile( String s){
-+ userPropFile = s;
-+ }
-+
-+/**
-+ Returns the properties file name
-+ */
-+ public static String getUserPropFile(){
-+ return userPropFile;
-+ }
-+
-+/**
-+ Returns the cached input flag
-+ */
-+ public static boolean isCachedInput(){
-+ return CachedInput;
-+ }
-+
-+/**
-+ Clears the IOtiming. This is normally done before starting a benchmark
-+ */
-+ public static void clearIOtime(){
-+ IOtime = 0;
-+ }
-+
-+/**
-+ Increments the IOTime by the value provided
-+ @param time Incremental value
-+ */
-+ public static void addIOtime(long time){
-+ IOtime = IOtime + time;
-+ }
-+
-+/**
-+ Returns the IO time
-+ */
-+ public static long getIOtime(){
-+ return IOtime;
-+ }
-+
-+ /**
-+ * Set commandLineMode flag
-+ */
-+ public static void setCommandLineMode(boolean value) {
-+ commandLineMode = value;
-+ }
-+
-+
-+ /**
-+ * Get commandLineMode flag
-+ */
-+ public static boolean getCommandLineMode() {
-+ return commandLineMode;
-+ }
-+
-+
-+ /**
-+ * Set verify flag
-+ */
-+ public static void setVerify(boolean value) {
-+ verify = value;
-+ }
-+
-+
-+ /**
-+ * Get verify flag
-+ */
-+ public static boolean getVerify() {
-+ return verify;
-+ }
-+
-+
-+ /**
-+ * Start output window
-+ */
-+ public static void startOutputWindow() {
-+ }
-+
-+
-+ /**
-+ * Stop output window
-+ */
-+ public static void stopOutputWindow() {
-+ }
-+
-+ /**
-+ * Output to console window
-+ */
-+ public static void appendWindow(String s) {
-+ System.out.print(s);
-+ }
-+}
-+
-diff -Nu mpegaudio1/File.java mpegaudio/File.java
---- mpegaudio1/File.java Thu Jan 1 01:00:00 1970
-+++ mpegaudio/File.java Tue Nov 26 11:02:12 2002
-@@ -0,0 +1,356 @@
-+/*
-+ * @(#)File.java 1.5 06/17/98
-+ *
-+ * Copyright (c) 1998 Standard Performance Evaluation Corporation (SPEC)
-+ * All rights reserved.
-+ * Copyright (c) 1997,1998 Sun Microsystems, Inc. All rights reserved.
-+ *
-+ * This source code is provided as is, without any express or implied warranty.
-+ */
-+
-+package spec.io;
-+
-+/**
-+ This class extends the java.io.File and provides some extra functionality.
-+ File object maintains a static table of files called the Table of existing
-+ files. The files listed in the TableOfExisting files are loaded from the
-+ local disk. All the other files are loaded over the network.
-+*/
-+public class File extends java.io.File{
-+
-+/**
-+ Variable representing the file name
-+ */
-+
-+ String filename;
-+
-+/**
-+ Table to hold the ListOfExisting files
-+ */
-+ private static TableOfExistingFiles tef = new TableOfExistingFiles();
-+
-+/**
-+ Constructor.
-+ @param Path of the file (includes the file name also)
-+ */
-+ public File(String path){
-+
-+ super(path);
-+
-+ //System.out.println("Inside constructor File(" + path + ")");
-+
-+ filename = path;
-+
-+ }
-+
-+/**
-+ Overloaded constructor which takes the path and the files name to load the
-+ file
-+ @param path Directory of the file
-+ @param name file name
-+ */
-+ public File(String path , String name){
-+
-+ super(path , name);
-+
-+ //System.out.println("Inside constructor File(" + path + " , " + name + ")");
-+
-+ filename = path + name;
-+
-+ }
-+
-+/**
-+ Overloaded constructor which takes the directory in the File object format
-+ and a name of the file.
-+ @param dir Directory of the file in the File object format
-+ @param name file name
-+ */
-+ public File(File dir , String name){
-+
-+ super(dir , name);
-+
-+ //System.out.println("Inside constructor File(dir, name) , dir.getName = " + dir.getName());
-+
-+ filename = dir.getPath() + name;
-+
-+ }
-+
-+/**
-+ returns the name of the file
-+ @return name of file
-+ */
-+ public String getName(){
-+
-+ String returnvalue = super.getName();
-+
-+ //System.out.println("Inside File.getName() , \nfilename = " + filename + "\nreturnvalue = " +returnvalue);
-+
-+
-+ return returnvalue;
-+
-+ }
-+
-+/**
-+ returns the path of the file
-+ */
-+ public String getPath(){
-+
-+ String returnvalue = super.getPath();
-+
-+ //System.out.println("Inside File.getPath() , filename = " + filename + " returnvalue = " +returnvalue);
-+
-+ return returnvalue;
-+
-+ }
-+
-+/**
-+ returns tha absolutePath of the file Dir + name
-+ */
-+ public String getAbsolutePath(){
-+
-+ String returnvalue = super.getAbsolutePath();
-+
-+ //System.out.println("Inside File.getAbsolutePath() , filename = " + filename + " returnvalue = " + returnvalue);
-+
-+ return returnvalue;
-+
-+ }
-+
-+/**
-+ returns the Parent directory name
-+ */
-+
-+ public String getParent(){
-+
-+ String returnvalue = super.getParent();
-+
-+ //String returnvalue = null;
-+
-+ //System.out.println("Inside File.getParent() , filename = " + filename + " returnvalue = " + returnvalue);
-+
-+ return returnvalue;
-+
-+ }
-+
-+/**
-+ Checks whether the given file name exists or not
-+ */
-+ public boolean exists(){
-+
-+ //boolean returnvalue = super.exists();
-+
-+ boolean returnvalue = tef.exists( filename.replace( '\\', '/' ) );
-+
-+ //System.out.println("Inside File.exists() , filename = " + filename + " returnvalue = " + returnvalue);
-+
-+ return returnvalue;
-+
-+ }
-+
-+/**
-+ Checks whether the given file is writablle or not
-+ */
-+ public boolean canWrite(){
-+
-+ boolean returnvalue = super.canWrite();
-+
-+ //System.out.println("Inside File.canWrite() , filename = " + filename + " returnvalue = " + returnvalue);
-+
-+ return returnvalue;
-+
-+ }
-+
-+/**
-+ Checks whether the given file is readable
-+ */
-+ public boolean canRead(){
-+
-+ boolean returnvalue = super.canRead();
-+
-+ //System.out.println("Inside File.canRead() , filename = " + filename + " returnvalue = " + returnvalue);
-+
-+ return returnvalue;
-+
-+ }
-+
-+/**
-+ Checks whether the given file name is a file or directory
-+ The functionality is modified to return whether the file name is classes.zip
-+ or not
-+ */
-+ public boolean isFile(){
-+
-+ //boolean returnvalue = super.isFile();
-+
-+ boolean returnvalue = filename.endsWith("classes.zip");
-+
-+ //System.out.println("Inside File.isFile() , filename = " + filename + " returnvalue = " + returnvalue);
-+
-+ return returnvalue;
-+
-+ }
-+
-+/**
-+ Checks whether the given file name is directory or not
-+ */
-+ public boolean isDirectory(){
-+
-+ boolean returnvalue = super.isDirectory();
-+
-+ //System.out.println("Inside File.isDirectory() , filename = " + filename + " returnvalue = " + returnvalue);
-+
-+ return returnvalue;
-+
-+ }
-+
-+/**
-+ Returns the date of last modification
-+ */
-+ public long lastModified(){
-+
-+ long returnvalue = super.lastModified();
-+
-+ //System.out.println("Inside File.lastModified() , filename = " + filename + " returnvalue = " + returnvalue);
-+
-+ return returnvalue;
-+
-+ }
-+
-+/**
-+ Returns the length of the file
-+ */
-+ public long length(){
-+
-+ long returnvalue = super.length();
-+
-+ //System.out.println("Inside File.length() , filename = " + filename + " returnvalue = " + returnvalue);
-+
-+ return returnvalue;
-+
-+ }
-+
-+/**
-+ Creates a new directory
-+ */
-+ public boolean mkdir(){
-+
-+ boolean returnvalue = super.mkdir();
-+
-+ //System.out.println("Inside File.mkdir() , filename = " + filename + " returnvalue = " + returnvalue);
-+
-+ return returnvalue;
-+
-+ }
-+
-+/**
-+ Renames the file
-+ */
-+ public boolean renameTo(File dest){
-+
-+ boolean returnvalue = super.renameTo(dest);
-+
-+ //System.out.println("Inside File.renameTo() , filename = " + filename + " returnvalue = " + returnvalue);
-+
-+ return returnvalue;
-+
-+ }
-+
-+/**
-+ Creates a directory whose pathname is specified by this File object,
-+ including any necessary parent directories.
-+ */
-+ public boolean mkdirs() {
-+
-+ boolean returnvalue = super.mkdirs();
-+
-+ //System.out.println("Inside File.mkdirs() , filename = " + filename + " returnvalue = " + returnvalue);
-+
-+ return returnvalue;
-+
-+ }
-+
-+/**
-+ Returns a list of the files in the directory specified by this File object
-+*/
-+ public String[] list(){
-+
-+ String[] returnvalue = super.list();
-+
-+ //System.out.println("Inside File.list() , filename = " + filename + " returnvalue = " + returnvalue);
-+
-+ return returnvalue;
-+
-+ }
-+
-+/**
-+ Returns a list of the files in the directory specified by this File that
-+ satisfy the specified filter.
-+*/
-+ public String[] list(java.io.FilenameFilter filter){
-+
-+ String[] returnvalue = super.list(filter);
-+
-+ //System.out.println("Inside File.list(filter) , filename = " + filename + " returnvalue = " + returnvalue);
-+
-+ return returnvalue;
-+
-+ }
-+
-+/**
-+ Deletes the file specified by this object.
-+ */
-+ public boolean delete(){
-+
-+ boolean returnvalue = super.delete();
-+
-+ //System.out.println("Inside File.delete() , filename = " + filename + " returnvalue = " + returnvalue);
-+
-+ return returnvalue;
-+
-+ }
-+
-+/**
-+ Computes a hashcode for the file.
-+ */
-+ public int hashCode(){
-+
-+ int returnvalue = super.hashCode();
-+
-+ //System.out.println("Inside File.hashcode() , filename = " + filename + " returnvalue = " + returnvalue);
-+
-+ return returnvalue;
-+
-+ }
-+
-+/**
-+ Compares this object against the specified object.
-+ */
-+ public boolean equals(Object obj){
-+
-+ boolean returnvalue = super.equals(obj);
-+
-+ //System.out.println("Inside File.equals() , filename = " + filename + " returnvalue = " + returnvalue);
-+
-+ return returnvalue;
-+ }
-+
-+/**
-+ Returns a string representation of this object.
-+*/
-+ public String toString(){
-+
-+ String returnvalue = super.toString();
-+
-+ //System.out.println("Inside File.toString() , filename = " + filename + " returnvalue = " + returnvalue);
-+
-+ return returnvalue;
-+
-+ }
-+
-+}
-+
-+
-+
-+
-+
-+
-diff -Nu mpegaudio1/FileCacheData.java mpegaudio/FileCacheData.java
---- mpegaudio1/FileCacheData.java Thu Jan 1 01:00:00 1970
-+++ mpegaudio/FileCacheData.java Tue Nov 26 11:01:41 2002
-@@ -0,0 +1,105 @@
-+/*
-+ * @(#)FileCacheData.java 1.3 06/17/98
-+ *
-+ * Copyright (c) 1998 Standard Performance Evaluation Corporation (SPEC)
-+ * All rights reserved.
-+ * Copyright (c) 1997,1998 Sun Microsystems, Inc. All rights reserved.
-+ *
-+ * This source code is provided as is, without any express or implied warranty.
-+ */
-+
-+package spec.io;
-+
-+import java.util.*;
-+
-+/**
-+ SpecJVMClient maintains the internal cache. The data is read over the network
-+ for the first run and it is cached. The cached data is used for subsequent runs
-+ The FileInputStream object contains a FileCacheData object which caches data
-+ @see spec.io.FileInputStream
-+ */
-+public class FileCacheData{
-+
-+/**
-+ Data buffer to cache data
-+ */
-+ private byte[] data = null;
-+
-+/**
-+ Total number of bytes present in the data buffer at anytime
-+ */
-+ private int total_num_bytes = 0;
-+
-+/**
-+ Constructor
-+ @param len Length of the file. The byte array of 'len' size is created
-+ */
-+ public FileCacheData(int len){
-+
-+ data = new byte[len];
-+
-+ }
-+
-+/**
-+ Creates the byte array to hold the file data. The size of the file is passed
-+ as argument.
-+ @param len Length of the file
-+ */
-+ public void createData(int len){
-+
-+ data = new byte[len];
-+
-+ }
-+
-+/**
-+ Copies the given specified of bytes from the given buffer from given offset
-+ to the data buffer of the FileCacheData object
-+ @param b[] 'from' byte array
-+ @param off Offset within the byte array
-+ @param num_bytes Number of bytes to be copied
-+ */
-+ public void copyData(byte b[] , int off , int num_bytes){
-+
-+ System.arraycopy(b,off,data,total_num_bytes, num_bytes);
-+ total_num_bytes += num_bytes;
-+
-+ }
-+
-+/**
-+ Copies the byte to the data buffer. Increments the number of bytes field
-+ @param b byte to be copied
-+ */
-+ public void copyData(byte b){
-+
-+ data[total_num_bytes] = b;
-+ total_num_bytes += 1;
-+
-+ }
-+
-+/**
-+ Skips a portion of buffer
-+ */
-+ public void skipPos(long n){
-+ total_num_bytes += n;
-+ }
-+
-+ /**
-+ Converts the data buffer array to InputStream
-+ */
-+ public java.io.InputStream getInputStream(){
-+
-+ return new java.io.ByteArrayInputStream(data , 0 , total_num_bytes);
-+
-+ }
-+
-+/**
-+ Returns the length of the buffer.
-+ */
-+ public int getLength(){
-+ return total_num_bytes;
-+ }
-+
-+}
-+
-+
-+
-diff -Nu mpegaudio1/FileInputStream.java mpegaudio/FileInputStream.java
---- mpegaudio1/FileInputStream.java Thu Jan 1 01:00:00 1970
-+++ mpegaudio/FileInputStream.java Tue Nov 26 11:28:57 2002
-@@ -0,0 +1,893 @@
-+/*
-+ * @(#)FileInputStream.java 1.33 06/17/98
-+ *
-+ * Copyright (c) 1998 Standard Performance Evaluation Corporation (SPEC)
-+ * All rights reserved.
-+ * Copyright (c) 1997,1998 Sun Microsystems, Inc. All rights reserved.
-+ *
-+ * This source code is provided as is, without any express or implied warranty.
-+ */
-+
-+package spec.io;
-+
-+import java.util.*;
-+import java.net.*;
-+//import spec.harness.*;
-+
-+
-+/**
-+ This class extends the java.io.InputStream and provides some extra functionality
-+ for caching the data. It also keeps a count of the number of filestreams
-+ opened by the SpecJVMClient, number of files read, number of bytes read,
-+ io times spent
-+ @see java.io.InputStream
-+ @see spec.io.FileCacheData
-+ */
-+public class FileInputStream extends java.io.InputStream{
-+
-+
-+
-+ //************************* Static variables****************************//
-+ // Constants
-+ private static final int LENGTH_ERROR = -1;
-+
-+ // Cache variables
-+
-+/**
-+ Maintains a list of cached files
-+ */
-+ private static Hashtable filecache = new Hashtable();
-+
-+/**
-+ Maintains a list of opened InputStreams
-+ */
-+ private static Vector openedInputStreams = new Vector();
-+
-+/**
-+ Enables or disables the Debug mode of operation
-+ */
-+ public static boolean debug = false;
-+ public static boolean testing = false;
-+
-+/**
-+ Keeps a count of closed filestreams
-+ */
-+ public static int numofCloses = 0;
-+
-+ // How and whether to retry http operations
-+/**
-+ Number of retries before declaring the error in opening the file
-+ */
-+ private static int nRetry = 5; // times to try
-+
-+/**
-+ Sleep time between two successive retries
-+ */
-+ private static int retryDelay = 5000; // milliseconds
-+
-+/**
-+ Total retries made throughout the benchmark suit
-+ */
-+ private static int totalRetries = 0; // count over all benchmarks
-+
-+/**
-+ A flag to control which API to be used
-+ */
-+ private static boolean use11net = true; // use 1.1 API instead of
-+
-+ // IO Stats variables
-+
-+/**
-+ Number of open files
-+ */
-+ private static int num_open_files = 0;
-+
-+/**
-+ Number of files used
-+ */
-+ private static int num_files_used = 0;
-+
-+/**
-+ Number of cached files
-+ */
-+ private static int num_cached_files = 0;
-+
-+/**
-+ Size of the cache at a given time
-+ */
-+ private static int size_cached_data = 0;
-+
-+/**
-+ Total number of bytes read from the cache for executing this benchmark
-+ */
-+ private static int total_num_of_byte_reads_from_cache = 0;
-+
-+/**
-+ Total number of bytes read from file
-+ */
-+ private static int total_num_of_byte_reads_from_file = 0;
-+
-+/**
-+ Total number of bytes read from the URL
-+ */
-+ private static int total_num_of_byte_reads_from_url = 0;
-+
-+/**
-+ Number of cache hits
-+ */
-+ private static int num_cache_hits = 0;
-+
-+/**
-+ Number of cache misses or number of files hits
-+ */
-+ private static int num_cache_misses = 0;
-+
-+/**
-+ IOtime for executing this benchmark
-+ */
-+ private static long IOtime =0;
-+
-+/**
-+ Caching time for executing this benchmark
-+ */
-+ private static long Cachingtime = 0;
-+ //********************** End Static variables****************************//
-+
-+
-+
-+ //************************* Static methods******************************//
-+
-+ // Cache methods
-+
-+/**
-+ Clears the cache data and updates the Caching parameters
-+ */
-+ public static void clearCache(){
-+ filecache = new Hashtable();
-+ num_cached_files = 0;
-+ size_cached_data = 0;
-+ num_cache_hits = 0;
-+ num_cache_misses = 0;
-+ }
-+
-+/**
-+ Closes all the opened streams
-+ */
-+ public static void closeAll() throws java.io.IOException{
-+
-+ Enumeration all_opened_in_streams = openedInputStreams.elements();
-+ if(debug) {
-+ System.out.println("Close all called");
-+ }
-+
-+ while(all_opened_in_streams.hasMoreElements()){
-+
-+ try{
-+ java.io.InputStream in = (java.io.InputStream)all_opened_in_streams.nextElement();
-+ in.close();
-+ num_open_files--;
-+ }catch(NoSuchElementException e){
-+ }
-+ }
-+
-+ }
-+
-+
-+ // IO Stats methods
-+
-+ /*
-+ * could be useful in debugging
-+ public static String getListCachedFiles(){
-+ StringBuffer buf = new StringBuffer();
-+ for (Enumeration e = filecache.keys(); e.hasMoreElements(); ){
-+ buf.append ((String)(e.nextElement()));
-+ buf.append (",");
-+ }
-+ return buf.toString();
-+ }
-+ */
-+/**
-+ Returns the number of open files
-+ */
-+ public static int getNumOpenFiles(){
-+ return num_open_files;
-+ }
-+
-+/**
-+ Returns the number of used files
-+ */
-+ public static int getNumUsedFiles(){
-+ return num_files_used;
-+ }
-+
-+/**
-+ Returns the number of Cached files
-+*/
-+ public static int getNumCachedFiles(){
-+ return num_cached_files;
-+ }
-+
-+/**
-+ Returns the size of the cached data
-+*/
-+ public static int getCachedDataSize(){
-+ return size_cached_data;
-+ }
-+
-+ /**
-+ Returns the number of bytes read from the cache
-+ */
-+ public static int getNumCacheByteReads(){
-+ return total_num_of_byte_reads_from_cache;
-+ }
-+
-+ /**
-+ Returns the number of bytes read from the file
-+ */
-+ public static int getNumFileByteReads(){
-+ return total_num_of_byte_reads_from_file;
-+ }
-+
-+/**
-+ Returns the number of bytes read form the URL
-+ */
-+ public static int getNumUrlByteReads(){
-+ return total_num_of_byte_reads_from_url;
-+ }
-+
-+/**
-+ Returns the number of cache hits in executing the current benchmark
-+ */
-+ public static int getNumCacheHits(){
-+ return num_cache_hits;
-+ }
-+
-+/**
-+ Returns the number of cache misses in executing the current benchmark
-+ */
-+ public static int getNumCacheMisses(){
-+ return num_cache_misses;
-+ }
-+
-+/**
-+ Returns the IO time spent in executing the current benchmark
-+ */
-+ public static long getIOtime(){
-+ return IOtime;
-+ }
-+
-+/**
-+ Returns the Caching time
-+ */
-+ public static long getCachingtime(){
-+ return Cachingtime;
-+ }
-+
-+/**
-+ Return the total retries
-+ */
-+ public static int getTotalRetries(){
-+ return totalRetries;
-+ }
-+
-+/**
-+ Clears the IO statistics variables.
-+ */
-+ public static void clearIOStats(){
-+ num_files_used = 0;
-+ total_num_of_byte_reads_from_cache = 0;
-+ total_num_of_byte_reads_from_file = 0;
-+ total_num_of_byte_reads_from_url = 0;
-+ IOtime = 0;
-+ Cachingtime = 0;
-+ }
-+
-+/**
-+ Checks whether the given URL is valid or not.
-+ */
-+ public static boolean IsURLOk(URL url){
-+
-+ /* should have no leading/trailing LWS
-+ * expedite the typical case by assuming it has
-+ * form "HTTP/1.x <WS> 2XX <mumble>"
-+ */
-+ int ind;
-+ try {
-+
-+ URLConnection urlc = url.openConnection();
-+
-+ String resp = urlc.getHeaderField(0);
-+
-+ if( resp == null ) {
-+// System.out.println( "resp == NULL in IsURLOk" );
-+ return true;
-+ }
-+
-+ ind = resp.indexOf(' ');
-+ while(resp.charAt(ind) == ' ')
-+ ind++;
-+ int responseCode = Integer.parseInt(resp.substring(ind, ind + 3));
-+
-+ if (debug){
-+ System.out.println("responseCode = " + responseCode);
-+ }
-+
-+ return !( ((responseCode >= 400) && (responseCode <= 415)) ||
-+ ((responseCode >= 500) && (responseCode <= 505))
-+ );
-+
-+ } catch (java.io.IOException e) {
-+ System.out.println("Exception in IsURLOk " + e );
-+ return false;
-+ }
-+
-+ }
-+
-+
-+/**
-+ Constructs the URL for the server file given the file name
-+ */
-+ private static String makeGoodUrl(String str){
-+
-+ String retstr;
-+
-+ retstr = str.replace( '\\', '/' );
-+
-+ int ind = 0;
-+
-+ if (retstr.startsWith("http")){
-+ ind = 6;
-+ }
-+
-+ if (retstr.indexOf("//" , ind) != -1){
-+ char c[] = retstr.toCharArray();
-+ int len = retstr.length();
-+ for(int i = ind; i < len; i++){
-+
-+ if (c[i] == '/'){
-+ int j = i+1;
-+
-+ while( (j < len) && (c[j] == '/') ){
-+ j = j+1;
-+ }
-+ if (j > (i+1)){
-+ for(int k = i+1 , l = j; l < len; l++ , k++){
-+ c[k] = c[l];
-+ }
-+ len = len - (j-i-1);
-+ }
-+ }
-+ retstr = new String(c , 0 , len);
-+ }
-+ }
-+ return retstr;
-+ }
-+
-+ //********************** End Static methods****************************//
-+
-+
-+
-+/**
-+ The file URL
-+ */
-+ private String my_file_url;
-+
-+/**
-+
-+ */
-+ private java.io.InputStream orig_in;
-+
-+/**
-+ Length of the FileInputStream
-+ */
-+ private int len = 0;
-+
-+/**
-+ Flag indicating whether the file stream is closed or not
-+ */
-+ private boolean closed = false;
-+
-+/**
-+ Flag indicating whether to cache the data during the first loading or not
-+ */
-+ private boolean doCache;
-+
-+/**
-+ Flag indicating whether the data is from the Cache
-+ */
-+ private boolean fromCache = false;
-+
-+/**
-+ Flag indicating whether the data is from URL
-+ */
-+ private boolean fromUrl = false;
-+
-+ /**
-+ Updates the file read statistics
-+ @param len Length of the FileStream
-+ */
-+ private void collectReadStats(int len){
-+
-+ if (len <= 0){
-+ return;
-+ }
-+
-+ if (fromCache){
-+ total_num_of_byte_reads_from_cache += len;
-+ }
-+ else{
-+ if (fromUrl){
-+ total_num_of_byte_reads_from_url += len;
-+ }
-+ else{
-+ total_num_of_byte_reads_from_file += len;
-+ }
-+ }
-+
-+ }
-+
-+
-+ /**
-+ * Main class constructor.
-+ *
-+ * Try and find the strange URL open bug by catching any exceptions and calling the
-+ * System finalizer to try and close the sockets.
-+ */
-+ public FileInputStream(String input_filename) throws java.io.FileNotFoundException,
-+ java.net.MalformedURLException , java.io.IOException {
-+ super();
-+
-+ try {
-+ construct(input_filename);
-+ } catch(Exception a) {
-+ System.out.println ( "----------------------------------");
-+ System.out.println ( "spec.io.FileInputStream: Caught exception in constructor: "+a);
-+ System.out.println ( "trying to open: " + input_filename); //wnb
-+ System.out.println ( "spec.io.FileInputStream: Attempting recovery with System.runFinalization()");
-+ System.gc();
-+ System.runFinalization();
-+ try {
-+ construct(input_filename);
-+ } catch(Exception b){
-+ System.out.println ( "----------------------------------");
-+ System.out.println ( "spec.io.FileInputStream: Caught exception in constructor at second level: "+a);
-+ if ( !(b instanceof java.io.FileNotFoundException) ) {
-+ System.out.println ( "spec.io.FileInputStream: Exiting benchmark");
-+ printStackTrace(b);
-+ throw new StopBenchmarkException( "spec.io.FileInputStream failure" );
-+ } else {
-+ throw (java.io.FileNotFoundException)b;
-+ }
-+ }
-+ }
-+ }
-+
-+/**
-+ Constructs thd FileInputStream object from the given file name
-+ */
-+ private void construct(String input_filename) throws Exception{
-+
-+ long startTime = System.currentTimeMillis();
-+
-+ my_file_url = makeGoodUrl(input_filename);
-+
-+ num_open_files++;
-+ num_files_used++;
-+
-+ if (filecache.containsKey(my_file_url)){
-+
-+ long cacheStartTime = System.currentTimeMillis();
-+
-+ doCache = false; // no need to cache data -- data is already in cache
-+ fromCache = true; // read data from cache
-+
-+ num_cache_hits++; // we have a hit
-+
-+ if (debug){
-+ System.out.println("\n++++++++making InputStream from cached " + my_file_url);
-+ }
-+
-+
-+ // Get the cached data from the filecache
-+ FileCacheData fcd = (FileCacheData)filecache.get(my_file_url);
-+
-+ // Get the length of the data
-+ len = fcd.getLength();
-+
-+ // Get an inputStream to read data form the cache
-+ orig_in = fcd.getInputStream();
-+
-+ long cacheEndTime = System.currentTimeMillis();
-+ Cachingtime += (cacheEndTime - cacheStartTime);
-+ }
-+ else{
-+
-+ num_cache_misses++; // we have a miss
-+
-+ if (debug){
-+ System.out.println("\n++++++++Opening InputStream for " + my_file_url);
-+ }
-+
-+
-+ openStream(); // open an inputStream through network or file I/O
-+
-+
-+ if (false){
-+
-+ long cacheStartTime = System.currentTimeMillis();
-+
-+ doCache = true; // we have to cache data
-+
-+ // create a new FileCacheData object of size len and put it in the filecache
-+ // with my_file_url as the key
-+
-+ FileCacheData fcd = new FileCacheData(len);
-+ filecache.put(my_file_url , fcd);
-+
-+ size_cached_data += len;
-+ num_cached_files++;
-+
-+ long cacheEndTime = System.currentTimeMillis();
-+ Cachingtime += (cacheEndTime - cacheStartTime);
-+ }
-+ else{
-+ doCache = false;
-+ }
-+
-+ // Keep track of all the InputStreams opened so far.
-+ openedInputStreams.addElement(orig_in);
-+
-+
-+ }
-+
-+ long endTime = System.currentTimeMillis();
-+ long totalTime = endTime - startTime;
-+
-+
-+ IOtime += totalTime;
-+ }
-+
-+
-+ /**
-+ * Prints the stack backtrace to Context.out. If this is an instance of
-+ * spec.io.PrintStream (it normally will be) then the default validity
-+ * check value is changed to '1'. This is the code that means all data
-+ * should be compaired and will ensure that the benchmark fails the
-+ * validity check process.
-+ */
-+ void printStackTrace(Exception x) {
-+ java.io.PrintStream str = System.out;
-+ x.printStackTrace(System.out);
-+ }
-+
-+/**
-+ Opens the FileInputStream
-+ */
-+ private void openStream() throws java.io.FileNotFoundException,
-+ java.net.MalformedURLException , java.io.IOException{
-+
-+ if (false){
-+ fromUrl = true;
-+ URL url = new URL(my_file_url);
-+ URLConnection urlc = url.openConnection();
-+ len = urlc.getHeaderFieldInt("content-length", LENGTH_ERROR);
-+ for (int retry=0; retry < nRetry && len == LENGTH_ERROR; retry++){
-+ if (urlc instanceof HttpURLConnection)
-+ ((HttpURLConnection) urlc).disconnect();
-+ urlc = null;
-+ System.gc();
-+ System.runFinalization();
-+ if (debug)
-+ System.out.println ("GET failed on " + my_file_url);
-+ try{
-+ Thread.sleep (retryDelay);
-+ }catch (InterruptedException e){}
-+ urlc = url.openConnection();
-+ urlc.connect();
-+ len = urlc.getHeaderFieldInt("content-length", LENGTH_ERROR);
-+ totalRetries++;
-+ }
-+ if (use11net && (urlc instanceof HttpURLConnection)){
-+ HttpURLConnection urlh = (HttpURLConnection) urlc;
-+ if (urlh.getResponseCode() != HttpURLConnection.HTTP_OK)
-+ throw new java.io.FileNotFoundException( my_file_url +
-+ ": " + urlh.getResponseMessage());
-+ }else{
-+ if (!IsURLOk(url))
-+ throw new java.io.FileNotFoundException( my_file_url );
-+ }
-+
-+ if (len == LENGTH_ERROR){
-+ throw new java.io.IOException("Cannot establish URL content-length");
-+/*
-+ System.out.println("Error getting size of file -- turning off caching");
-+ spec.harness.Context.setCachedInputFlag(false);
-+*/
-+ }
-+
-+ if (debug){
-+ if (len == LENGTH_ERROR){
-+ if (urlc == null){
-+ System.out.println("urlc is null");
-+ }
-+ else{
-+ System.out.println("urlc = " + urlc);
-+ }
-+ }
-+ System.out.println("++++++++spec.io.FileInputStream url len = " + len);
-+ }
-+
-+ try{
-+ orig_in = urlc.getInputStream();
-+ }catch(java.io.IOException ioe){
-+ System.out.println("Error trying to get an inputStream from url connection " + urlc);
-+ throw ioe;
-+ }
-+
-+ }else{ // NOT (Context.isNetworkAccess())
-+
-+ File file = new File(my_file_url);
-+ len = (int)file.length();
-+
-+ if (debug){
-+ System.out.println("++++++++spec.io.FileInputStream file len = " + len);
-+ }
-+ orig_in = new java.io.FileInputStream(my_file_url);
-+
-+ }
-+ }
-+
-+/**
-+ Constructor
-+ @param file File object
-+ */
-+ public FileInputStream(spec.io.File file) throws java.io.FileNotFoundException,
-+ java.net.MalformedURLException , java.io.IOException{
-+ this(file.getPath());
-+ }
-+
-+/**
-+ Returns the stream length
-+ */
-+ public int getContentLength(){
-+
-+ return len;
-+
-+ }
-+
-+/**
-+ Returns the number of bytes that can be read from this input stream without
-+ blocking.
-+ */
-+ public synchronized int available() throws java.io.IOException{
-+
-+ try{
-+
-+ return orig_in.available();
-+
-+ }catch(java.io.IOException ioe){
-+ printStackTrace(ioe);
-+ throw new StopBenchmarkException(ioe.toString());
-+ }
-+ }
-+
-+/**
-+ Reads the next byte of data from this input stream.
-+ */
-+ public synchronized int read() throws java.io.IOException{
-+
-+ try{
-+
-+ long startTime = System.currentTimeMillis();
-+
-+ int byte_read = orig_in.read();
-+ if ((doCache) && (byte_read != -1)){
-+
-+ long cacheStartTime = System.currentTimeMillis();
-+ ((FileCacheData)filecache.get(my_file_url)).copyData((byte)byte_read);
-+ long cacheEndTime = System.currentTimeMillis();
-+ Cachingtime += (cacheEndTime - cacheStartTime);
-+ }
-+
-+ long endTime = System.currentTimeMillis();
-+ long totalTime = endTime - startTime;
-+
-+
-+ IOtime += totalTime;
-+
-+ if( debug ){
-+// System.out.println("byte_read = " + byte_read);
-+ }
-+
-+ collectReadStats(1);
-+ return byte_read;
-+
-+ }catch(java.io.IOException ioe){
-+ printStackTrace(ioe);
-+ throw new StopBenchmarkException(ioe.toString());
-+ }
-+ }
-+
-+/**
-+ Reads up to byte.length bytes of data from this input stream into an array of
-+ bytes. This method blocks until some input is available.
-+
-+ The read method of FilterInputStream calls the read method of three arguments
-+ with the arguments b, 0, and b.length, and returns whatever value that method
-+ returns.
-+
-+ Note that this method does not call the one-argument read method of its
-+ underlying stream with the single argument b. Subclasses of FilterInputStream
-+ do not need to override this method if they have overridden the three-argument
-+ read method.
-+ @param b Buffer into which the data is read
-+*/
-+ public int read(byte b[]) throws java.io.IOException{
-+
-+ try{
-+ long startTime = System.currentTimeMillis();
-+
-+ int bytes_read = orig_in.read(b);
-+
-+ if ((doCache) && (bytes_read > 0)){
-+
-+ long cacheStartTime = System.currentTimeMillis();
-+ ((FileCacheData)filecache.get(my_file_url)).copyData(b, 0, bytes_read);
-+ long cacheEndTime = System.currentTimeMillis();
-+ Cachingtime += (cacheEndTime - cacheStartTime);
-+ }
-+
-+ long endTime = System.currentTimeMillis();
-+ long totalTime = endTime - startTime;
-+
-+
-+ IOtime += totalTime;
-+
-+
-+ if( debug ){
-+ System.out.println("bytes_read = " + bytes_read);
-+ }
-+
-+ collectReadStats(bytes_read);
-+ return bytes_read;
-+ }catch(java.io.IOException ioe){
-+ printStackTrace(ioe);
-+ throw new StopBenchmarkException(ioe.toString());
-+ }
-+ }
-+
-+/**
-+ Reads up to len bytes of data from this input stream into an array of bytes.
-+ This method blocks until some input is available.
-+
-+ The read method of FilterInputStream calls the read method of its underlying
-+ input stream with the same arguments and returns whatever value that method
-+ returns.
-+ @param b - the buffer into which the data is read
-+ @param off - the start offset of the data
-+ @param len - the maximum number of bytes read
-+ */
-+
-+ public synchronized int read(byte b[], int off, int len) throws java.io.IOException{
-+
-+
-+ try{
-+
-+ long startTime = System.currentTimeMillis();
-+
-+ int bytes_read = orig_in.read(b, off, len);
-+ if ((doCache) && (bytes_read > 0)){
-+
-+ long cacheStartTime = System.currentTimeMillis();
-+ ((FileCacheData)filecache.get(my_file_url)).copyData(b, off, bytes_read);
-+ long cacheEndTime = System.currentTimeMillis();
-+ Cachingtime += (cacheEndTime - cacheStartTime);
-+ }
-+ long endTime = System.currentTimeMillis();
-+ long totalTime = endTime - startTime;
-+
-+
-+ IOtime += totalTime;
-+
-+
-+ if( debug ){
-+ System.out.println("bytes_read = " + bytes_read);
-+ }
-+
-+ collectReadStats(bytes_read);
-+ return bytes_read;
-+
-+ }catch(java.io.IOException ioe){
-+ printStackTrace(ioe);
-+ throw new StopBenchmarkException(ioe.toString());
-+ }
-+ }
-+
-+/**
-+ Closes this input stream and releases any system resources associated with the
-+ stream. The close method of FilterInputStream calls the close method of its
-+ underlying input stream.
-+ */
-+ public void close() throws java.io.IOException{
-+
-+ try{
-+ if (!closed){
-+
-+ orig_in.close();
-+ numofCloses ++;
-+ num_open_files--;
-+
-+
-+ if (debug || testing){
-+ System.out.println("++++++++Closing InputStream for " + my_file_url +
-+ " " + num_open_files + " " + numofCloses);
-+ }
-+
-+ closed = true;
-+
-+ }
-+ else{
-+ if (debug){
-+ System.out.println("++++++++InputStream for " + my_file_url + " has been closed before");
-+ }
-+ }
-+ }catch(java.io.IOException ioe){
-+ printStackTrace(ioe);
-+ throw new StopBenchmarkException(ioe.toString());
-+ }
-+
-+ }
-+
-+/**
-+ Skips over and discards n bytes of data from the input stream. The skip method
-+ may, for a variety of reasons, end up skipping over some smaller number of
-+ bytes, possibly 0. The actual number of bytes skipped is returned.
-+
-+ The skip method of FilterInputStream calls the skip method of its underlying
-+ input stream with the same argument, and returns whatever value that method
-+ does.
-+ @param n - number of bytes to be skipped
-+ */
-+ public long skip(long n) throws java.io.IOException{
-+
-+ try{
-+ if (debug){
-+ System.out.println("++++++++ Skipping " + n + " positions in InputStream for " + my_file_url);
-+ }
-+
-+ if (doCache){
-+ ((FileCacheData)filecache.get(my_file_url)).skipPos(n);
-+ }
-+ return orig_in.skip(n);
-+ }catch(java.io.IOException ioe){
-+ printStackTrace(ioe);
-+ throw new StopBenchmarkException(ioe.toString());
-+ }
-+
-+ }
-+
-+ /**
-+ Finalization method.
-+ */
-+
-+ protected void finalize() throws java.io.IOException{
-+
-+ // try{
-+ if (!closed){
-+
-+ if (debug || testing ){
-+ System.out.println("++++++++Calling close Inside finalize for " + my_file_url );
-+ }
-+
-+ this.close();
-+
-+ }
-+ /* }catch(java.io.IOException ioe){
-+ printStackTrace(ioe);
-+ throw new StopBenchmarkException(ioe.toString());
-+ }
-+ */
-+
-+ }
-+
-+}
-diff -Nu mpegaudio1/FileOutputStream.java mpegaudio/FileOutputStream.java
---- mpegaudio1/FileOutputStream.java Thu Jan 1 01:00:00 1970
-+++ mpegaudio/FileOutputStream.java Tue Nov 26 11:36:25 2002
-@@ -0,0 +1,128 @@
-+/*
-+ * @(#)FileOutputStream.java 1.11 06/17/98
-+ *
-+ * Copyright (c) 1998 Standard Performance Evaluation Corporation (SPEC)
-+ * All rights reserved.
-+ * Copyright (c) 1997,1998 Sun Microsystems, Inc. All rights reserved.
-+ *
-+ * This source code is provided as is, without any express or implied warranty.
-+ */
-+
-+package spec.io;
-+import spec.harness.Context;
-+
-+/**
-+ * Dummy output stream that is only used as a place holder and for a little
-+ * benchmark validity checking
-+ */
-+public class FileOutputStream extends java.io.OutputStream {
-+
-+ /**
-+ * Development debug flag
-+ */
-+ final static boolean debug = false;
-+
-+ /**
-+ * Count of bytes written
-+ */
-+ static int byteCount = -99999999;
-+
-+ /**
-+ * Checksum
-+ */
-+ static int checksum = 0;
-+
-+ /**
-+ * Standard constructor. It creates the file if it is not existing, but it
-+ * truncates the existing data if the file already exists
-+ */
-+ public FileOutputStream(String name) throws java.io.IOException{
-+ }
-+
-+ /**
-+ * Standard constructor. It opens the existing file but doesn't truncate
-+ * existing data
-+ * @see java.io.FileOutPutStream
-+ */
-+ public FileOutputStream(String name, boolean append) throws java.io.IOException {
-+ }
-+
-+ /**
-+ * Standard constructor
-+ */
-+ public FileOutputStream(spec.io.File file) throws java.io.IOException {
-+ }
-+
-+ /**
-+ * Writes specified byte into output stream.
-+ * @param b - byte to be written
-+ */
-+ public void write(int b) throws java.io.IOException {
-+ byteCount++;
-+ checksum += specialTrace("W", b );
-+ }
-+
-+ /**
-+ * Write b.length bytes into output stream
-+ * @param b - byte array to be written
-+ */
-+ public void write(byte b[]) throws java.io.IOException {
-+ int len = b.length;
-+ byteCount += len;
-+ if (len > 0) {
-+ checksum += specialTrace("X", b[0] );; // Just checksum the first character
-+ }
-+ if( debug ) {
-+ System.out.println("Inside spec.io.FileOutStream.write() -- throwing away output");
-+ }
-+ }
-+
-+/**
-+ Writes len bytes from the specified byte array starting at offset off to this
-+ output stream. The write method of FilterOutputStream calls the write method
-+ of one argument on each byte to output.
-+
-+ Note that this method does not call the write method of its underlying input
-+ stream with the same arguments. Subclasses of FilterOutputStream should
-+ provide a more efficient implementation of this method
-+*/
-+ public void write(byte b[], int off, int len) throws java.io.IOException {
-+ byteCount += len;
-+
-+ if (len > 0) {
-+ checksum += specialTrace("Z",b[off]); // Just checksum the first character
-+ }
-+ if( debug ) {
-+ System.out.println("Inside spec.io.FileOutStream.write() -- throwing away output");
-+ }
-+ }
-+
-+ /**
-+ * Chears the byte counter
-+ */
-+ public static void clearCount() {
-+ byteCount = 0;
-+ checksum = 0;
-+ }
-+
-+ /**
-+ * Prints the byte counter in validity check mode '1'
-+ * @param check - Indicates whether the validation is enabled or not
-+ */
-+ public static void printCount(boolean check) {
-+ spec.io.PrintStream s = (spec.io.PrintStream)Context.out;
-+ if( check ) {
-+ s.println('1',"File output byte count = "+byteCount+" checksum = "+checksum);
-+ } else {
-+ s.println('1',"File output byte count = "+byteCount);
-+ }
-+ }
-+
-+
-+ public static int specialTrace(String rtn, int ch) {
-+// ((spec.io.PrintStream)Context.out).println('1',rtn+ch);
-+ return ch;
-+ }
-+}
-+
-+
-diff -Nu mpegaudio1/StopBenchmarkException.java mpegaudio/StopBenchmarkException.java
---- mpegaudio1/StopBenchmarkException.java Thu Jan 1 01:00:00 1970
-+++ mpegaudio/StopBenchmarkException.java Tue Nov 26 11:31:12 2002
-@@ -0,0 +1,9 @@
-+package spec.io;
-+
-+import java.io.IOException;
-+
-+class StopBenchmarkException extends IOException {
-+ public StopBenchmarkException(String a) {
-+ super(a);
-+ }
-+};
-diff -Nu mpegaudio1/TableOfExistingFiles.java mpegaudio/TableOfExistingFiles.java
---- mpegaudio1/TableOfExistingFiles.java Thu Jan 1 01:00:00 1970
-+++ mpegaudio/TableOfExistingFiles.java Tue Nov 26 11:03:06 2002
-@@ -0,0 +1,672 @@
-+/*
-+ * @(#)TableOfExistingFiles.java 1.5 06/17/98
-+ *
-+ * Copyright (c) 1998 Standard Performance Evaluation Corporation (SPEC)
-+ * All rights reserved.
-+ * Copyright (c) 1997,1998 Sun Microsystems, Inc. All rights reserved.
-+ *
-+ * This source code is provided as is, without any express or implied warranty.
-+ */
-+
-+package spec.io;
-+
-+/**
-+ This class maintains a list of the files that should not be loaded across
-+ the net. Any other class or data file required by the SpecJVMClient are
-+ loaded across the net.
-+ */
-+public class TableOfExistingFiles extends java.util.Hashtable{
-+
-+/**
-+ Constructor.
-+ */
-+public TableOfExistingFiles(){
-+super();
-+
-+String o = "Java programmers make better lovers.";
-+super.put("lib/java/util" , o);
-+super.put("lib/java/io" , o);
-+super.put("lib/java/lang/Object.class" , o);
-+super.put("lib/java/lang/Exception.class" , o);
-+super.put("lib/java/lang/Integer.class" , o);
-+super.put("lib/java/lang/NumberFormatException.class" , o);
-+super.put("lib/java/lang/Throwable.class" , o);
-+super.put("lib/java/lang/Class.class" , o);
-+super.put("lib/java/lang/IllegalAccessException.class" , o);
-+super.put("lib/java/lang/StringBuffer.class" , o);
-+super.put("lib/java/lang/ClassNotFoundException.class" , o);
-+super.put("lib/java/lang/IllegalArgumentException.class" , o);
-+super.put("lib/java/lang/Number.class" , o);
-+super.put("lib/java/lang/InterruptedException.class" , o);
-+super.put("lib/java/lang/String.class" , o);
-+super.put("lib/java/lang/RuntimeException.class" , o);
-+super.put("lib/java/lang/InternalError.class" , o);
-+super.put("lib/java/lang/Long.class" , o);
-+super.put("lib/java/lang/Character.class" , o);
-+super.put("lib/java/lang/CloneNotSupportedException.class" , o);
-+super.put("lib/java/lang/InstantiationException.class" , o);
-+super.put("lib/java/lang/VirtualMachineError.class" , o);
-+super.put("lib/java/lang/Double.class" , o);
-+super.put("lib/java/lang/Error.class" , o);
-+super.put("lib/java/lang/NullPointerException.class" , o);
-+super.put("lib/java/lang/Cloneable.class" , o);
-+super.put("lib/java/lang/System.class" , o);
-+super.put("lib/java/lang/ClassLoader.class" , o);
-+super.put("lib/java/lang/Math.class" , o);
-+super.put("lib/java/lang/Float.class" , o);
-+super.put("lib/java/lang/Runtime.class" , o);
-+super.put("lib/java/lang/StringIndexOutOfBoundsException.class" , o);
-+super.put("lib/java/lang/IndexOutOfBoundsException.class" , o);
-+super.put("lib/java/lang/SecurityException.class" , o);
-+super.put("lib/java/lang/LinkageError.class" , o);
-+super.put("lib/java/lang/Runnable.class" , o);
-+super.put("lib/java/lang/Process.class" , o);
-+super.put("lib/java/lang/SecurityManager.class" , o);
-+super.put("lib/java/lang/Thread.class" , o);
-+super.put("lib/java/lang/UnsatisfiedLinkError.class" , o);
-+super.put("lib/java/lang/IncompatibleClassChangeError.class" , o);
-+super.put("lib/java/lang/NoSuchMethodError.class" , o);
-+super.put("lib/java/lang/IllegalThreadStateException.class" , o);
-+super.put("lib/java/lang/ThreadGroup.class" , o);
-+super.put("lib/java/lang/ThreadDeath.class" , o);
-+super.put("lib/java/lang/ArrayIndexOutOfBoundsException.class" , o);
-+super.put("lib/java/lang/Boolean.class" , o);
-+super.put("lib/java/lang/Compiler.class" , o);
-+super.put("lib/java/lang/NoSuchMethodException.class" , o);
-+super.put("lib/java/lang/ArithmeticException.class" , o);
-+super.put("lib/java/lang/ArrayStoreException.class" , o);
-+super.put("lib/java/lang/ClassCastException.class" , o);
-+super.put("lib/java/lang/NegativeArraySizeException.class" , o);
-+super.put("lib/java/lang/IllegalMonitorStateException.class" , o);
-+super.put("lib/java/lang/ClassCircularityError.class" , o);
-+super.put("lib/java/lang/ClassFormatError.class" , o);
-+super.put("lib/java/lang/AbstractMethodError.class" , o);
-+super.put("lib/java/lang/IllegalAccessError.class" , o);
-+super.put("lib/java/lang/InstantiationError.class" , o);
-+super.put("lib/java/lang/NoSuchFieldError.class" , o);
-+super.put("lib/java/lang/NoClassDefFoundError.class" , o);
-+super.put("lib/java/lang/VerifyError.class" , o);
-+super.put("lib/java/lang/OutOfMemoryError.class" , o);
-+super.put("lib/java/lang/StackOverflowError.class" , o);
-+super.put("lib/java/lang/UnknownError.class" , o);
-+super.put("lib/java/lang/Win32Process.class" , o);
-+super.put("lib/java/io/FilterOutputStream.class" , o);
-+super.put("lib/java/io/OutputStream.class" , o);
-+super.put("lib/java/io/IOException.class" , o);
-+super.put("lib/java/io/PrintStream.class" , o);
-+super.put("lib/java/io/FileInputStream.class" , o);
-+super.put("lib/java/io/InterruptedIOException.class" , o);
-+super.put("lib/java/io/File.class" , o);
-+super.put("lib/java/io/InputStream.class" , o);
-+super.put("lib/java/io/BufferedInputStream.class" , o);
-+super.put("lib/java/io/FileOutputStream.class" , o);
-+super.put("lib/java/io/FileNotFoundException.class" , o);
-+super.put("lib/java/io/BufferedOutputStream.class" , o);
-+super.put("lib/java/io/FileDescriptor.class" , o);
-+super.put("lib/java/io/FilenameFilter.class" , o);
-+super.put("lib/java/io/FilterInputStream.class" , o);
-+super.put("lib/java/io/PipedInputStream.class" , o);
-+super.put("lib/java/io/PipedOutputStream.class" , o);
-+super.put("lib/java/io/EOFException.class" , o);
-+super.put("lib/java/io/UTFDataFormatException.class" , o);
-+super.put("lib/java/io/DataInput.class" , o);
-+super.put("lib/java/io/DataOutput.class" , o);
-+super.put("lib/java/io/DataInputStream.class" , o);
-+super.put("lib/java/io/PushbackInputStream.class" , o);
-+super.put("lib/java/io/ByteArrayInputStream.class" , o);
-+super.put("lib/java/io/SequenceInputStream.class" , o);
-+super.put("lib/java/io/StringBufferInputStream.class" , o);
-+super.put("lib/java/io/LineNumberInputStream.class" , o);
-+super.put("lib/java/io/DataOutputStream.class" , o);
-+super.put("lib/java/io/ByteArrayOutputStream.class" , o);
-+super.put("lib/java/io/RandomAccessFile.class" , o);
-+super.put("lib/java/io/StreamTokenizer.class" , o);
-+super.put("lib/java/util/Hashtable.class" , o);
-+super.put("lib/java/util/Enumeration.class" , o);
-+super.put("lib/java/util/HashtableEnumerator.class" , o);
-+super.put("lib/java/util/Properties.class" , o);
-+super.put("lib/java/util/HashtableEntry.class" , o);
-+super.put("lib/java/util/Dictionary.class" , o);
-+super.put("lib/java/util/Date.class" , o);
-+super.put("lib/java/util/NoSuchElementException.class" , o);
-+super.put("lib/java/util/StringTokenizer.class" , o);
-+super.put("lib/java/util/Random.class" , o);
-+super.put("lib/java/util/VectorEnumerator.class" , o);
-+super.put("lib/java/util/Vector.class" , o);
-+super.put("lib/java/util/BitSet.class" , o);
-+super.put("lib/java/util/EmptyStackException.class" , o);
-+super.put("lib/java/util/Observable.class" , o);
-+super.put("lib/java/util/Observer.class" , o);
-+super.put("lib/java/util/ObserverList.class" , o);
-+super.put("lib/java/util/Stack.class" , o);
-+super.put("lib/java/awt/Toolkit.class" , o);
-+super.put("lib/java/awt/peer/WindowPeer.class" , o);
-+super.put("lib/java/awt/peer/TextFieldPeer.class" , o);
-+super.put("lib/java/awt/peer/ContainerPeer.class" , o);
-+super.put("lib/java/awt/peer/PanelPeer.class" , o);
-+super.put("lib/java/awt/peer/CanvasPeer.class" , o);
-+super.put("lib/java/awt/peer/FramePeer.class" , o);
-+super.put("lib/java/awt/peer/ChoicePeer.class" , o);
-+super.put("lib/java/awt/peer/CheckboxMenuItemPeer.class" , o);
-+super.put("lib/java/awt/peer/TextAreaPeer.class" , o);
-+super.put("lib/java/awt/peer/FileDialogPeer.class" , o);
-+super.put("lib/java/awt/peer/TextComponentPeer.class" , o);
-+super.put("lib/java/awt/peer/ScrollbarPeer.class" , o);
-+super.put("lib/java/awt/peer/ButtonPeer.class" , o);
-+super.put("lib/java/awt/peer/ComponentPeer.class" , o);
-+super.put("lib/java/awt/peer/MenuComponentPeer.class" , o);
-+super.put("lib/java/awt/peer/MenuItemPeer.class" , o);
-+super.put("lib/java/awt/peer/CheckboxPeer.class" , o);
-+super.put("lib/java/awt/peer/MenuPeer.class" , o);
-+super.put("lib/java/awt/peer/ListPeer.class" , o);
-+super.put("lib/java/awt/peer/MenuBarPeer.class" , o);
-+super.put("lib/java/awt/peer/LabelPeer.class" , o);
-+super.put("lib/java/awt/peer/DialogPeer.class" , o);
-+super.put("lib/java/awt/Image.class" , o);
-+super.put("lib/java/awt/MenuItem.class" , o);
-+super.put("lib/java/awt/MenuComponent.class" , o);
-+super.put("lib/java/awt/image/ImageProducer.class" , o);
-+super.put("lib/java/awt/image/ColorModel.class" , o);
-+super.put("lib/java/awt/image/DirectColorModel.class" , o);
-+super.put("lib/java/awt/image/ImageConsumer.class" , o);
-+super.put("lib/java/awt/image/ImageObserver.class" , o);
-+super.put("lib/java/awt/image/CropImageFilter.class" , o);
-+super.put("lib/java/awt/image/ImageFilter.class" , o);
-+super.put("lib/java/awt/image/FilteredImageSource.class" , o);
-+super.put("lib/java/awt/image/IndexColorModel.class" , o);
-+super.put("lib/java/awt/image/MemoryImageSource.class" , o);
-+super.put("lib/java/awt/image/PixelGrabber.class" , o);
-+super.put("lib/java/awt/image/RGBImageFilter.class" , o);
-+super.put("lib/java/awt/FontMetrics.class" , o);
-+super.put("lib/java/awt/Checkbox.class" , o);
-+super.put("lib/java/awt/CheckboxGroup.class" , o);
-+super.put("lib/java/awt/MenuContainer.class" , o);
-+super.put("lib/java/awt/Menu.class" , o);
-+super.put("lib/java/awt/Insets.class" , o);
-+super.put("lib/java/awt/MenuBar.class" , o);
-+super.put("lib/java/awt/List.class" , o);
-+super.put("lib/java/awt/Label.class" , o);
-+super.put("lib/java/awt/Component.class" , o);
-+super.put("lib/java/awt/TextField.class" , o);
-+super.put("lib/java/awt/TextComponent.class" , o);
-+super.put("lib/java/awt/Dialog.class" , o);
-+super.put("lib/java/awt/Font.class" , o);
-+super.put("lib/java/awt/Window.class" , o);
-+super.put("lib/java/awt/FocusManager.class" , o);
-+super.put("lib/java/awt/Panel.class" , o);
-+super.put("lib/java/awt/Container.class" , o);
-+super.put("lib/java/awt/Graphics.class" , o);
-+super.put("lib/java/awt/CheckboxMenuItem.class" , o);
-+super.put("lib/java/awt/Canvas.class" , o);
-+super.put("lib/java/awt/Frame.class" , o);
-+super.put("lib/java/awt/Choice.class" , o);
-+super.put("lib/java/awt/Event.class" , o);
-+super.put("lib/java/awt/TextArea.class" , o);
-+super.put("lib/java/awt/AWTError.class" , o);
-+super.put("lib/java/awt/Polygon.class" , o);
-+super.put("lib/java/awt/FlowLayout.class" , o);
-+super.put("lib/java/awt/Point.class" , o);
-+super.put("lib/java/awt/FileDialog.class" , o);
-+super.put("lib/java/awt/Scrollbar.class" , o);
-+super.put("lib/java/awt/Dimension.class" , o);
-+super.put("lib/java/awt/Color.class" , o);
-+super.put("lib/java/awt/Button.class" , o);
-+super.put("lib/java/awt/LayoutManager.class" , o);
-+super.put("lib/java/awt/Rectangle.class" , o);
-+super.put("lib/java/awt/BorderLayout.class" , o);
-+super.put("lib/java/awt/GridLayout.class" , o);
-+super.put("lib/java/awt/GridBagConstraints.class" , o);
-+super.put("lib/java/awt/GridBagLayout.class" , o);
-+super.put("lib/java/awt/GridBagLayoutInfo.class" , o);
-+super.put("lib/java/awt/CardLayout.class" , o);
-+super.put("lib/java/awt/MediaTracker.class" , o);
-+super.put("lib/java/awt/MediaEntry.class" , o);
-+super.put("lib/java/awt/ImageMediaEntry.class" , o);
-+super.put("lib/java/awt/AWTException.class" , o);
-+super.put("lib/java/net/URL.class" , o);
-+super.put("lib/java/net/URLStreamHandlerFactory.class" , o);
-+super.put("lib/java/net/InetAddress.class" , o);
-+super.put("lib/java/net/UnknownContentHandler.class" , o);
-+super.put("lib/java/net/UnknownHostException.class" , o);
-+super.put("lib/java/net/URLStreamHandler.class" , o);
-+super.put("lib/java/net/URLConnection.class" , o);
-+super.put("lib/java/net/MalformedURLException.class" , o);
-+super.put("lib/java/net/ContentHandlerFactory.class" , o);
-+super.put("lib/java/net/ContentHandler.class" , o);
-+super.put("lib/java/net/UnknownServiceException.class" , o);
-+super.put("lib/java/net/ServerSocket.class" , o);
-+super.put("lib/java/net/PlainSocketImpl.class" , o);
-+super.put("lib/java/net/SocketImpl.class" , o);
-+super.put("lib/java/net/ProtocolException.class" , o);
-+super.put("lib/java/net/SocketException.class" , o);
-+super.put("lib/java/net/SocketInputStream.class" , o);
-+super.put("lib/java/net/Socket.class" , o);
-+super.put("lib/java/net/SocketImplFactory.class" , o);
-+super.put("lib/java/net/SocketOutputStream.class" , o);
-+super.put("lib/java/net/DatagramPacket.class" , o);
-+super.put("lib/java/net/DatagramSocket.class" , o);
-+super.put("lib/java/net/URLEncoder.class" , o);
-+super.put("lib/java/applet/Applet.class" , o);
-+super.put("lib/java/applet/AppletContext.class" , o);
-+super.put("lib/java/applet/AudioClip.class" , o);
-+super.put("lib/java/applet/AppletStub.class" , o);
-+super.put("lib/sun/tools/debug/BreakpointQueue.class" , o);
-+super.put("lib/sun/tools/debug/DebuggerCallback.class" , o);
-+super.put("lib/sun/tools/debug/RemoteThread.class" , o);
-+super.put("lib/sun/tools/debug/StackFrame.class" , o);
-+super.put("lib/sun/tools/debug/RemoteAgent.class" , o);
-+super.put("lib/sun/tools/debug/AgentConstants.class" , o);
-+super.put("lib/sun/tools/debug/AgentIn.class" , o);
-+super.put("lib/sun/tools/debug/RemoteObject.class" , o);
-+super.put("lib/sun/tools/debug/RemoteStackVariable.class" , o);
-+super.put("lib/sun/tools/debug/RemoteValue.class" , o);
-+super.put("lib/sun/tools/debug/RemoteClass.class" , o);
-+super.put("lib/sun/tools/debug/Agent.class" , o);
-+super.put("lib/sun/tools/debug/RemoteBoolean.class" , o);
-+super.put("lib/sun/tools/debug/RemoteChar.class" , o);
-+super.put("lib/sun/tools/debug/RemoteString.class" , o);
-+super.put("lib/sun/tools/debug/NoSessionException.class" , o);
-+super.put("lib/sun/tools/debug/Field.class" , o);
-+super.put("lib/sun/tools/debug/NoSuchLineNumberException.class" , o);
-+super.put("lib/sun/tools/debug/RemoteShort.class" , o);
-+super.put("lib/sun/tools/debug/RemoteThreadGroup.class" , o);
-+super.put("lib/sun/tools/debug/RemoteInt.class" , o);
-+super.put("lib/sun/tools/debug/ResponseStream.class" , o);
-+super.put("lib/sun/tools/debug/RemoteDouble.class" , o);
-+super.put("lib/sun/tools/debug/LocalVariable.class" , o);
-+super.put("lib/sun/tools/debug/BreakpointSet.class" , o);
-+super.put("lib/sun/tools/debug/RemoteStackFrame.class" , o);
-+super.put("lib/sun/tools/debug/MainThread.class" , o);
-+super.put("lib/sun/tools/debug/BreakpointHandler.class" , o);
-+super.put("lib/sun/tools/debug/AgentOutputStream.class" , o);
-+super.put("lib/sun/tools/debug/RemoteLong.class" , o);
-+super.put("lib/sun/tools/debug/RemoteFloat.class" , o);
-+super.put("lib/sun/tools/debug/RemoteArray.class" , o);
-+super.put("lib/sun/tools/debug/InvalidPCException.class" , o);
-+super.put("lib/sun/tools/debug/LineNumber.class" , o);
-+super.put("lib/sun/tools/debug/RemoteField.class" , o);
-+super.put("lib/sun/tools/debug/NoSuchFieldException.class" , o);
-+super.put("lib/sun/tools/debug/RemoteByte.class" , o);
-+super.put("lib/sun/tools/debug/EmptyApp.class" , o);
-+super.put("lib/sun/tools/debug/RemoteDebugger.class" , o);
-+super.put("lib/sun/tools/java/RuntimeConstants.class" , o);
-+super.put("lib/sun/tools/java/Constants.class" , o);
-+super.put("lib/sun/tools/java/Environment.class" , o);
-+super.put("lib/sun/tools/java/ClassPath.class" , o);
-+super.put("lib/sun/tools/java/ClassDeclaration.class" , o);
-+super.put("lib/sun/tools/java/FieldDefinition.class" , o);
-+super.put("lib/sun/tools/java/Type.class" , o);
-+super.put("lib/sun/tools/java/ClassNotFound.class" , o);
-+super.put("lib/sun/tools/java/ClassType.class" , o);
-+super.put("lib/sun/tools/java/ClassDefinition.class" , o);
-+super.put("lib/sun/tools/java/Parser.class" , o);
-+super.put("lib/sun/tools/java/ClassPathEntry.class" , o);
-+super.put("lib/sun/tools/java/CompilerError.class" , o);
-+super.put("lib/sun/tools/java/Identifier.class" , o);
-+super.put("lib/sun/tools/java/Package.class" , o);
-+super.put("lib/sun/tools/java/ClassFile.class" , o);
-+super.put("lib/sun/tools/java/Imports.class" , o);
-+super.put("lib/sun/tools/java/ArrayType.class" , o);
-+super.put("lib/sun/tools/java/AmbiguousField.class" , o);
-+super.put("lib/sun/tools/java/MethodType.class" , o);
-+super.put("lib/sun/tools/java/Scanner.class" , o);
-+super.put("lib/sun/tools/java/SyntaxError.class" , o);
-+super.put("lib/sun/tools/java/BinaryClass.class" , o);
-+super.put("lib/sun/tools/java/BinaryField.class" , o);
-+super.put("lib/sun/tools/java/AmbiguousClass.class" , o);
-+super.put("lib/sun/tools/java/BinaryConstantPool.class" , o);
-+super.put("lib/sun/tools/java/ScannerInputStream.class" , o);
-+super.put("lib/sun/tools/java/BinaryAttribute.class" , o);
-+super.put("lib/sun/tools/java/BinaryCode.class" , o);
-+super.put("lib/sun/tools/java/BinaryExceptionHandler.class" , o);
-+super.put("lib/sun/tools/javac/Main.class" , o);
-+super.put("lib/sun/tools/javac/SourceClass.class" , o);
-+super.put("lib/sun/tools/javac/CompilerField.class" , o);
-+super.put("lib/sun/tools/javac/SourceField.class" , o);
-+super.put("lib/sun/tools/javac/BatchEnvironment.class" , o);
-+super.put("lib/sun/tools/javac/ErrorConsumer.class" , o);
-+super.put("lib/sun/tools/javac/ErrorMessage.class" , o);
-+super.put("lib/sun/tools/javac/BatchParser.class" , o);
-+super.put("lib/sun/tools/zip/ZipFile.class" , o);
-+super.put("lib/sun/tools/zip/ZipEntry.class" , o);
-+super.put("lib/sun/tools/zip/ZipFileInputStream.class" , o);
-+super.put("lib/sun/tools/zip/ZipConstants.class" , o);
-+super.put("lib/sun/tools/zip/ZipFormatException.class" , o);
-+super.put("lib/sun/tools/zip/ZipReaderInputStream.class" , o);
-+super.put("lib/sun/tools/zip/ZipReader.class" , o);
-+super.put("lib/sun/tools/tree/ConstantExpression.class" , o);
-+super.put("lib/sun/tools/tree/LocalField.class" , o);
-+super.put("lib/sun/tools/tree/Expression.class" , o);
-+super.put("lib/sun/tools/tree/IncDecExpression.class" , o);
-+super.put("lib/sun/tools/tree/SuperExpression.class" , o);
-+super.put("lib/sun/tools/tree/NaryExpression.class" , o);
-+super.put("lib/sun/tools/tree/StringExpression.class" , o);
-+super.put("lib/sun/tools/tree/UnaryExpression.class" , o);
-+super.put("lib/sun/tools/tree/Context.class" , o);
-+super.put("lib/sun/tools/tree/ExpressionStatement.class" , o);
-+super.put("lib/sun/tools/tree/ConditionVars.class" , o);
-+super.put("lib/sun/tools/tree/Node.class" , o);
-+super.put("lib/sun/tools/tree/CharExpression.class" , o);
-+super.put("lib/sun/tools/tree/CaseStatement.class" , o);
-+super.put("lib/sun/tools/tree/LessExpression.class" , o);
-+super.put("lib/sun/tools/tree/IntegerExpression.class" , o);
-+super.put("lib/sun/tools/tree/SubtractExpression.class" , o);
-+super.put("lib/sun/tools/tree/ArrayAccessExpression.class" , o);
-+super.put("lib/sun/tools/tree/TryStatement.class" , o);
-+super.put("lib/sun/tools/tree/BinaryEqualityExpression.class" , o);
-+super.put("lib/sun/tools/tree/Statement.class" , o);
-+super.put("lib/sun/tools/tree/AssignSubtractExpression.class" , o);
-+super.put("lib/sun/tools/tree/FinallyStatement.class" , o);
-+super.put("lib/sun/tools/tree/ForStatement.class" , o);
-+super.put("lib/sun/tools/tree/DivRemExpression.class" , o);
-+super.put("lib/sun/tools/tree/BinaryExpression.class" , o);
-+super.put("lib/sun/tools/tree/ShiftRightExpression.class" , o);
-+super.put("lib/sun/tools/tree/AssignMultiplyExpression.class" , o);
-+super.put("lib/sun/tools/tree/BooleanExpression.class" , o);
-+super.put("lib/sun/tools/tree/BinaryArithmeticExpression.class" , o);
-+super.put("lib/sun/tools/tree/ThrowStatement.class" , o);
-+super.put("lib/sun/tools/tree/AssignDivideExpression.class" , o);
-+super.put("lib/sun/tools/tree/AssignShiftLeftExpression.class" , o);
-+super.put("lib/sun/tools/tree/NewArrayExpression.class" , o);
-+super.put("lib/sun/tools/tree/AndExpression.class" , o);
-+super.put("lib/sun/tools/tree/AssignBitOrExpression.class" , o);
-+super.put("lib/sun/tools/tree/BreakStatement.class" , o);
-+super.put("lib/sun/tools/tree/SynchronizedStatement.class" , o);
-+super.put("lib/sun/tools/tree/PreDecExpression.class" , o);
-+super.put("lib/sun/tools/tree/CompoundStatement.class" , o);
-+super.put("lib/sun/tools/tree/DoubleExpression.class" , o);
-+super.put("lib/sun/tools/tree/ConvertExpression.class" , o);
-+super.put("lib/sun/tools/tree/NullExpression.class" , o);
-+super.put("lib/sun/tools/tree/LessOrEqualExpression.class" , o);
-+super.put("lib/sun/tools/tree/IdentifierExpression.class" , o);
-+super.put("lib/sun/tools/tree/ReturnStatement.class" , o);
-+super.put("lib/sun/tools/tree/BitNotExpression.class" , o);
-+super.put("lib/sun/tools/tree/LongExpression.class" , o);
-+super.put("lib/sun/tools/tree/VarDeclarationStatement.class" , o);
-+super.put("lib/sun/tools/tree/MethodExpression.class" , o);
-+super.put("lib/sun/tools/tree/ThisExpression.class" , o);
-+super.put("lib/sun/tools/tree/BitOrExpression.class" , o);
-+super.put("lib/sun/tools/tree/PositiveExpression.class" , o);
-+super.put("lib/sun/tools/tree/IfStatement.class" , o);
-+super.put("lib/sun/tools/tree/FloatExpression.class" , o);
-+super.put("lib/sun/tools/tree/NotEqualExpression.class" , o);
-+super.put("lib/sun/tools/tree/InstanceOfExpression.class" , o);
-+super.put("lib/sun/tools/tree/NotExpression.class" , o);
-+super.put("lib/sun/tools/tree/BitAndExpression.class" , o);
-+super.put("lib/sun/tools/tree/DivideExpression.class" , o);
-+super.put("lib/sun/tools/tree/ShortExpression.class" , o);
-+super.put("lib/sun/tools/tree/RemainderExpression.class" , o);
-+super.put("lib/sun/tools/tree/NewInstanceExpression.class" , o);
-+super.put("lib/sun/tools/tree/SwitchStatement.class" , o);
-+super.put("lib/sun/tools/tree/AddExpression.class" , o);
-+super.put("lib/sun/tools/tree/AssignOpExpression.class" , o);
-+super.put("lib/sun/tools/tree/EqualExpression.class" , o);
-+super.put("lib/sun/tools/tree/PostIncExpression.class" , o);
-+super.put("lib/sun/tools/tree/GreaterExpression.class" , o);
-+super.put("lib/sun/tools/tree/PostDecExpression.class" , o);
-+super.put("lib/sun/tools/tree/AssignExpression.class" , o);
-+super.put("lib/sun/tools/tree/WhileStatement.class" , o);
-+super.put("lib/sun/tools/tree/ContinueStatement.class" , o);
-+super.put("lib/sun/tools/tree/ConditionalExpression.class" , o);
-+super.put("lib/sun/tools/tree/AssignAddExpression.class" , o);
-+super.put("lib/sun/tools/tree/BinaryBitExpression.class" , o);
-+super.put("lib/sun/tools/tree/CastExpression.class" , o);
-+super.put("lib/sun/tools/tree/AssignBitXorExpression.class" , o);
-+super.put("lib/sun/tools/tree/ArrayExpression.class" , o);
-+super.put("lib/sun/tools/tree/InlineMethodExpression.class" , o);
-+super.put("lib/sun/tools/tree/InlineNewInstanceExpression.class" , o);
-+super.put("lib/sun/tools/tree/CodeContext.class" , o);
-+super.put("lib/sun/tools/tree/AssignShiftRightExpression.class" , o);
-+super.put("lib/sun/tools/tree/UnsignedShiftRightExpression.class" , o);
-+super.put("lib/sun/tools/tree/AssignBitAndExpression.class" , o);
-+super.put("lib/sun/tools/tree/ShiftLeftExpression.class" , o);
-+super.put("lib/sun/tools/tree/CatchStatement.class" , o);
-+super.put("lib/sun/tools/tree/IntExpression.class" , o);
-+super.put("lib/sun/tools/tree/TypeExpression.class" , o);
-+super.put("lib/sun/tools/tree/CommaExpression.class" , o);
-+super.put("lib/sun/tools/tree/AssignUnsignedShiftRightExpression.class" , o);
-+super.put("lib/sun/tools/tree/ExprExpression.class" , o);
-+super.put("lib/sun/tools/tree/AssignRemainderExpression.class" , o);
-+super.put("lib/sun/tools/tree/ByteExpression.class" , o);
-+super.put("lib/sun/tools/tree/BinaryAssignExpression.class" , o);
-+super.put("lib/sun/tools/tree/DoStatement.class" , o);
-+super.put("lib/sun/tools/tree/DeclarationStatement.class" , o);
-+super.put("lib/sun/tools/tree/MultiplyExpression.class" , o);
-+super.put("lib/sun/tools/tree/InlineReturnStatement.class" , o);
-+super.put("lib/sun/tools/tree/BitXorExpression.class" , o);
-+super.put("lib/sun/tools/tree/BinaryCompareExpression.class" , o);
-+super.put("lib/sun/tools/tree/BinaryShiftExpression.class" , o);
-+super.put("lib/sun/tools/tree/CheckContext.class" , o);
-+super.put("lib/sun/tools/tree/PreIncExpression.class" , o);
-+super.put("lib/sun/tools/tree/GreaterOrEqualExpression.class" , o);
-+super.put("lib/sun/tools/tree/FieldExpression.class" , o);
-+super.put("lib/sun/tools/tree/OrExpression.class" , o);
-+super.put("lib/sun/tools/tree/BinaryLogicalExpression.class" , o);
-+super.put("lib/sun/tools/tree/NegativeExpression.class" , o);
-+super.put("lib/sun/tools/tree/LengthExpression.class" , o);
-+super.put("lib/sun/tools/asm/Assembler.class" , o);
-+super.put("lib/sun/tools/asm/Instruction.class" , o);
-+super.put("lib/sun/tools/asm/LocalVariable.class" , o);
-+super.put("lib/sun/tools/asm/ArrayData.class" , o);
-+super.put("lib/sun/tools/asm/LocalVariableTable.class" , o);
-+super.put("lib/sun/tools/asm/SwitchDataEnumeration.class" , o);
-+super.put("lib/sun/tools/asm/ConstantPool.class" , o);
-+super.put("lib/sun/tools/asm/ConstantPoolData.class" , o);
-+super.put("lib/sun/tools/asm/NameAndTypeConstantData.class" , o);
-+super.put("lib/sun/tools/asm/NumberConstantData.class" , o);
-+super.put("lib/sun/tools/asm/FieldConstantData.class" , o);
-+super.put("lib/sun/tools/asm/TryData.class" , o);
-+super.put("lib/sun/tools/asm/Label.class" , o);
-+super.put("lib/sun/tools/asm/SwitchData.class" , o);
-+super.put("lib/sun/tools/asm/CatchData.class" , o);
-+super.put("lib/sun/tools/asm/StringExpressionConstantData.class" , o);
-+super.put("lib/sun/tools/asm/NameAndTypeData.class" , o);
-+super.put("lib/sun/tools/asm/StringConstantData.class" , o);
-+super.put("lib/sun/tools/asm/ClassConstantData.class" , o);
-+super.put("lib/sun/tools/ttydebug/TTY.class" , o);
-+super.put("lib/sun/tools/javadoc/Main.class" , o);
-+super.put("lib/sun/tools/javadoc/DocumentationGenerator.class" , o);
-+super.put("lib/sun/tools/javadoc/HTMLDocumentationGenerator.class" , o);
-+super.put("lib/sun/tools/javadoc/MIFDocumentationGenerator.class" , o);
-+super.put("lib/sun/tools/javadoc/MIFPrintStream.class" , o);
-+super.put("lib/sun/net/MulticastSocket.class" , o);
-+super.put("lib/sun/net/URLCanonicalizer.class" , o);
-+super.put("lib/sun/net/NetworkClient.class" , o);
-+super.put("lib/sun/net/NetworkServer.class" , o);
-+super.put("lib/sun/net/ProgressData.class" , o);
-+super.put("lib/sun/net/ProgressEntry.class" , o);
-+super.put("lib/sun/net/TelnetInputStream.class" , o);
-+super.put("lib/sun/net/TelnetProtocolException.class" , o);
-+super.put("lib/sun/net/TelnetOutputStream.class" , o);
-+super.put("lib/sun/net/TransferProtocolClient.class" , o);
-+super.put("lib/sun/net/ftp/FtpInputStream.class" , o);
-+super.put("lib/sun/net/ftp/FtpClient.class" , o);
-+super.put("lib/sun/net/ftp/FtpLoginException.class" , o);
-+super.put("lib/sun/net/ftp/FtpProtocolException.class" , o);
-+super.put("lib/sun/net/ftp/IftpClient.class" , o);
-+super.put("lib/sun/net/nntp/NewsgroupInfo.class" , o);
-+super.put("lib/sun/net/nntp/NntpClient.class" , o);
-+super.put("lib/sun/net/nntp/UnknownNewsgroupException.class" , o);
-+super.put("lib/sun/net/nntp/NntpProtocolException.class" , o);
-+super.put("lib/sun/net/nntp/NntpInputStream.class" , o);
-+super.put("lib/sun/net/smtp/SmtpPrintStream.class" , o);
-+super.put("lib/sun/net/smtp/SmtpClient.class" , o);
-+super.put("lib/sun/net/smtp/SmtpProtocolException.class" , o);
-+super.put("lib/sun/net/www/auth/Authenticator.class" , o);
-+super.put("lib/sun/net/www/auth/basic.class" , o);
-+super.put("lib/sun/net/www/content/text/Generic.class" , o);
-+super.put("lib/sun/net/www/content/text/plain.class" , o);
-+super.put("lib/sun/net/www/content/image/gif.class" , o);
-+super.put("lib/sun/net/www/content/image/jpeg.class" , o);
-+super.put("lib/sun/net/www/content/image/x_xbitmap.class" , o);
-+super.put("lib/sun/net/www/content/image/x_xpixmap.class" , o);
-+super.put("lib/sun/net/www/FormatException.class" , o);
-+super.put("lib/sun/net/www/MessageHeader.class" , o);
-+super.put("lib/sun/net/www/MeteredStream.class" , o);
-+super.put("lib/sun/net/www/ProgressReport.class" , o);
-+super.put("lib/sun/net/www/MimeEntry.class" , o);
-+super.put("lib/sun/net/www/MimeLauncher.class" , o);
-+super.put("lib/sun/net/www/MimeTable.class" , o);
-+super.put("lib/sun/net/www/URLConnection.class" , o);
-+super.put("lib/sun/net/www/UnknownContentException.class" , o);
-+super.put("lib/sun/net/www/UnknownContentHandler.class" , o);
-+super.put("lib/sun/net/www/protocol/file/Handler.class" , o);
-+super.put("lib/sun/net/www/protocol/file/FileURLConnection.class" , o);
-+super.put("lib/sun/net/www/protocol/http/Handler.class" , o);
-+super.put("lib/sun/net/www/protocol/http/HttpURLConnection.class" , o);
-+super.put("lib/sun/net/www/protocol/http/HttpPostBufferStream.class" , o);
-+super.put("lib/sun/net/www/protocol/doc/Handler.class" , o);
-+super.put("lib/sun/net/www/protocol/verbatim/Handler.class" , o);
-+super.put("lib/sun/net/www/protocol/verbatim/VerbatimConnection.class" , o);
-+super.put("lib/sun/net/www/protocol/gopher/GopherClient.class" , o);
-+super.put("lib/sun/net/www/protocol/gopher/GopherInputStream.class" , o);
-+super.put("lib/sun/net/www/http/UnauthorizedHttpRequestException.class" , o);
-+super.put("lib/sun/net/www/http/HttpClient.class" , o);
-+super.put("lib/sun/net/www/http/AuthenticationInfo.class" , o);
-+super.put("lib/sun/awt/HorizBagLayout.class" , o);
-+super.put("lib/sun/awt/VerticalBagLayout.class" , o);
-+super.put("lib/sun/awt/VariableGridLayout.class" , o);
-+super.put("lib/sun/awt/FocusingTextField.class" , o);
-+super.put("lib/sun/awt/win32/MToolkit.class" , o);
-+super.put("lib/sun/awt/win32/MMenuBarPeer.class" , o);
-+super.put("lib/sun/awt/win32/MButtonPeer.class" , o);
-+super.put("lib/sun/awt/win32/Win32Image.class" , o);
-+super.put("lib/sun/awt/win32/MScrollbarPeer.class" , o);
-+super.put("lib/sun/awt/win32/MDialogPeer.class" , o);
-+super.put("lib/sun/awt/win32/MCheckboxMenuItemPeer.class" , o);
-+super.put("lib/sun/awt/win32/Win32Graphics.class" , o);
-+super.put("lib/sun/awt/win32/MListPeer.class" , o);
-+super.put("lib/sun/awt/win32/MWindowPeer.class" , o);
-+super.put("lib/sun/awt/win32/MMenuItemPeer.class" , o);
-+super.put("lib/sun/awt/win32/ModalThread.class" , o);
-+super.put("lib/sun/awt/win32/MCanvasPeer.class" , o);
-+super.put("lib/sun/awt/win32/MFileDialogPeer.class" , o);
-+super.put("lib/sun/awt/win32/MTextAreaPeer.class" , o);
-+super.put("lib/sun/awt/win32/MPanelPeer.class" , o);
-+super.put("lib/sun/awt/win32/MComponentPeer.class" , o);
-+super.put("lib/sun/awt/win32/MCheckboxPeer.class" , o);
-+super.put("lib/sun/awt/win32/MLabelPeer.class" , o);
-+super.put("lib/sun/awt/win32/Win32FontMetrics.class" , o);
-+super.put("lib/sun/awt/win32/MFramePeer.class" , o);
-+super.put("lib/sun/awt/win32/MMenuPeer.class" , o);
-+super.put("lib/sun/awt/win32/MChoicePeer.class" , o);
-+super.put("lib/sun/awt/win32/MTextFieldPeer.class" , o);
-+super.put("lib/sun/awt/win32/Win32PrintJob.class" , o);
-+super.put("lib/sun/awt/image/URLImageSource.class" , o);
-+super.put("lib/sun/awt/image/ImageWatched.class" , o);
-+super.put("lib/sun/awt/image/InputStreamImageSource.class" , o);
-+super.put("lib/sun/awt/image/ConsumerQueue.class" , o);
-+super.put("lib/sun/awt/image/ImageDecoder.class" , o);
-+super.put("lib/sun/awt/image/ImageRepresentation.class" , o);
-+super.put("lib/sun/awt/image/ImageInfoGrabber.class" , o);
-+super.put("lib/sun/awt/image/XbmImageDecoder.class" , o);
-+super.put("lib/sun/awt/image/GifImageDecoder.class" , o);
-+super.put("lib/sun/awt/image/ImageFetcher.class" , o);
-+super.put("lib/sun/awt/image/PixelStore.class" , o);
-+super.put("lib/sun/awt/image/JPEGImageDecoder.class" , o);
-+super.put("lib/sun/awt/image/PixelStore8.class" , o);
-+super.put("lib/sun/awt/image/ImageFetchable.class" , o);
-+super.put("lib/sun/awt/image/OffScreenImageSource.class" , o);
-+super.put("lib/sun/awt/image/PixelStore32.class" , o);
-+super.put("lib/sun/awt/image/ImageFormatException.class" , o);
-+super.put("lib/sun/awt/image/FileImageSource.class" , o);
-+super.put("lib/sun/awt/image/Image.class" , o);
-+super.put("lib/sun/awt/UpdateClient.class" , o);
-+super.put("lib/sun/awt/ScreenUpdaterEntry.class" , o);
-+super.put("lib/sun/awt/ScreenUpdater.class" , o);
-+super.put("lib/sun/misc/Ref.class" , o);
-+super.put("lib/sun/misc/MessageUtils.class" , o);
-+super.put("lib/sun/misc/Cache.class" , o);
-+super.put("lib/sun/misc/CacheEntry.class" , o);
-+super.put("lib/sun/misc/CacheEnumerator.class" , o);
-+super.put("lib/sun/misc/CEFormatException.class" , o);
-+super.put("lib/sun/misc/CEStreamExhausted.class" , o);
-+super.put("lib/sun/misc/CRC16.class" , o);
-+super.put("lib/sun/misc/CharacterDecoder.class" , o);
-+super.put("lib/sun/misc/BASE64Decoder.class" , o);
-+super.put("lib/sun/misc/UCDecoder.class" , o);
-+super.put("lib/sun/misc/UUDecoder.class" , o);
-+super.put("lib/sun/misc/CharacterEncoder.class" , o);
-+super.put("lib/sun/misc/BASE64Encoder.class" , o);
-+super.put("lib/sun/misc/HexDumpEncoder.class" , o);
-+super.put("lib/sun/misc/UCEncoder.class" , o);
-+super.put("lib/sun/misc/UUEncoder.class" , o);
-+super.put("lib/sun/misc/Timeable.class" , o);
-+super.put("lib/sun/misc/TimerTickThread.class" , o);
-+super.put("lib/sun/misc/Timer.class" , o);
-+super.put("lib/sun/misc/TimerThread.class" , o);
-+super.put("lib/sun/misc/ConditionLock.class" , o);
-+super.put("lib/sun/misc/Lock.class" , o);
-+super.put("lib/sun/audio/AudioDataStream.class" , o);
-+super.put("lib/sun/audio/AudioData.class" , o);
-+super.put("lib/sun/audio/AudioDevice.class" , o);
-+super.put("lib/sun/audio/AudioPlayer.class" , o);
-+super.put("lib/sun/audio/AudioStream.class" , o);
-+super.put("lib/sun/audio/NativeAudioStream.class" , o);
-+super.put("lib/sun/audio/InvalidAudioFormatException.class" , o);
-+super.put("lib/sun/audio/AudioTranslatorStream.class" , o);
-+super.put("lib/sun/audio/AudioStreamSequence.class" , o);
-+super.put("lib/sun/audio/ContinuousAudioDataStream.class" , o);
-+super.put("lib/sun/applet/StdAppletViewerFactory.class" , o);
-+super.put("lib/sun/applet/TextFrame.class" , o);
-+super.put("lib/sun/applet/AppletViewerFactory.class" , o);
-+super.put("lib/sun/applet/AppletViewer.class" , o);
-+super.put("lib/sun/applet/AppletCopyright.class" , o);
-+super.put("lib/sun/applet/AppletAudioClip.class" , o);
-+super.put("lib/sun/applet/AppletSecurity.class" , o);
-+super.put("lib/sun/applet/AppletThreadGroup.class" , o);
-+super.put("lib/sun/applet/AppletClassLoader.class" , o);
-+super.put("lib/sun/applet/AppletPanel.class" , o);
-+super.put("lib/sun/applet/AppletViewerPanel.class" , o);
-+super.put("lib/sun/applet/AppletProps.class" , o);
-+super.put("lib/sun/applet/AppletSecurityException.class" , o);
-+super.put("lib/sun/applet/AppletZipClassLoader.class" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Activation.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Binding.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Context.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/ContextState.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Deffacts.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Deffunction.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Defglobal.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Defrule.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Deftemplate.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Fact.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Funcall.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/GlobalContext.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Jesp.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Jess.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Main.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Node.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Node1.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Node2.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/NodeNot2.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/NodeTerm.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/NullDisplay.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Pattern.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/RU.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Rete.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/ReteCompiler.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/ReteDisplay.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/ReteException.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/StringFunctions.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Successor.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Test1.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Test2.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Token.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/TokenVector.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Userfunction.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/Value.java" , o);
-+super.put("lib/spec/benchmarks/_202_jess/ValueVector.java" , o);
-+
-+}
-+
-+/**
-+ Checks whether the given file exists in the list of existing files
-+ */
-+public boolean exists(String filename){
-+
-+// System.out.println( "*** "+filename+" = "+containsKey(filename) );
-+ return containsKey(filename);
-+
-+}
-+}
-diff -Nu mpegaudio1/setup.sh mpegaudio/setup.sh
---- mpegaudio1/setup.sh Thu Jan 1 01:00:00 1970
-+++ mpegaudio/setup.sh Sat Nov 30 18:06:34 2002
-@@ -0,0 +1,2 @@
-+mkdir -p spec/benchmarks/_222_mpegaudio
-+mv *.class spec/benchmarks/_222_mpegaudio
-diff -Nu mpegaudio1/PrintStream.java mpegaudio/PrintStream.java
---- mpegaudio1/PrintStream.java Thu Jan 1 01:00:00 1970
-+++ mpegaudio/PrintStream.java Sat Nov 30 18:13:49 2002
-@@ -0,0 +1,65 @@
-+/*
-+ * %W% %G%
-+ *
-+ * Copyright (c) 1998 Standard Performance Evaluation Corporation (SPEC)
-+ * All rights reserved.
-+ * Copyright (c) 1997,1998 Sun Microsystems, Inc. All rights reserved.
-+ *
-+ * This source code is provided as is, without any express or implied warranty.
-+ */
-+
-+package spec.io;
-+
-+/**
-+ * This class implements a special form of PrintStream that is used by
-+ * the benchmarks. The class vaieable spec.harness.Context.out is made
-+ * to point to an instance of this class. The purpuse of the class is to
-+ * record validity check information with the recorded output. This is done
-+ * using one of nine integer values (0-8). 0 means the default validity checking
-+ * is to be used and is what a Context.out.println() would employ. The numbers
-+ * 1 through 8 are used to set various valitity cheching rules. This class
-+ * implements a set of println() type methods that allow the text output to be
-+ * does so within the context of a certain validity cheching value.
-+ *
-+ * These routines will output the valitity check value to the associated
-+ * OutputStream unchanged. This will cause them to be output as the character
-+ * values \u0000 to \u0008 these values are not normally used (the next one
-+ * \u0009 is) so this should not cause a problem. However this is checked for
-+ * in ValidityCheckOutputStream.
-+ *
-+ * @see ConsoleOutputStream
-+ * @see ValidityCheckOutputStream
-+ */
-+public
-+class PrintStream extends java.io.PrintStream {
-+ /**
-+ * The actual output stream. This is the same as 'out' in our superclass but
-+ * kept here as well to avoid a lot of runtime casting.
-+ */
-+
-+ /**
-+ * Creates a new PrintStream.
-+ * @param out the output stream
-+ */
-+ public PrintStream(java.io.OutputStream out) {
-+ super(out, false);
-+ }
-+
-+ /**
-+ * Print a string in a validity context
-+ * @param v the validity context value.
-+ * @param s the data to be printed.
-+ */
-+ synchronized public void print(char v, String s) {
-+ super.print(s);
-+ }
-+
-+ /**
-+ * Print a string in a validity context
-+ * @param v the validity context value.
-+ * @param s the data to be printed.
-+ */
-+ synchronized public void println(char v, String s) {
-+ super.println(s);
-+ }
-+}
---- mpegaudio2/Main.java Mon Dec 9 12:36:17 2002
-+++ mpegaudio/Main.java Mon Dec 9 12:34:26 2002
-@@ -7,15 +7,15 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._222_mpegaudio;
--import spec.harness.*;
-+import spec.benchmarks._222_mpegaudio.*;
-+//import spec.harness.*;
-
-
--public class Main implements SpecBenchmark {
-+public class Main {
-
- static long runBenchmark( String[] args ) {
-
-- int speed = spec.harness.Context.getSpeed();
-+ int speed = 100;
- int iter = 1;
- String name = "track16.mp3";
-
-@@ -34,11 +34,11 @@
- args[0] = "input/"+name;
- }
-
-- spec.harness.Context.out.println( "MPEG Audio - Decoding " + args[0] + " " + iter + " time" + (iter > 1 ? "s" : "") );
-+ System.out.println( "MPEG Audio - Decoding " + args[0] + " " + iter + " time" + (iter > 1 ? "s" : "") );
- long startTime = System.currentTimeMillis();
-
- for( int i = 0 ; i < iter ; i++ ) {
-- BenchDec.main( args );
-+ JavaDec.main( args );
- }
-
- return System.currentTimeMillis() - startTime;
-diff -Nu mpegaudio2/postoutput.sh mpegaudio/postoutput.sh
---- mpegaudio2/postoutput.sh Thu Jan 1 01:00:00 1970
-+++ mpegaudio/postoutput.sh Mon Dec 9 15:11:24 2002
-@@ -0,0 +1 @@
-+md5sum output.wav > mpegaudio.output
+++ /dev/null
-d6de59d8ab7862aa4f491d19d70ace36 output.wav
+++ /dev/null
-diff -u raytrace1/CacheIntersectPt.java raytrace/CacheIntersectPt.java
---- raytrace1/CacheIntersectPt.java Wed Jun 17 22:14:38 1998
-+++ raytrace/CacheIntersectPt.java Mon Nov 30 22:21:47 1998
-@@ -9,7 +9,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
- //import IntersectPt;
-
- /**
-diff -u raytrace1/Camera.java raytrace/Camera.java
---- raytrace1/Camera.java Wed Jun 17 22:14:38 1998
-+++ raytrace/Camera.java Mon Nov 30 22:21:47 1998
-@@ -10,7 +10,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
- //import Point;
- //import Vector;
-
-diff -u raytrace1/Canvas.java raytrace/Canvas.java
---- raytrace1/Canvas.java Wed Jun 17 22:14:39 1998
-+++ raytrace/Canvas.java Mon Nov 30 22:37:08 1998
-@@ -13,7 +13,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
-
-
- /**
-@@ -147,8 +147,8 @@
- int min = Math.min(GetHeight(), GetWidth());
-
- for (int i = (min*min)-min; i>0; i -= min-1) {
-- spec.io.PrintStream p = (spec.io.PrintStream)spec.harness.Context.out;
-- if (Pixels [i] != 0) p.println('1', ""+Pixels[i]); // NS
-+ java.io.PrintStream p = (java.io.PrintStream) System.out;
-+ if (Pixels [i] != 0) p.println("1"+Pixels[i]); // NS
- }
- }
-
-diff -u raytrace1/Color.java raytrace/Color.java
---- raytrace1/Color.java Wed Jun 17 22:14:40 1998
-+++ raytrace/Color.java Mon Nov 30 22:21:47 1998
-@@ -12,7 +12,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
- /**
- * class Color
- */
-diff -u raytrace1/Face.java raytrace/Face.java
---- raytrace1/Face.java Wed Jun 17 22:14:41 1998
-+++ raytrace/Face.java Mon Nov 30 22:21:47 1998
-@@ -12,7 +12,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
- //import Point;
-
- /**
-diff -u raytrace1/IntersectPt.java raytrace/IntersectPt.java
---- raytrace1/IntersectPt.java Wed Jun 17 22:14:42 1998
-+++ raytrace/IntersectPt.java Mon Nov 30 22:21:47 1998
-@@ -14,7 +14,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
- //import CacheIntersectPt;
- //import ObjectType;
- //import ObjNode;
-diff -u raytrace1/Light.java raytrace/Light.java
---- raytrace1/Light.java Wed Jun 17 22:14:43 1998
-+++ raytrace/Light.java Mon Nov 30 22:21:47 1998
-@@ -11,7 +11,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
- //import Color;
- //import Point;
-
-diff -u raytrace1/LightNode.java raytrace/LightNode.java
---- raytrace1/LightNode.java Wed Jun 17 22:14:44 1998
-+++ raytrace/LightNode.java Mon Nov 30 22:21:47 1998
-@@ -11,7 +11,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
- //import Light;
- //import LinkNode;
-
-diff -u raytrace1/LinkNode.java raytrace/LinkNode.java
---- raytrace1/LinkNode.java Wed Jun 17 22:14:45 1998
-+++ raytrace/LinkNode.java Mon Nov 30 22:21:47 1998
-@@ -11,7 +11,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
- /**
- * class LinkNode
- */
-diff -u raytrace1/Main.java raytrace/Main.java
---- raytrace1/Main.java Wed Jun 17 22:14:45 1998
-+++ raytrace/Main.java Mon Nov 30 22:41:06 1998
-@@ -8,18 +8,19 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
--import spec.harness.*;
-+//package spec.benchmarks._205_raytrace;
-
-
--public class Main implements SpecBenchmark {
-+public class Main {
-
-
- static long runBenchmark( String[] args ) {
-
-+ int speed = 100;
-+
- if( args.length == 0 ) {
- args = new String[3];
-- args[0] = "" + (200*spec.harness.Context.getSpeed())/100;
-+ args[0] = "" + (200 * speed)/100;
- args[1] = "200";
- args[2] = "input/time-test.model";
- }
-diff -u raytrace1/Material.java raytrace/Material.java
---- raytrace1/Material.java Wed Jun 17 22:14:46 1998
-+++ raytrace/Material.java Mon Nov 30 22:21:47 1998
-@@ -12,7 +12,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
- //import Color;
-
- /**
-diff -u raytrace1/MaterialNode.java raytrace/MaterialNode.java
---- raytrace1/MaterialNode.java Wed Jun 17 22:14:47 1998
-+++ raytrace/MaterialNode.java Mon Nov 30 22:21:47 1998
-@@ -11,7 +11,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
- //import LinkNode;
- //import Material;
-
-diff -u raytrace1/ObjNode.java raytrace/ObjNode.java
---- raytrace1/ObjNode.java Wed Jun 17 22:14:49 1998
-+++ raytrace/ObjNode.java Mon Nov 30 22:21:47 1998
-@@ -11,7 +11,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
- //import LinkNode;
- //import ObjectType;
-
-diff -u raytrace1/ObjectType.java raytrace/ObjectType.java
---- raytrace1/ObjectType.java Wed Jun 17 22:14:48 1998
-+++ raytrace/ObjectType.java Mon Nov 30 22:21:47 1998
-@@ -12,7 +12,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
- //import CacheIntersectPt;
- //import IntersectPt;
- //import Material;
-diff -u raytrace1/OctNode.java raytrace/OctNode.java
---- raytrace1/OctNode.java Wed Jun 17 22:14:50 1998
-+++ raytrace/OctNode.java Mon Nov 30 22:21:47 1998
-@@ -14,7 +14,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
- //import Face;
- //import ObjNode;
- //import ObjectType;
-diff -u raytrace1/Point.java raytrace/Point.java
---- raytrace1/Point.java Wed Jun 17 22:14:51 1998
-+++ raytrace/Point.java Mon Nov 30 22:21:47 1998
-@@ -12,7 +12,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
- //import Vector;
-
- /**
-diff -u raytrace1/PolyTypeObj.java raytrace/PolyTypeObj.java
---- raytrace1/PolyTypeObj.java Wed Jun 17 22:14:53 1998
-+++ raytrace/PolyTypeObj.java Mon Nov 30 22:21:48 1998
-@@ -12,7 +12,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
-
- //import IntersectPt;
- //import Material;
-diff -u raytrace1/PolygonObj.java raytrace/PolygonObj.java
---- raytrace1/PolygonObj.java Wed Jun 17 22:14:52 1998
-+++ raytrace/PolygonObj.java Mon Nov 30 22:21:48 1998
-@@ -12,7 +12,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
- //import IntersectPt;
- //import Material;
- //import Point;
-diff -u raytrace1/Ray.java raytrace/Ray.java
---- raytrace1/Ray.java Wed Jun 17 22:14:54 1998
-+++ raytrace/Ray.java Mon Nov 30 22:21:48 1998
-@@ -11,7 +11,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
- //import Point;
- //import Vector;
-
-diff -u raytrace1/RayTracer.java raytrace/RayTracer.java
---- raytrace1/RayTracer.java Wed Jun 17 22:14:55 1998
-+++ raytrace/RayTracer.java Tue Nov 26 09:00:21 2002
-@@ -17,9 +17,8 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
-
--import spec.harness.*;
-
- /**
- * class RayTracer
-@@ -99,9 +98,7 @@
-
- }
-
-- if (Context.getVerify()) {
-- canvas.WriteDiag();
-- }
-+ canvas.WriteDiag();
-
- }
-
-diff -u raytrace1/Scene.java raytrace/Scene.java
---- raytrace1/Scene.java Wed Jun 17 22:14:56 1998
-+++ raytrace/Scene.java Mon Nov 30 22:29:58 1998
-@@ -14,7 +14,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
-
- import java.io.*;
-
-@@ -84,7 +84,7 @@
- int numObj = 0, ObjID = 0;
-
- try {
-- infile = new DataInputStream(new BufferedInputStream( new spec.io.FileInputStream(filename) ));
-+ infile = new DataInputStream(new BufferedInputStream( new java.io.FileInputStream(filename) ));
-
- camera = null;
- lights = null;
-@@ -628,7 +628,7 @@
- int xstart = section * width/nsections;
- int xend = xstart + width/nsections;
-
--spec.harness.Context.out.println( "+"+xstart + " to " + (xend-1) + " by " + canvas.GetHeight() );
-+System.out.println( "+"+xstart + " to " + (xend-1) + " by " + canvas.GetHeight() );
-
- for (ypixel = 0 ; ypixel < canvas.GetHeight(); ypixel++) {
- current = new Point(base);
-@@ -645,7 +645,7 @@
- }
- base.Add(vertIncr);
- }
--spec.harness.Context.out.println( "-"+xstart + " to " + (xend-1) + " by " + canvas.GetHeight() );
-+System.out.println( "-"+xstart + " to " + (xend-1) + " by " + canvas.GetHeight() );
- // }
-
- }
-diff -u raytrace1/SphereObj.java raytrace/SphereObj.java
---- raytrace1/SphereObj.java Wed Jun 17 22:14:57 1998
-+++ raytrace/SphereObj.java Mon Nov 30 22:21:48 1998
-@@ -12,7 +12,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
- //import IntersectPt;
- //import Material;
- //import ObjectType;
-diff -u raytrace1/TriangleObj.java raytrace/TriangleObj.java
---- raytrace1/TriangleObj.java Wed Jun 17 22:14:58 1998
-+++ raytrace/TriangleObj.java Mon Nov 30 22:21:48 1998
-@@ -12,7 +12,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
-
- //import IntersectPt;
- //import Material;
-diff -u raytrace1/Vector.java raytrace/Vector.java
---- raytrace1/Vector.java Wed Jun 17 22:14:59 1998
-+++ raytrace/Vector.java Mon Nov 30 22:21:48 1998
-@@ -11,7 +11,7 @@
- * This source code is provided as is, without any express or implied warranty.
- */
-
--package spec.benchmarks._205_raytrace;
-+//package spec.benchmarks._205_raytrace;
- //import Point;
-
- /**
+++ /dev/null
-+0 to 199 by 200
--0 to 199 by 200
-14802890
-14803146
-14868682
-14868682
-14868682
-14868682
-14868682
-14868682
-14868683
-14868939
-14934475
-14934475
-14934475
-14934475
-14934475
-14934476
-14934732
-15000268
-15000268
-15000268
-15000268
-15000268
-15000269
-15000525
-15066061
-15066061
-15066061
-15066061
-15066062
-15066318
-15131854
-15131854
-15131854
-15131854
-15131854
-15131855
-15132111
-15197647
-15197647
-15197647
-15197647
-15197647
-15197647
-15197648
-15197904
-15197904
-15263440
-15263440
-15263440
-15263440
-15263440
-15263440
-15263440
-15263440
-15263440
-15263440
-15263440
-15263440
-15263440
-15197904
-15197648
-15197648
-15197647
-15197647
-15197647
-15132111
-15131854
-15131854
-15131854
-15066062
-15066061
-15066061
-15000269
-15000268
-15000268
-14934475
-14934475
-14868682
-14868682
-14802889
-12631720
-12631720
-12566184
-12565927
-14605511
-14605510
-14539717
-14474181
-14473924
-14408131
-14342339
-14342338
-14276545
-14210752
-14144959
-14079167
-14079166
-14013373
-13947580
-13881787
-13815994
-13750201
-13684408
-13618615
-13552822
-13487029
-13421236
-13355443
-13289650
-13223857
-13158064
-13092271
-13689822
-13821666
-13821409
-13821410
-14414835
-14415092
-14480628
-16326701
-16129063
-17250122
-17315659
-18041185
-17777498