harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andreas Sewe (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-6535) Compiling the Scala library against the Harmony JRE doesn't work
Date Wed, 22 Sep 2010 09:45:33 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-6535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12913478#action_12913478
] 

Andreas Sewe commented on HARMONY-6535:
---------------------------------------

While the Map.Entry itself is the same in both the Linux and Windows JREs, digging a little
bit further revealed an oddity in both WeakHashMap and IdentityHashMap: The Linux WeakHashMap
classfile contains a InnerClass entry not present in its Windows counterpart. The following
is straight from javap -verbose:

    InnerClass: 
+    public abstract #178= #176 of #5; //Entry=class java/util/Map$Entry of class java/util/Map
     #94; //class java/util/WeakHashMap$1
     #104; //class java/util/WeakHashMap$2
     #114; //class java/util/WeakHashMap$3
!    final #178= #26 of #1; //Entry=class java/util/WeakHashMap$Entry of class java/util/WeakHashMap
!    #181= #179 of #1; //HashIterator=class java/util/WeakHashMap$HashIterator of class java/util/WeakHashMap

In a similar vein, IdentityHashMap is missing an InnterClass entry in the Windows version:

    InnerClass: 
     #139; //class java/util/IdentityHashMap$1
     #149; //class java/util/IdentityHashMap$2
     #237= #99 of #1; //IdentityHashMapEntry=class java/util/IdentityHashMap$IdentityHashMapEntry
of class java/util/IdentityHashMap
     #238= #129 of #1; //IdentityHashMapEntrySet=class java/util/IdentityHashMap$IdentityHashMapEntrySet
of class java/util/IdentityHashMap
     #241= #239 of #1; //IdentityHashMapIterator=class java/util/IdentityHashMap$IdentityHashMapIterator
of class java/util/IdentityHashMap
+    public abstract #244= #242 of #5; //Entry=class java/util/Map$Entry of class java/util/Map

I think the missing entry might be what's leading the Scala compiler astray.

> Compiling the Scala library against the Harmony JRE doesn't work
> ----------------------------------------------------------------
>
>                 Key: HARMONY-6535
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6535
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>    Affects Versions: 6.0M1
>         Environment: Linux 2.6.31-21-generic #59-Ubuntu SMP Wed Mar 24 07:28:56 UTC 2010
i686 GNU/Linux
>            Reporter: Andreas Sewe
>            Assignee: Mark Hindess
>
> Please note: I am unsure whether this is a bug within the Scala compiler or less than
perfect Java SE 6 compatibility on Harmony's part.
> To reproduce the bug/incompatibility compile WeakHashMap.scala from the Scala library
(version 2.8.0.RC3) against the Apache Harmony 6.0M1 JRE, with CLASSPATH set to the .jars
in the Harmony distribution:
> > ./bin/scalac -version
> Scala compiler version 2.8.0.RC3 -- Copyright 2002-2010, LAMP/EPFL
> > ./bin/scalac -javabootclasspath $CLASSPATH ../scala/src/library/scala/collection/mutable/WeakHashMap.scala

> error: error while loading WeakHashMap, Missing dependency 'class java.util.Map$Entry',
required by /usr/lib/harmony-6.0/jdk/jre/lib/boot/luni.jar(java/util/WeakHashMap.class)
> error: error while loading AbstractMap, Missing dependency 'class java.util.Map$Entry',
required by /usr/lib/harmony-6.0/jdk/jre/lib/boot/luni.jar(java/util/AbstractMap.class)
> error: error while loading Hashtable, Missing dependency 'class java.util.Map$Entry',
required by /usr/lib/harmony-6.0/jdk/jre/lib/boot/luni.jar(java/util/Hashtable.class)
> three errors found
> For some reason, scalac, the Scala compiler, is unable to track down the Entry class.
I suspect that there is some subtle difference between Harmony's classes and those of the
Sun JDK.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message