--- Log opened Tue Jul 14 00:00:56 2009 01:04 -!- tgrabiec [n=tomekg@akt29.neoplus.adsl.tpnet.pl] has quit [Remote closed the connection] 03:14 < Eduard_Munteanu> Yay, fixed arguments, will cleanup and submit soon :) 05:41 -!- Eduard_Munteanu [n=edi@79.115.194.125] has quit [Read error: 110 (Connection timed out)] 07:20 -!- penberg_home [n=penberg@cs149038.pp.htv.fi] has quit [] 08:25 -!- tgrabiec [n=tomekg@akt29.neoplus.adsl.tpnet.pl] has joined #jato 09:04 -!- penberg [n=penberg@xdsl-83-150-86-196.nebulazone.fi] has joined #jato 09:04 -!- mode/#jato [+o penberg] by ChanServ 09:17 <@penberg> tgrabiec: ping 09:17 <@penberg> tgrabiec: I renamed the Jasmin test to "SubroutineTest.j" 09:17 <@penberg> I hope you're okay with that 09:17 <@penberg> because I'm pushing it now ;) 09:23 < vegard> hi ho :) 09:23 <@penberg> vegard: hi! 09:23 <@penberg> what's up? 09:23 <@penberg> vegard: there's a nice bug report from tomek waiting for you 09:23 < vegard> I'm ready to hack >:) 09:23 < vegard> oh, where? 09:23 <@penberg> vegard: email! 09:24 <@penberg> vegard: "[JATO] invokeinterface bug report" 09:24 < vegard> aha 09:24 < vegard> sorry, diddn't get that far yet :) 09:25 <@penberg> :) 09:32 < vegard> this is the miranda methods bug :) 09:33 < vegard> // In early VM's there was a bug -- the VM didn't walk the interfaces 09:33 < vegard> // of a class looking for a method, they only walked the superclass 09:33 < vegard> // chain. This meant that abstract methods defined only in interfaces 09:33 < vegard> // were not being found. 09:33 <@penberg> haha ;) 09:34 <@penberg> vegard: so we have the same bug early jvms did? 09:34 < vegard> yep 09:34 <@penberg> oh, the irony! ;) 09:36 <@penberg> vegard: should be straight-forward to fix? 09:37 < vegard> do we search superclass or superinterfaces first? :) 09:39 <@penberg> superclass? 09:39 < vegard> ah, it doesn't really matter 09:39 < vegard> or rather 09:39 < vegard> yes. 09:40 <@penberg> I am reading invokeinterface specification 09:40 <@penberg> and my head is spinning. 09:40 < vegard> hehe 09:40 <@penberg> If C contains a declaration for an instance method with the same name and descriptor as the resolved method, then this is the method to be invoked, and the lookup procedure terminates. 09:41 <@penberg> Otherwise, if C has a superclass, this same lookup procedure is performed recursively using the direct superclass of C; the method to be invoked is the result of the recursive invocation of this lookup procedure. 09:41 <@penberg> so in tomek's case 09:41 <@penberg> first B then A 09:42 <@penberg> hmmh 09:42 <@penberg> vegard: I'm not sure I understand your problem 09:42 < vegard> yeah, I didn't either ;) 09:43 <@penberg> ;) 09:47 < vegard> hm 09:48 < vegard> interface B has Object as superclass 09:48 < vegard> so while the .java file says "interface B extends A", it gets compiled to "interface B implements A" 09:48 < vegard> so we _do_ need to search implemented interfaces as well 10:07 < vegard> hm. checked proposed changes 10:07 < vegard> still says explicitly "direct superclass" 10:11 < vegard> hm. javap says A is the superclass. 10:14 < vegard> it definitely has Object as superclass 10:16 < vegard> "For an interface, the value of the super_class item must always be a valid index into the constant_pool table. The constant_pool entry at that index must be a CONSTANT_Class_info structure representing the class Object." 10:21 < vegard> ok, think I've got it. 10:23 < vegard> ah, you and your -Warnings 10:25 < vegard> http://pastebin.com/m2c7ad145 10:25 < vegard> any ideas? 10:27 < vegard> (that's jasmin that won't compile a test case, btw) 10:34 <@penberg> vegard: I am using jasmin-sable 10:35 < vegard> me too. 10:35 <@penberg> vegard: [PATCH] vm: fix interface method resolution error 10:35 <@penberg> can I have a regression test for that too? 10:35 < vegard> sure 10:35 <@penberg> penberg@penberg-laptop:~/src/jato$ jasmin -version 10:35 <@penberg> Jasmin version: 2.2.5 10:35 < vegard> Jasmin version: 2.3.0 10:36 <@penberg> hmmh 10:36 <@penberg> tgrabiec: ping pong 10:36 <@penberg> vegard: maybe the format changed? 10:45 < vegard> no, I don't think that's it 10:55 < vegard> I think something is wrong with cup 10:56 <@penberg> did you compile it yourself? 10:57 < vegard> no 10:57 < vegard> sudo apt-get install jasmin-sable 10:57 <@penberg> curious 10:57 <@penberg> ubuntu? 10:57 < vegard> yeah 10:58 < vegard> jaunty I think 10:58 <@penberg> I thought you were a fedora guy! 10:58 <@penberg> I am on intrepid 10:59 < vegard> ah, this my x86_32 ubuntu "server" 11:00 < vegard> ah I'll just try to compile it myself 11:04 < vegard> this isn't working. 11:04 < vegard> ah, they give a jar too.. *tries* 11:06 < vegard> ok, that worked. 11:06 < vegard> hopefully I'll only have to do this whenever a .j file changes 11:09 -!- ahuillet_ [n=user@171.34.83-79.rev.gaoland.net] has joined #jato 11:37 < vegard> hm. the jar manifest file is a bit inconsistent. 11:37 < vegard> *specification 11:38 <@penberg> yeah? 11:38 < vegard> it doesn't specify what the relationship between an attribute and a header is 11:38 < vegard> though in fact I am pretty sure they are exactly the same 11:39 < vegard> and then they special-case the grammar for certain attributes/headers 11:42 < tgrabiec> penberg: pong 11:43 -!- ahuillet_ [n=user@171.34.83-79.rev.gaoland.net] has quit ["Leaving"] 11:43 -!- ahuillet_ [n=user@79.83.34.171] has joined #jato 11:44 < tgrabiec> I'm okay with SubroutineTest, actually I was just about to change the name myself 11:48 < tgrabiec> vegard: I'm on gentoo and I installed jasmin from sources and I don't have 'jasmin' command out of the box. I created ~/bin/jasmin script that executes 'java -jar ~/src/jasmin/jasmin.jar $@' 11:49 <@penberg> tgrabiec: great! 11:49 < vegard> ah maybe I'll just do the same 11:49 * ahuillet_ is out of google money, waiting for the next batch :) 11:55 -!- penberg [n=penberg@xdsl-83-150-86-196.nebulazone.fi] has quit ["Lost terminal"] 12:05 -!- penberg [n=penberg@xdsl-83-150-86-196.nebulazone.fi] has joined #jato 12:05 < penberg> hmhm 12:24 -!- ahuillet_ [n=user@79.83.34.171] has quit [Remote closed the connection] 13:24 < penberg> tgrabiec: nice! 13:25 < tgrabiec> penberg: what is nice ? 13:25 < penberg> tgrabiec: patch series ;) 13:25 < penberg> wide insns 13:25 < penberg> nice to see them getting some attention 13:26 < penberg> tgrabiec: did you see vegard fixed the invokeinterface bug you reported? 13:26 < tgrabiec> penberg: yes, I haven't tested it yet though 13:26 < penberg> JASMIN regression/jvm/SubroutineTest.class 13:26 < penberg> SubroutineTest.j:31: Warning - Syntax error. 13:26 < penberg> ^ 13:26 < penberg> regression/jvm/SubroutineTest.j: Found 1 errors 13:26 < penberg> hmmh? 13:26 < tgrabiec> what's in that line ? 13:27 < penberg> ret_w 1 13:27 < tgrabiec> what jasmin version do you have ? 13:27 < penberg> ok, I'm dropping that patch 13:29 < tgrabiec> ret_w is since 2.3 13:30 < penberg> aaah 13:31 < penberg> any way to do that in the one I have? 13:31 < penberg> penberg@penberg-laptop:~/src/tierce$ jasmin -version 13:31 < penberg> Jasmin version: 2.2.5 13:31 < vegard> you have to do the same as us :) 13:32 < tgrabiec> penberg: apparently wide ret doesn't work in earlier versions 13:33 < penberg> hmm 13:33 < penberg> well, I guess I need to upgrade then? 13:34 < penberg> although I'd prefer not to do that manually 13:34 < penberg> hmm mmhmmm hmmm 13:35 < tgrabiec> penberg: I looks that 2.3 introduces _w postfix for some instruction, so we will need that version to write wide insn tests 13:36 < tgrabiec> installing jasmin from sources is just downloading them and moving in the right place 13:37 < tgrabiec> and making the 'jasmin' script 13:38 < penberg> hmmhm 13:38 < penberg> can we have a "make jasmin" thing that downloads the sources and sets everything up? 13:39 < penberg> side note: doesn't jasmin allow us to hardcode the bytecode in hex? 13:39 < vegard> pekka... ;-) 13:39 < tgrabiec> does it? 13:40 < penberg> I don't see anything in the manual :( 13:40 < tgrabiec> yeah, me either 13:41 < penberg> + astore 1 13:41 < penberg> + ret 1 13:41 < penberg> now we have jsr_w at least 13:41 < penberg> so I'm crippling the test a bit to avoid installing new jasmin 13:41 < penberg> sorry 13:42 < tgrabiec> penberg: :) 13:42 < penberg> tgrabiec: we need to figure out how we're going to distribute jasmin with jato 13:42 < penberg> if we want to bump up to 2.3 13:42 < penberg> OTOH, we can probably just switch over after a year or so 13:42 < penberg> when it's reasonable to expect people to be running ubuntu 9.04 13:42 < penberg> or later 13:43 < vegard> why not just require 2.3 ? we _do_ require it, apparently. 13:43 < penberg> because that doesn't fix the "make works out of the box" problem! 13:44 < penberg> I don't want to set up anything manually because that means _everybody_ needs to do that 13:44 < penberg> and on practical level, I'm not upgrading to 9.04 right now for various good reasons. 13:44 < vegard> well, make never worked out of the box without the right libraries 13:44 < penberg> yes it id 13:44 < penberg> $ sudo apt-get install ecj classpath libffi-dev binutils-dev libzip-dev jasmin-sable 13:44 < penberg> I don't know why you want to argue on this 13:45 < penberg> just saying we require something fixes _nothing_ 13:45 < vegard> well, my 2.3 version from ubuntu doesn't even work 13:45 < vegard> so I need the custom script anyway 13:45 < penberg> well, that's bad, isn't it? 13:45 < penberg> so we need to fix it somehow 13:46 < penberg> make jasmin, probably? 13:46 < penberg> wget 13:46 < penberg> install to $HOME/bin 13:46 < penberg> tgrabiec, vegard: right? 13:47 < tgrabiec> penberg: make jasmin could be nice, but we also have to ensure that ~/bin is in $PATH 13:47 < vegard> not install to $HOME/bin 13:47 < penberg> vegard: where then? 13:47 < vegard> I have all my local programs and libs in $HOME/local/ 13:47 < penberg> $JATO/tools/jasmin ? 13:47 < vegard> so it shouldn't be hard coded at the very least 13:47 < penberg> ok ok, agreed. 13:47 < penberg> lets install it in tools/jasmin then 13:47 < vegard> why not just download the jar and use that? 13:48 < penberg> vegard: put that in jato? 13:48 < vegard> i.e. so java -jar jasmin-2.3/jasmin.jar 13:48 < penberg> yes, download jasmin.jar to tools/jasmin/ 13:56 < vegard> so for -jar handling, you think it's enough to prepend the jar file to the classpath after figuring out which one is the main class? 13:58 < penberg> vegard: yup 13:58 < penberg> not sure if MANIFEST can refer to other jars too 13:58 < penberg> dunno 15:00 -!- penberg [n=penberg@xdsl-83-150-86-196.nebulazone.fi] has quit ["Lost terminal"] 15:03 -!- penberg [n=penberg@xdsl-83-150-86-196.nebulazone.fi] has joined #jato 15:04 < vegard> heh 15:04 < vegard> wondering if I should make this jar/manifest stuff into its own library 15:04 < vegard> it's completely separate from anything jato-specific 15:08 < penberg> cafebabe? 15:12 < vegard> doesn't really have anything to do with the class file either 15:14 < vegard> ./jato -jar frozenBubble.jar -cp /usr/share/classpath/glibj.zip 15:14 < vegard> __convert_ldc: warning: unknown tag: 7 15:14 < penberg> well, I am not sure what's the benefit of adding even more libs? 15:14 < penberg> yay! 15:18 < vegard> ouch, that's just above 700 lines for the jar/manifest support 15:18 < vegard> I 15:18 < vegard> 'll send the patch, sounds ok? 15:19 -!- tgrabiec [n=tomekg@akt29.neoplus.adsl.tpnet.pl] has quit [Read error: 110 (Connection timed out)] 15:21 < penberg> vegard: yes pls 15:21 < penberg> what the hell happened to github 15:22 < penberg> vegard: is github broken for you too? 15:23 < vegard> don't know 15:26 < vegard> yeah, it doesn't connect 15:26 < vegard> was like this yesterday too iirc 15:26 < vegard> (at some point, I mean, and then it obviously was better in the meantime) 15:26 < penberg> :( 15:26 < vegard> but I sent the patch, going home now 15:27 < vegard> see you tomorrow :) 15:27 < penberg> see ya 17:46 -!- ahuillet_ [n=user@AToulouse-158-1-87-122.w90-11.abo.wanadoo.fr] has joined #jato 18:04 -!- user__ [n=user@AToulouse-158-1-87-122.w90-11.abo.wanadoo.fr] has joined #jato 18:06 -!- ahuillet_ [n=user@AToulouse-158-1-87-122.w90-11.abo.wanadoo.fr] has quit [Read error: 60 (Operation timed out)] 18:20 -!- user__ is now known as ahuillet 18:30 -!- tgrabiec [n=tomekg@bdk197.neoplus.adsl.tpnet.pl] has joined #jato 18:31 < tgrabiec> penberg: so the solution for jasmin 2.3 to work is adding jasmin.jar to tools/jasmin ? 18:32 < tgrabiec> I have 'wide' support ready but my jasmin tests require 2.3 for istore_w etc. 18:37 -!- Eduard_Munteanu [n=edi@79.115.194.125] has joined #jato 18:37 < Eduard_Munteanu> Hi. 18:41 -!- tgrabiec [n=tomekg@bdk197.neoplus.adsl.tpnet.pl] has quit [Remote closed the connection] 18:54 < Eduard_Munteanu> penberg, I got reg parameters working, just a few issues to sort out and clean the patches. 18:54 < Eduard_Munteanu> However, the LIR shows no passing of *this. Is this normal behavior? 18:55 < Eduard_Munteanu> I figure we determine *this automatically, right? 18:56 < Eduard_Munteanu> (I'm asking this because the JVM specs tell about local_index 0 being assigned to *this.) 19:13 < ahuillet> Eduard_Munteanu : the LIR should show it I think 19:16 < Eduard_Munteanu> ahuillet, it seems we don't pass *this at all. Perhaps we can obtain it otherwise? 19:16 -!- ahuillet_ [n=ahuillet@AToulouse-158-1-87-122.w90-11.abo.wanadoo.fr] has joined #jato 19:16 < Eduard_Munteanu> ahuillet_, it seems we don't pass *this at all. Perhaps we can obtain it otherwise? 19:16 < ahuillet> well I'm no expert here 19:17 < Eduard_Munteanu> ahuillet, okay, will leave it at that for now. Will fix later if it's a problem indeed. 20:19 -!- tgrabiec [n=tomekg@bdk197.neoplus.adsl.tpnet.pl] has joined #jato 20:21 < tgrabiec> Eduard_Munteanu, can you show me the trace on which you think we don't pass 'this' pointer ? 20:30 < Eduard_Munteanu> tgrabiec, http://pastebin.com/d7e20389f 20:30 < Eduard_Munteanu> tgrabiec, but ignore the disassembly and the fact we don't read stack results correctly. 20:30 < Eduard_Munteanu> s/results/params/ 20:31 < tgrabiec> and can you show the java source for ParameterPassingTest ? 20:32 < Eduard_Munteanu> tgrabiec, here it is: http://pastebin.com/d6d662791 20:33 < Eduard_Munteanu> Even if add() is static, there should be an instance of the class, therefore a *this, right? 20:33 < tgrabiec> ok, so ParameterPassingTest.add method is static, so we don't pass 'this' pointer to it 20:34 < tgrabiec> no, there is no this pointer nor a class object pointer for static methods 20:34 < tgrabiec> there is one for JNI methods 20:34 < tgrabiec> (static JNI methods) 20:34 < Eduard_Munteanu> tgrabiec, oh, I see, thanks. 20:39 < Eduard_Munteanu> tgrabiec, I'm kinda || with java. 20:40 < ahuillet> || == ? 20:40 < Eduard_Munteanu> ahuillet, paralell, having nothing in common : 20:40 < Eduard_Munteanu> :) 20:40 < ahuillet> oh, you too ;) 20:40 < tgrabiec> :) 20:40 < Eduard_Munteanu> ahuillet, yup :) 20:51 < Eduard_Munteanu> Hm, it was not as I expected, correct arg passing will need a bit more work. 20:53 < Eduard_Munteanu> That is, it still doesn't work right when mixing stack and reg params. 20:54 < Eduard_Munteanu> ahuillet, it is painful, like you said. 21:05 -!- ahuillet [n=user@AToulouse-158-1-87-122.w90-11.abo.wanadoo.fr] has quit ["Leaving"] 21:05 -!- ahuillet_ is now known as ahuillet 21:09 < ahuillet> ok, now I remember the passw 21:09 < ahuillet> *pass 21:09 < ahuillet> *password for my bouncer 21:17 -!- tgrabiec [n=tomekg@bdk197.neoplus.adsl.tpnet.pl] has quit [Remote closed the connection] 22:44 -!- penberg_home [n=penberg@cs149038.pp.htv.fi] has joined #jato 23:11 -!- penberg_home [n=penberg@cs149038.pp.htv.fi] has quit [] --- Log closed Wed Jul 15 00:00:56 2009