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] Reopened: (HARMONY-6535) Compiling the Scala library against the Harmony JRE doesn't work
Date Tue, 21 Sep 2010 17:37:34 GMT

     [ https://issues.apache.org/jira/browse/HARMONY-6535?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Andreas Sewe reopened HARMONY-6535:
-----------------------------------


I investigated some more and am now able to reproduce this bug (with the 6.0-M3 milestone)
and can pretty-much pinpoint the JAR that confuses the Scala compiler.

(Cross-)compiling Scala code against the Apache Harmony JRE works when using the Linux JARs
<http:/apache.mirror.digionline.de/harmony/milestones/6.0/M3/apache-harmony-6.0-jre-r991881-linux-x86-snapshot.tar.gz>,
but breaks when using the Windows ones <http:/apache.mirror.digionline.de/harmony/milestones/6.0/M3/apache-harmony-6.0-jre-r991881-windows-x86-snapshot.zip>.

The problem manifests itself as follows when using the Scala compiler <http:/www.scala-lang.org/downloads/distrib/files/scala-2.8.0.final.tgz>
to compile the Scalaz Core 5.0 library <http:/www.scala-tools.org/repo-releases/com/googlecode/scalaz/scalaz-core_2.8.0/5.0/scalaz-core_2.8.0-5.0-sources.jar>
against (a minimal subset of) the 6.0-M3 Harmony JRE:

$ export JRE=/home/sewe/harmony-6.0-jre-991881/lib/boot
$ export LIB=/home/sewe/scala-2.8.0.final/lib
$ export SRC=/home/sewe/scalaz-core_2.8.0-5.0
$ find $SRC -name '*.scala' | xargs scalac \ 
  -bootclasspath $LIB/scala-library.jar \
  -javabootclasspath $JRE/accessibility.jar:$JRE/awt.jar:$JRE/concurrent.jar:$JRE/luni.jar:$JRE/luni-kernel-stubs.jar:$JRE/math.jar:$JRE/nio.jar:$JRE/nio_char.jar:$JRE/regex.jar:$JRE/suncompat.jar:$JRE/swing.jar
\
  -javaextdirs : \
  -sourcepath $SRC \
  -verbose
[Classpath = /home/sewe/harmony-6.0-jre-991881/lib/boot/accessibility.jar:/home/sewe/windows/harmony-6.0-jre-991881/lib/boot/awt.jar:/home/sewe/harmony-6.0-jre-991881/lib/boot/concurrent.jar:/home/sewe/harmony-6.0-jre-991881/lib/boot/luni.jar:/home/sewe/harmony-6.0-jre-991881/lib/boot/luni-kernel-stubs.jar:/home/sewe/harmony-6.0-jre-991881/lib/boot/math.jar:/home/sewe/harmony-6.0-jre-991881/lib/boot/nio.jar:/home/sewe/harmony-6.0-jre-991881/lib/boot/nio_char.jar:/home/sewe/harmony-6.0-jre-991881/lib/boot/regex.jar:/home/sewe/harmony-6.0-jre-991881/lib/boot/suncompat.jar:/home/sewe/harmony-6.0-jre-991881/lib/boot/swing.jar:/home/sewe/scala-2.8.0.final/lib/scala-library.jar:.:/home/sewe/scalaz-core_2.8.0-5.0]
[loaded package loader accessibility.jar in 1973ms]
[loaded package loader java in 2ms]
[loaded package loader lang in 178ms]
...
[loaded class file ./windows/harmony-6.0-jre-991881/lib/boot/luni.jar(java/util/Map$Entry.class)
in 3ms]
...
error: error while loading WeakHashMap, Missing dependency 'class java.util.Map$Entry', required
by /home/sewe/harmony-6.0-jre-991881/lib/boot/luni.jar(java/util/WeakHashMap.class)
...
error: error while loading IdentityHashMap, Missing dependency 'class java.util.Map$Entry',
required by /home/sewe/harmony-6.0-jre-991881/lib/boot/luni.jar(java/util/IdentityHashMap.class)
...

Although the Scala compiler has the (Windows!) luni.jar (md5sum ba4ddcd4add0ef2364047335f2a2ac7a)
on its classpath and evidently finds the Map$Entry classfile contained therein, it doesn't
look for it when Map.Entry is later referenced. In contrast, using the the Linux luni.jar
(md5sum 61514aacea499ea41f0d2933186defa4) the problem does not show up.

Granted, the above might not be a minimal test-case to reproduce the bug (in particular as
scalac latter on stumbles upon the missing javax.swing.SwingWorker class, that is not yet
part of Harmony), but it was the simplest case I could come up with. Hopefully, you guys are
able to figure out in what way the two luni.jar's differ to trip the Scala compiler.

> 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