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

Using timezone: Central European Time
* zzorn joins07:54
* ArtemGr joins11:14
* arjanb joins11:16
<CIA-5>03arjanb * 10Nice/ (4 files in 4 dirs): Implemented instanceof on option types.15:48
* ArtemGr leaves
* bonniot joins16:06
hi
<arjanb>hi
<bonniot>my modem died this morning, they just brought the new one ;-)16:09
well done for instanceof? !16:10
<arjanb>i still can't bootstrap it here but the patch is obvious16:11
<bonniot>autobuilder seems fine16:14
<arjanb>what should nice.inline contain?17:15
<bonniot>the property?17:18
<arjanb>yes
<bonniot>nice.inlined
it's a classpath for looking up inlined methods17:19
<arjanb>i can't find a working path17:21
<bonniot>what script are you using?
<arjanb>my own17:22
<bonniot>what changed?17:23
<arjanb>how do you mean?17:25
<bonniot>what's the problem? didn't your script work before?17:26
<arjanb>it somehow doesn't want to use the correct Instancof inline class17:27
<bonniot>i bet it takes the one on the system classpath17:28
(i mean the one of the running compiler)
did you try ant? if artem followed the behaviour of my Makefile, it should work17:29
<arjanb>not yet18:04
anyway i should be able to run the testsuite by setting nice.inlined but that doesn't seem to work18:05
<bonniot>how do you start the testsuite?18:09
<arjanb>java -Xverify -Xms64M -Xmx128M -ea -classpath "classes" nice.tools.testsuite.TestNice testsuite18:10
<bonniot>where is nice.inlined?18:12
<arjanb>java -Dnice.inlined=classes -Xverify -Xms64M -Xmx128M -ea -classpath "classes" nice.tools.testsuite.TestNice testsuite18:14
yields18:15
F:\Nice\classes\nice\lang\package.nicei: line 525, column 38:
Inlined method nice.lang.inline.NumOp: java.lang.ExceptionInInitializerError
<bonniot>it's not necessary to use -Dnice.inlined if it's the same value as classpath18:23
you should catch than ExceptionInInitializerError and print the one wrapped inside
how is it going?18:45
<arjanb>NPE inside now looking for stacktrace18:46
<bonniot>i'll be away for the evening...19:07
<arjanb> java.lang.NullPointerException
at nice.tools.code.TypeImport.lookupQualifiedJavaClass(TypeImport.java:130)
at gnu.bytecode.ObjectType.getReflectClass(ObjectType.java:58)
at gnu.bytecode.ClassType.getDeclaredMethod(ClassType.java:574)
at gnu.bytecode.Type.<clinit>(Type.java:618)
at gnu.expr.Target.<clinit>(Target.java:20)19:08
at nice.lang.inline.Tools.<clinit>(Tools.java:27)
at nice.lang.inline.NumOp.create(NumOp.java:44)
<bonniot>sorry, have to leave just now19:09
good luck
* bonniot leaves19:10
* bonniot joins20:53
hey
<arjanb>hi20:54
<bonniot>did you make progress?20:55
<arjanb>not really20:56
somehow the classloader in TypeImport is null during the typecheck pass20:57
the stacktrace goes through 3 static initializers of class i would expect to have been used earlier21:01
<bonniot>is this cause by some change that you made? some autobuilder works21:02
caused
<arjanb>it happens when i run the testsuite with -Dnice.inlined=classes21:03
<bonniot>as I said, this is not useful if classes is your classpath anyway21:04
nice.inlined is usefull for bootstrapping21:05
<arjanb>maybe it will work once there's a dev version including my changes21:09
<bonniot>you could never try your changes with the testsuite?21:14
<arjanb>not for the inline part21:15
<bonniot>you mean you could check the parsing, but not execution?21:17
<arjanb>yeah21:18
<bonniot>did you check if classes\\nice\\lang\\inline\\Instanceof.class really has your changes?21:20
<arjanb>it does and the nice.jar too21:22
<bonniot>but it's not executed?21:26
<arjanb>argh21:36
it's executed so i'm looking for the wrong thing all time :(21:37
<bonniot>so no pb?
<arjanb>so the error is somewhere in Instanceof.java21:38
bug i mean
<bonniot>what bug?
<arjanb>it isn't working while i thought my code was obvious21:39
<bonniot>returns teh wrong value?
<arjanb>it isn't generating the code for option instanceof21:42
* arjanb is lost22:18
Instanceof.create gets "sure" as argument while in the parser a `optionInstanceof` symbol is created22:19
<bonniot>if (option)! sym = symb("optionInstanceof", t, true);! else! sym = symb(t);! return bossa.syntax.dispatch.createCallExp(symb(t), res, type);22:24
you don't use sym
<arjanb>:( :(22:25
so writing code when tired is a very bad idea22:33
<bonniot>that should solve your problem shouldn't it ;-)
yeah
<arjanb>it does
<bonniot>but such mistake can always happen
interestingly, a compiler that detects unused variables would have helped ;-)
i just though how this interferes with nullness analysis. i don't think we use 'x instanceof Foo' as a proof that x is not null, but if we did, we should be careful not to do the same for 'x instanceof ?Foo'22:35
maybe it would be a good idea to add the testcases so we don't forget that
<arjanb>ok22:40
<CIA-5>03arjanb * 10Nice/ (2 files in 2 dirs): Make option Instanceof really work.22:50
<bonniot>could you write ten NEWS entry?23:50
/the/. one will be enough ;-)
it's good to see development moving faster again ;-)23:51
i think I can commit the next step of visibility tomorrow...
<CIA-5>03arjanb * 10Nice/NEWS: Make option Instanceof really work.23:57
<bonniot>good night00:06
<arjanb>g'night
* bonniot leaves00:07
* arjanb leaves00:10
* zzorn_sleep leaves00:27