This page is no longer maintained — Please continue to the home page at www.scala-lang.org

My latest checkin broke build in mysterious way

2 replies
gkossakowski
Joined: 2010-03-11,
User offline. Last seen 33 weeks 5 days ago.
Hi,
First of all, sorry for breaking the build. I did test my change using 'ant all.clean && ant test' command. I'd never guess that my change is going to break optimized build as can be seen here:
https://scala-webapps.epfl.ch/jenkins/job/scala-checkin/4515/console#ant-target-27
Thanks to Paul for fixing it, by the way.
I tried to look into root cause because it felt strange that my change introduces some new dependences (on fjbg.jar in this case). After a bit of playing with javap -verbose I discovered that my change introduced transitive dependency from Global$$anon$2 to MSILPlatform. This is due to more complete (and correct) InnerClasses table.
Now if we check MSILPlatform we see:
grek-imac:backend grek$ javap -verbose MSILPlatform | cat -v | grep chconst #18 = Asciz Ljava/lang/Object;Lscala/tools/nsc/backend/Platform<Lch/epfl/lamp/compiler/msil/Type;>;Lscala/ScalaObject;;
and that explain the mystery. I'll leave it for others if it deserver any more attention.
PS. Compiler message for missing dependency is a bit unhelpful because it doesn't mention actual class that depends on something that is not in a classpath.
--
Grzegorz Kossakowski

extempore
Joined: 2008-12-17,
User offline. Last seen 35 weeks 3 days ago.
Re: My latest checkin broke build in mysterious way

On Sat, Sep 10, 2011 at 12:08 PM, Grzegorz Kossakowski
wrote:
> I tried to look into root cause because it felt strange that my change
> introduces some new dependences (on fjbg.jar in this case).

I know I said it was fjbg, but based on your javap examination, it's
actually msil.jar. Having been around this block before I have this
blob I put on all the classpaths (except, that is, the continuations
plugin.)

> PS. Compiler message for missing dependency is a bit unhelpful because it
> doesn't mention actual class that depends on something that is not in a
> classpath.

Kids today, so spoiled. For YEARS the only message you got in this
situation was "class file is broken?". AND WE LIKED IT. Certainly
there would have been no mention of Global$$anon$2 in those days.

gkossakowski
Joined: 2010-03-11,
User offline. Last seen 33 weeks 5 days ago.
Re: My latest checkin broke build in mysterious way
On 10 September 2011 21:40, Paul Phillips <paulp@improving.org> wrote:
On Sat, Sep 10, 2011 at 12:08 PM, Grzegorz Kossakowski
<grzegorz.kossakowski@gmail.com> wrote:
> I tried to look into root cause because it felt strange that my change
> introduces some new dependences (on fjbg.jar in this case).

I know I said it was fjbg, but based on your javap examination, it's
actually msil.jar.  Having been around this block before I have this
blob I put on all the classpaths (except, that is, the continuations
plugin.)

     <fileset dir="${lib.dir}">
       <include name="fjbg.jar"/>
       <include name="msil.jar"/>
       <include name="forkjoin.jar"/>
     </fileset>

Oh yes, it's msil.jar. Nonetheless, I won't be spending any more time on this. All I wanted was to make sure that my change is not breaking something in some tricky way. My investigation proved that everything is fine.  
> PS. Compiler message for missing dependency is a bit unhelpful because it
> doesn't mention actual class that depends on something that is not in a
> classpath.

Kids today, so spoiled.  For YEARS the only message you got in this
situation was "class file is broken?".  AND WE LIKED IT.  Certainly
there would have been no mention of Global$$anon$2 in those days.

I guess we call it progress, right? :-)

--
Grzegorz Kossakowski

Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland