Log of the #nice channel on irc.freenode.net

Using timezone: Central European Time
<bonniot>good night03:27
* bonniot leaves03:28
* arjanb leaves04:59
* bonniot joins11:18
* arjanb joins13:36
<bonniot>hello arjan13:44
<bonniot>i'm preparing the stack trace code13:46
<arjanb>During the time frame of this large resync, performance of developer CVS will be degraded. Due to the increased system load of the resync period, end of file (EOF) errors and SSH ssh_exchange_identification errors upon connect may be encountered;13:51
<bonniot>yep. it's working, though
<arjanb>a simple update cost 15 minutes13:52
<bonniot>do you know if Nice was mentioned on some website recently?13:53
visits had a peak:
<arjanb>not that i know13:58
<bonniot>did you look at the static method error message thing?14:02
<arjanb>yes is easy to fix14:04
so lets put xoltar in the rss feedreader
<arjanb>bryn hasn't noticed that the safety article is old as it seems16:48
<bonniot>that doesn't matter, does it?18:23
<Bluelive>coding style shouldnt change that much that often18:29
arjanb: your change to overloading of function symbols solved one of Isaac's problems on nice-info, right?20:02
<bonniot>then you should send a short message there saying it's implemented :-)20:17
<arjanb>right i forgot that20:46
<bonniot>i got an offer from somebody to work on the eclipse plugin20:54
it seems SF "job" offers are efficient :-)
i remember it did not work so well earlier20:55
but maybe it makes a difference if people see that the project is already rolling well, not just a one-man idea
<arjanb>could be and being a useable project helps too20:57
<arjanb>( 2004-01-23 10:06:09 - Project CVS Service ) Developer CVS access will be offline for 2004-01-23, continuing in to the weekend, to permit the resync of data to complete; 21:24
<bonniot>arg, no CVS at all?21:25
anonymous cvs works but that is still delayed21:28
* lodewijk joins21:37
<lodewijk>ah, you're there. I have an interesting error message :)21:42
Exception in thread "main" java.lang.VerifyError: (class: core/fun, method: dataToObject signature: (Lcore/DimensionValueDataBinding;Lcom/sleepycat/bdb/bind/tuple/TupleInput;)Ljava/lang/Object;) Illegal target of jump or branch
<bonniot>oops, look like a code generation bug...
can you reproduce this in a small example?
<lodewijk>yes. this is with the cvs version by the way.
<bonniot>and the source?21:43
<lodewijk>I'll try to. the current code is too large, I'll make it as small as possible.
<bonniot>ok, thanks
<lodewijk>oh wait a minute. this may be my own fault, I think I retyped that method.
<bonniot>it's a Nice method that's faulty21:44
<lodewijk>hmm, the retyping isn't very spectacular: Exception in thread "main" java.lang.VerifyError: (class: core/fun, method: dataToObject signature: (Lcore/DimensionValueDataBinding;Lcom/sleepycat/bdb/bind/tuple/TupleInput;)Ljava/lang/Object;) Illegal target of jump or branch21:45
damn, wrong paste uffer
the retyping is Object dataToObject(TupleBinding, TupleInput) = native Object TupleBinding.dataToObject(TupleInput);
so that isn't very complex. but I'll see what the smallest piece of code is that triggers it.
<bonniot>those are two different methods, no?
the faulty one has a DimensionValueDataBinding argument21:46
<lodewijk>yes, but DimensionValueDataBinding is a subclass of TupleBinding.
<bonniot>is TupleBinding a Java class?21:47
and DimensionValueDataBinding a Nice class?
<lodewijk>yes, from the berkeley db suite.
yes, I wrote DimensionValueDataBinding in nice, subclassing the java class.
but something's wrong
it seems you overloaded dataToObject instead of overriding it21:48
so the Java method should not matter
<lodewijk>hmm. the implementing code is in DimensionValueDataBinding is:
dataToObject(TupleInput input) {
assert false: "fout, geen dataToObject op DimensionValueDataBinding";
<bonniot>forget waht I said
<lodewijk>so it isn't even meant to be called.
<bonniot>yes, but the JVM might still verify it while loading the class21:49
<bonniot>hum, the body of the method is very simple
<lodewijk>by the way, did you receive my mail with patch for spelling stuff in web/* ?21:50
<bonniot>could you show the bytecode for that method?
yes, sorry, I got it, then got sidetrackted
i'll look at it
unfortunately, the attachment looks like garbage21:52
okay, the bytecode is:
Method java.lang.Object dataToObject(core.DimensionValueDataBinding, com.sleepycat.bdb.bind.tuple.TupleInput)
0 getstatic #49 <Field boolean $assertionsEnabled>
3 ifeq 21
6 iconst_0
7 ifne 21
10 new #51 <Class nice.lang.AssertionFailed>
13 dup
14 ldc_w #342 <String "fout, geen dataToObject op DimensionValueDataBinding">
17 invokespecial #56 <Method nice.lang.AssertionFailed(java.lang.String)>21:53
20 athrow
and yes, that's it, there's no 21
<arjanb>we need to use always_assert in case of assert false21:54
<bonniot>as a side issue, why did you write a retyping?
<lodewijk>because another class does use it sensibly.
<bonniot>but you don't need to retype every method, only if you want to give it a more powerful type
<lodewijk>it's just this particular class for which invoking that method makes no sense.21:55
<bonniot>in this case, your retyping makes one difference: it asserts the second argument cannot be null
<lodewijk>I know, but it complained about something before. dont't remember what
<bonniot>that could be interesting too21:56
<lodewijk>yes, that's why I did it. I don't want nulls, and asserting it in the method seems strange
<arjanb>i could reproduce the verifyError22:00
<lodewijk>okay, patch resent with good old mutt instead of Mail.app :)
yes, reproduced too:
String foo() { assert false; }22:02
it should be quick to fix
<lodewijk>aha. so my workaround is to remove the assert for now.22:03
<arjanb>i will fix the code gen22:06
<lodewijk>yes, commenting out all assert false's gets me going again
<bonniot>ok arjan22:07
ok, got the patch inline now22:16
<arjanb>looks fixed
<bonniot>using always_assert?
<arjanb>no just check for assert false at code gen22:17
<bonniot>and do what?
not check the assertion flag?22:18
or return null
<arjanb>just don't compile any jumps in the assert22:19
<bonniot>ok, i'll look at the patch22:21
arg, but you cannot commit!
can you paste the diff here?
lodewijk: i'm halfway through the patch22:22
<arjanb> Label end = new Label(code);
+ if (args[0] != QuoteExp.falseExp)
+ {
if (this.assertEnableCheck)
<bonniot>typical french speaker mistakes, mostly :-/22:23
<arjanb> code.emitGotoIfIntNeZero(end); // The assertion is true.
+ }
that's all without indentation changes
<bonniot>isn't there another jump?22:24
lodewijk: cannot "toplevel" be accepted, though? it might not be in the dictionary, but I would think it's a technical term22:25
<arjanb>daniel: yes but this if is around both jumps
<lodewijk>bonniot: yes, well, that's one of the less clear cut things. ispell does consistently complain about such contractions22:26
<bonniot>i would keep the two occurences of "toplevel". agreed with all the rest :-)22:27
<lodewijk>okay. I'll commit when cvs responds again :)
arjanb: ok
<lodewijk>okay, I have to write more code and I need this terminal :)22:30
<bonniot>short on terms?
<lodewijk>so thanks for the help and see you later :)
<lodewijk>no I'm trying to graduate
<lodewijk>it's about time too, I have to hurry or my first exams will expire22:31
<bonniot>good luck then!
<lodewijk>thanks, and bye :)
* lodewijk leaves
* bonnio1 joins22:43
* bonnio1 leaves22:44

Generated by Sualtam