classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Compiling with jikes > 1.13


From: Eric Blake
Subject: Re: Compiling with jikes > 1.13
Date: Sat, 09 Feb 2002 02:24:49 -0700

Mark Wielaard wrote:
> 
> The rest of the verify output follows, but I have not analysed it yet.
> 
> Cheers,
> 
> Mark
> 
>   ------------------------------------------------------------------------
>                           Name: verify-jikes.libgcj
>    verify-jikes.libgcj    Type: Plain Text (text/plain)
>                       Encoding: quoted-printable

It looks like all the errors listed in this file were "incompatible type
on stack", in other words, side effects of your ClassLoader hack.

> 
>                        Name: verify-jikes.gcj
>    verify-jikes.gcj    Type: Plain Text (text/plain)
>                    Encoding: quoted-printable

I have addressed all the errors listed in this file.  With the attached
patch and the latest CVS version of jikes (as of 9:15 am UTC Feb 9),
this should be completely resolved.  If you agree with me, then I will
tag the current version of jikes CVS as stable, and bump the version to
1.15b.  Shall I go ahead and commit the patch?

-- 
This signature intentionally left boring.

Eric Blake             address@hidden
  BYU student, free software programmer
2002-02-09  Eric Blake  <address@hidden>

        * java/net/DatagramSocketImpl.java (setOption, getOption): Work
        around gcj bug of wrong emitted qualifier for inherited method.
        * java/net/SocketImpl.java (setOption, getOption): Ditto.
        * java/util/WeakHashMap.java (WeakEntrySet): Work around jikes
        1.15 bug of private constructors in inner classes.
        * java/rmi/server/RMIClassLoader.java (MyClassLoader): Ditto.
        * gnu/java/rmi/server/UnicastRemoteCall.java
        (DummyObjectOutputStream, DummyObjectInputStream): Ditto.

Index: java/net/DatagramSocketImpl.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/net/DatagramSocketImpl.java,v
retrieving revision 1.11
diff -u -r1.11 DatagramSocketImpl.java
--- java/net/DatagramSocketImpl.java    22 Jan 2002 22:27:00 -0000      1.11
+++ java/net/DatagramSocketImpl.java    9 Feb 2002 09:17:31 -0000
@@ -1,5 +1,5 @@
 /* DatagramSocketImpl.java -- Abstract class for UDP socket implementations
-   Copyright (C) 1998, 1999 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -203,4 +203,34 @@
   {
     return localPort;
   }
+
+  /**
+   * Sets the specified option on a socket to the passed in object.  For
+   * options that take an integer argument, the passed in object is an
+   * <code>Integer</code>.  For options that are set to on or off, the
+   * value passed will be a <code>Boolean</code>.   The <code>option_id</code> 
+   * parameter is one of the defined constants in the superinterface.
+   *
+   * @param option_id The identifier of the option
+   * @param val The value to set the option to
+   *
+   * @exception SocketException If an error occurs
+   */
+  public abstract void setOption(int option_id, Object val)
+    throws SocketException;
+
+  /**
+   * Returns the current setting of the specified option.  The 
+   * <code>Object</code> returned will be an <code>Integer</code> for options 
+   * that have integer values.  For options that are set to on or off, a 
+   * <code>Boolean</code> will be returned.   The <code>option_id</code>
+   * is one of the defined constants in the superinterface.
+   *
+   * @param option_id The option identifier
+   *
+   * @return The current value of the option
+   *
+   * @exception SocketException If an error occurs
+   */
+  public abstract Object getOption(int option_id) throws SocketException;
 }
Index: java/net/SocketImpl.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/net/SocketImpl.java,v
retrieving revision 1.7
diff -u -r1.7 SocketImpl.java
--- java/net/SocketImpl.java    22 Jan 2002 22:27:00 -0000      1.7
+++ java/net/SocketImpl.java    9 Feb 2002 09:17:31 -0000
@@ -1,5 +1,5 @@
 /* SocketImpl.java -- Abstract socket implementation class
-   Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -234,4 +234,34 @@
     return "[addr=" + address.toString() + ",port=" + Integer.toString(port) +
       ",localport=" + Integer.toString(localport) + "]";
   }
+
+  /**
+   * Sets the specified option on a socket to the passed in object.  For
+   * options that take an integer argument, the passed in object is an
+   * <code>Integer</code>.  For options that are set to on or off, the
+   * value passed will be a <code>Boolean</code>.   The <code>option_id</code> 
+   * parameter is one of the defined constants in the superinterface.
+   *
+   * @param option_id The identifier of the option
+   * @param val The value to set the option to
+   *
+   * @exception SocketException If an error occurs
+   */
+  public abstract void setOption(int option_id, Object val)
+    throws SocketException;
+
+  /**
+   * Returns the current setting of the specified option.  The 
+   * <code>Object</code> returned will be an <code>Integer</code> for options 
+   * that have integer values.  For options that are set to on or off, a 
+   * <code>Boolean</code> will be returned.   The <code>option_id</code>
+   * is one of the defined constants in the superinterface.
+   *
+   * @param option_id The option identifier
+   *
+   * @return The current value of the option
+   *
+   * @exception SocketException If an error occurs
+   */
+  public abstract Object getOption(int option_id) throws SocketException;
 }
Index: java/util/WeakHashMap.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/util/WeakHashMap.java,v
retrieving revision 1.10
diff -u -r1.10 WeakHashMap.java
--- java/util/WeakHashMap.java  22 Jan 2002 22:27:01 -0000      1.10
+++ java/util/WeakHashMap.java  9 Feb 2002 09:17:31 -0000
@@ -1,6 +1,6 @@
 /* java.util.WeakHashMap -- a hashtable that keeps only weak references
    to its keys, allowing the virtual machine to reclaim them
-   Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -169,6 +169,13 @@
    */
   private final class WeakEntrySet extends AbstractSet
   {
+    /**
+     * Non-private constructor to reduce bytecode emitted.
+     */
+    WeakEntrySet()
+    {
+    }
+
     /**
      * Returns the size of this set.
      *
Index: java/rmi/server/RMIClassLoader.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/rmi/server/RMIClassLoader.java,v
retrieving revision 1.2
diff -u -r1.2 RMIClassLoader.java
--- java/rmi/server/RMIClassLoader.java 22 Jan 2002 22:27:00 -0000      1.2
+++ java/rmi/server/RMIClassLoader.java 9 Feb 2002 09:17:31 -0000
@@ -1,5 +1,5 @@
 /*
-  Copyright (c) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+  Copyright (c) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -46,12 +46,20 @@
 
 public class RMIClassLoader {
 
-static private class MyClassLoader extends ClassLoader {
-
-Class defineClass(String name, byte[] data) {
-       return (defineClass(name, data, 0, data.length));
-}
-}
+  static private class MyClassLoader extends ClassLoader
+  {
+    /**
+     * Non-private constructor to reduce bytecode emitted.
+     */
+    MyClassLoader()
+    {
+    }
+
+    Class defineClass(String name, byte[] data)
+    {
+      return (defineClass(name, data, 0, data.length));
+    }
+  }
 static private MyClassLoader loader = new MyClassLoader();
 
 /**
Index: gnu/java/rmi/server/UnicastRemoteCall.java
===================================================================
RCS file: 
/cvsroot/classpath/classpath/gnu/java/rmi/server/UnicastRemoteCall.java,v
retrieving revision 1.2
diff -u -r1.2 UnicastRemoteCall.java
--- gnu/java/rmi/server/UnicastRemoteCall.java  22 Jan 2002 22:26:57 -0000      
1.2
+++ gnu/java/rmi/server/UnicastRemoteCall.java  9 Feb 2002 09:17:31 -0000
@@ -1,5 +1,5 @@
 /*
-  Copyright (c) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+  Copyright (c) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -133,179 +133,232 @@
        vec.addElement(obj);
 }
 
-/**
- * Dummy object output class.
- */
-private class DummyObjectOutputStream implements ObjectOutput {
-
-public void writeBoolean(boolean v) throws IOException {
-       vec.addElement(new Boolean(v));
-}
-
-public void writeByte(int v) throws IOException {
-       vec.addElement(new Byte((byte)v));
-}
-
-public void writeChar(int v) throws IOException {
-       vec.addElement(new Character((char)v));
-}
-
-public void writeDouble(double v) throws IOException {
-       vec.addElement(new Double(v));
-}
-
-public void writeFloat(float v) throws IOException {
-       vec.addElement(new Float(v));
-}
-
-public void writeInt(int v) throws IOException {
-       vec.addElement(new Integer(v));
-}
-
-public void writeLong(long v) throws IOException {
-       vec.addElement(new Long(v));
-}
-
-public void writeShort(int v) throws IOException {
-       vec.addElement(new Short((short)v));
-}
-
-public void writeObject(Object obj) throws IOException {
-       vec.addElement(obj);
-}
-
-public void write(byte b[]) throws IOException {
-       throw new IOException("not required");
-}
-
-public void write(byte b[], int off, int len) throws IOException {
-       throw new IOException("not required");
-}
-
-public void write(int b) throws IOException {
-       throw new IOException("not required");
-}
-
-public void writeBytes(String s) throws IOException {
-       throw new IOException("not required");
-}
-
-public void writeChars(String s) throws IOException {
-       throw new IOException("not required");
-}
-
-public void writeUTF(String str) throws IOException {
-       throw new IOException("not required");
-}
-
-public void flush() throws IOException {
-}
-
-public void close() throws IOException {
-}
-
-}
-
-/**
- * Dummy object input class.
- */
-private class DummyObjectInputStream implements ObjectInput {
-
-public boolean readBoolean() throws IOException {
-       Object obj = vec.elementAt(ptr++);
-       return (((Boolean)obj).booleanValue());
-}
+  /**
+   * Dummy object output class.
+   */
+  private class DummyObjectOutputStream implements ObjectOutput
+  {
+    /**
+     * Non-private constructor to reduce bytecode emitted.
+     */
+    DummyObjectOutputStream()
+    {
+    }
+
+    public void writeBoolean(boolean v) throws IOException
+    {
+      vec.addElement(new Boolean(v));
+    }
+
+    public void writeByte(int v) throws IOException
+    {
+      vec.addElement(new Byte((byte)v));
+    }
+
+    public void writeChar(int v) throws IOException
+    {
+      vec.addElement(new Character((char)v));
+    }
+
+    public void writeDouble(double v) throws IOException
+    {
+      vec.addElement(new Double(v));
+    }
+
+    public void writeFloat(float v) throws IOException
+    {
+      vec.addElement(new Float(v));
+    }
+
+    public void writeInt(int v) throws IOException
+    {
+      vec.addElement(new Integer(v));
+    }
+
+    public void writeLong(long v) throws IOException
+    {
+      vec.addElement(new Long(v));
+    }
+
+    public void writeShort(int v) throws IOException
+    {
+      vec.addElement(new Short((short)v));
+    }
+
+    public void writeObject(Object obj) throws IOException
+    {
+      vec.addElement(obj);
+    }
+
+    public void write(byte b[]) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public void write(byte b[], int off, int len) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public void write(int b) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public void writeBytes(String s) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public void writeChars(String s) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public void writeUTF(String str) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public void flush() throws IOException
+    {
+    }
+
+    public void close() throws IOException
+    {
+    }
+
+  }
+
+  /**
+   * Dummy object input class.
+   */
+  private class DummyObjectInputStream implements ObjectInput
+  {
+    /**
+     * Non-private constructor to reduce bytecode emitted.
+     */
+    DummyObjectInputStream()
+    {
+    }
+
+    public boolean readBoolean() throws IOException
+    {
+      Object obj = vec.elementAt(ptr++);
+      return (((Boolean)obj).booleanValue());
+    }
+
+    public byte readByte() throws IOException
+    {
+      Object obj = vec.elementAt(ptr++);
+      return (((Byte)obj).byteValue());
+    }
+
+    public char readChar() throws IOException
+    {
+      Object obj = vec.elementAt(ptr++);
+      return (((Character)obj).charValue());
+    }
+
+    public double readDouble() throws IOException
+    {
+      Object obj = vec.elementAt(ptr++);
+      return (((Double)obj).doubleValue());
+    }
+
+    public float readFloat() throws IOException
+    {
+      Object obj = vec.elementAt(ptr++);
+      return (((Float)obj).floatValue());
+    }
+
+    public int readInt() throws IOException
+    {
+      Object obj = vec.elementAt(ptr++);
+      return (((Integer)obj).intValue());
+    }
+
+    public long readLong() throws IOException
+    {
+      Object obj = vec.elementAt(ptr++);
+      return (((Long)obj).longValue());
+    }
+
+    public short readShort() throws IOException
+    {
+      Object obj = vec.elementAt(ptr++);
+      return (((Short)obj).shortValue());
+    }
+
+    public Object readObject() throws IOException
+    {
+      return (vec.elementAt(ptr++));
+    }
+
+    public int read(byte b[]) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public int read(byte b[], int off, int len) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public int read() throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public long skip(long n) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public int available() throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public void readFully(byte b[]) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public void readFully(byte b[], int off, int len) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public String readLine() throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public String readUTF() throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public int readUnsignedByte() throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public int readUnsignedShort() throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public int skipBytes(int n) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public void close() throws IOException
+    {
+    }
 
-public byte readByte() throws IOException {
-       Object obj = vec.elementAt(ptr++);
-       return (((Byte)obj).byteValue());
-}
-
-public char readChar() throws IOException {
-       Object obj = vec.elementAt(ptr++);
-       return (((Character)obj).charValue());
-}
-
-public double readDouble() throws IOException {
-       Object obj = vec.elementAt(ptr++);
-       return (((Double)obj).doubleValue());
-}
-
-public float readFloat() throws IOException {
-       Object obj = vec.elementAt(ptr++);
-       return (((Float)obj).floatValue());
-}
-
-public int readInt() throws IOException {
-       Object obj = vec.elementAt(ptr++);
-       return (((Integer)obj).intValue());
-}
-
-public long readLong() throws IOException {
-       Object obj = vec.elementAt(ptr++);
-       return (((Long)obj).longValue());
-}
-
-public short readShort() throws IOException {
-       Object obj = vec.elementAt(ptr++);
-       return (((Short)obj).shortValue());
-}
-
-public Object readObject() throws IOException {
-       return (vec.elementAt(ptr++));
-}
-
-public int read(byte b[]) throws IOException {
-       throw new IOException("not required");
-}
-
-public int read(byte b[], int off, int len) throws IOException {
-       throw new IOException("not required");
-}
-
-public int read() throws IOException {
-       throw new IOException("not required");
-}
-
-public long skip(long n) throws IOException {
-       throw new IOException("not required");
-}
-
-public int available() throws IOException {
-       throw new IOException("not required");
-}
-
-public void readFully(byte b[]) throws IOException {
-       throw new IOException("not required");
-}
-
-public void readFully(byte b[], int off, int len) throws IOException {
-       throw new IOException("not required");
-}
-
-public String readLine() throws IOException {
-       throw new IOException("not required");
-}
-
-public String readUTF() throws IOException {
-       throw new IOException("not required");
-}
-
-public int readUnsignedByte() throws IOException {
-       throw new IOException("not required");
-}
-
-public int readUnsignedShort() throws IOException {
-       throw new IOException("not required");
-}
-
-public int skipBytes(int n) throws IOException {
-       throw new IOException("not required");
-}
-
-public void close() throws IOException {
-}
-
-}
+  }
 
 }

reply via email to

[Prev in Thread] Current Thread [Next in Thread]