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

Using timezone: Central European Time
* CIA-2 leaves01:30
* arjanb leaves03:44
* demy joins07:46
ola
* demy_ joins09:07
* demy__ joins09:24
* demy leaves
* demy_ leaves09:32
* demy joins10:02
* demy__ leaves10:19
* bonniot joins11:48
hi!
<Bluelive>hey12:07
how is the blogging thing working for you ? :)
<bonniot>fine, thanks!12:15
just started, but already got some visits ;-)12:16
you have one too?
<Bluelive>no, but i added yours to the rss tracker12:18
<bonniot>:-)12:19
how did you find mine?12:21
<Bluelive>xoltar made a post about it12:29
<bonniot>i see
* arjanb joins12:37
<bonniot>hello arjan12:38
<arjanb>hi
i'm thinking about changing enums so that they can extends some class12:44
<bonniot>how would that affect compatibility with java?12:45
<arjanb>the abstract clas enum is only used in EnumSet and EnumMap12:46
<bonniot>what about switch?
can you define an enum in Nice, and use switch in Java?12:47
<arjanb>i don't know how enum switch works exactly12:49
<bonniot>don't you have 1.5 beta installed?12:51
<arjanb>no
<bonniot>it could be a good idea, since you are the enum master :-)
<arjanb>having multiple jdk on windows installed is a bad idea12:53
<bonniot>aren't they isolated?
<arjanb>don't know but i never got both working at the same time12:55
<bonniot>isn't there a zip install, that does not touch the system, just installs in a dir?12:57
<arjanb>could be but it needs some paths to be set correctly too12:58
<bonniot>is java.sun.com dead for you too?13:02
<arjanb>yes
<Bluelive>doing switches is difiicult, there are so many ways to actually implement them13:04
table jumps, if waterfall, binary search if tree13:05
<bonniot>so it's only difficult to choose ;-)13:06
<Bluelive>between fast and easy
<arjanb>jvm supports both tableswitch and binary search 13:07
<Bluelive>table jumps for a small range of constants, binary search for orderd constants, waterfall if for anything else
with complexity of O(1) O(log n) and O(n)13:17
altough n is rarely larger then 10
so it doesnt matter that much for anything not tightloop13:18
<bonniot>even then, a O(n) can be faster than O(1) since n is small
<Bluelive>well13:19
the c's are also c<=c<=c
<bonniot>for all n?13:25
<Bluelive>well for n=0 i guess it could be different
<bonniot>but if you select between 0, 3 and 2^32-1, then the "n" for a table jump is 2^32, while for the tree it is 3, right?13:27
<Bluelive>table jump has a nightmare memory complexity, but runtime complexity is constant, just a simple setip(table[value])13:28
well, nightmare, n
for the tree its 3213:29
for waterfall its 2^32
<bonniot>i meant when not all cases are wanted13:31
switch(i) {
case 0: ...
case 2000000000: ...
}
<Bluelive>that one you would solve with a binary search13:32
the range is to wide
or
the density of values is too low
.2 would be a nice threshold for deciding between table and tree13:33
waterfall you'd only use when youve got expressions for labels, or only have equals on the type to switch on
that does give a small problem with one object activating multiple labels13:34
only accept the first or something
<bonniot>since the CIA is on holidays: just commited the covariance checks for method specialization13:41
<arjanb>void foo(A a) {...}13:43
void foo(#B b) {...}
when should it be possible to use patterns?
<bonniot>atm, in method implementations only13:44
you cannot call directly a # pattern (because if you have a B, you can never be sure it's not an instance of a subclass), so it is not really needed to change the return type just for it13:45
<arjanb>changing the return type is not the only reason for specialization13:47
i think many would use it because of readability13:48
<bonniot>ok, but # is pretty rare anyway13:49
so i don't think this is a priority13:50
<arjanb>it's not about # but any patterns used when having a return type too
<bonniot>like?13:51
<arjanb>void foo(A a);13:52
void foo(a) {...}
<bonniot>one possibility would be to allow method implementations to start with 'override' and/or a return type13:54
<arjanb>doesn't have 'override' another meaning13:57
<bonniot>which one?13:59
<arjanb>saying that methods must be an specialization?
* User746 joins14:00
* User746 leaves14:02
<bonniot>it says that the following code is not a new method but a specialization of something existing. so it's coherent in both cases
<arjanb>override void foo(#B b) {...}14:04
override B foo(B b) {...}
i see an parsing problem
<bonniot>the beginning can be parsed together, and the choice be made when you reach the parameter list14:07
<arjanb>override void foo(b) {...}14:08
override B foo(B) {...}
<bonniot>that's nothing new, foo(B) is the parameter name, not type14:10
you'll get an error if that's not the original name
<arjanb>i'll see what others think of that14:15
some code that give an error now:14:18
class A {}
A foo(A a);
A foo(A a) = new A();
<bonniot>what error?14:20
ambiguity i suppose
<arjanb>This method has a domain identical to testbug.A foo(A a), which is defined at D:\Nice\.\testbug\test
.nice: line 5, column 3
<bonniot>yep14:21
you're suppose to use it for _specialization_ ;-)14:22
<arjanb>i think this should be considered specialization14:23
<bonniot>well, nothing is more specific than in the declaration14:24
but i agree this could be allowed14:25
<arjanb>what about making the override keyword required when specializing the return type?14:29
<bonniot>i don't really think it's more meaningful then than when not changing the return type14:44
there should be an option to get warnings (errors?) in all cases, if you want that14:45
<arjanb>an option for some warning or error is not a good idea in general14:46
<bonniot>y not?14:50
i guess warning is better, as it does not change the behaviour of the compiler14:51
the point is that it's obviously difficult to find an agreement on this point. and since it's all about detecting mistakes, not fundamental semantics, i think an optional warning makes sense15:48
what syntax should we use on the command line to select warnings (unused vars, override)?15:54
<arjanb>what warning for override?16:10
<bonniot>non-explicit override16:13
<arjanb>either allow one of the styles or treat them equally and no warning16:15
<bonniot>why not? some people think that overriding should be explicit, why not provide them with a tool to make sure this is the case?16:17
<arjanb>first checking the style is not the job of the compiler16:22
options with marginal usefulness are not used if they are not the default16:24
<bonniot>the check about unused variables is similar in scope16:27
given that it's trivial to implement, i don't see the problem16:29
<arjanb>having a option for a warning suggests one is better than the other16:32
<bonniot>at least that some people believe one is better, which is the case16:33
<arjanb>a useful option is --nowarn because of easier finding the errors between a bunch of warnings
<bonniot>agreed16:34
so the question is which warnings should be one by default. i'm open about that16:35
<arjanb>the existing ones on by default16:43
* CIA-4 joins16:46
03bonniot * 10Nice/ (4 files in 3 dirs): Allow explicit method overrides.17:03
<bonniot>we've been making good progress lately :-)17:05
before 1.0, i see mainly:
visibility
properties
and probably compilation of dispatch inside classes when possible17:06
<arjanb>solve variance restriction
<bonniot>not sure if that should be before or after 1.0
it would be nice before, but i wouldn't want it to delay it too much either17:07
we'll see...
i guess it will also depend on the level of contributions17:08
<arjanb>that's not much atm including me17:10
<bonniot>:-(17:11
<arjanb>btw is anyone doing something on nicedoc now?17:13
<bonniot>frank is supposed to, but i don't know17:14
it could help if you send him an email
<demy>arjanb: i could help17:19
<bonniot>sounds great!
hi demy17:20
<demy>hello
<arjanb>hello
<bonniot>i'm sorry i have to go now, i'll be back later tonight
* bonniot is away: ~2 hours
<demy>where are you guys?17:21
i'm in us
<arjanb>we're in europa
why did you try Nice?17:25
<demy>just browsing on sf.net i guess17:26
saw something about project need contributions
and i need something to work on :/
<arjanb>i see17:27
why :/ ? 17:29
* CIA-4 leaves
* CIA-5 joins
* CIA-5 leaves17:33
* CIA-1 joins
<demy>arjanb: why not?
* CIA-1 leaves
<demy>arjanb: i use to work on anjuta.sf.net
* CIA-4 joins17:34
<demy>its code editor written in gtk lib
<arjanb>:/ is a sad smiley or am i wrong?
<demy>no its not sad smiley hehe17:35
:(
^ thats sad
<arjanb>do you know java?17:36
* CIA-4 leaves17:39
* CIA-4 joins
<demy>arjanb: yes
is nice written in java?17:40
<arjanb>for the biggest part yes
<demy>ok
i know c/c++ more then java
but its just language
<arjanb>there are 2 projects related to nice that have been started but with nobody with the time to continue it17:44
one is nicedoc, a javadoc variant for Nice17:45
the other an eclipse plugin17:46
* CIA-4 leaves17:50
* CIA-4 joins17:51
<demy>ok17:53
where is nicedoc?17:54
<arjanb>http://cvs.sourceforge.net/viewcvs.py/nice/Nice/src/nice/tools/doc/?sortby=date17:55
it's written in nice
<demy>ok i'll play with it when i get home18:01
at work now
<arjanb>daniel: i have 1 failing testcase when building from cvs18:16
<CIA-4>03arjanb * 10Nice/testsuite/compiler/typing/arrays.testsuite: Make a testcase not conflict with stdlib.18:26
* bonniot is back (gone 02:35:16)19:56
arjanb: right, i forgot to commit that one. i did the same change :-)19:58
<arjanb>ok19:59
i find jsr204 quite ugly20:00
<bonniot>demy: why did you stop working on anjuta?20:01
arjanb: which one is that?
<arjanb>extends unicode support
<bonniot>i can't believe sun websites are down so long...20:03
<arjanb>it means that 2 chars together can represent a character outside the 2^16 range
<bonniot>btw, have you written to frank?20:04
<arjanb>no
<demy>bonniot: because of gtk20:13
i wanted to add/cleanup font handling thing and other stuff
but i started to dislike gtk too much
and didnt have time :/
<bonniot>arjanb: it seems that if you install the _JDK_, it includes a provate copy of the JRE, which does not modify the system (it is only used to run javac/javap/... i guess). it can optionally also made public20:30
so i guess if you keep it private it should not disturb anything20:31
<arjanb>i think it would work when installing it under another user20:33
but that's not convenient
have you tried the beta?20:36
<bonniot>nope20:38
given what i read, you don't need to be another user20:39
<CIA-4>03arjanb * 10Nice/src/gnu/bytecode/Method.java: Throw an error when generating code for an abstract method.21:21
<bonniot>when does this happen?21:24
<arjanb>it shouldn't happen21:25
for example putting a readResolve in an interface21:26
* CIA-4 leaves22:33
* CIA-4 joins22:34
03bonniot * 10Nice/ (src/nice/tools/testsuite/TestNice.java Makefile): 22:44
Make the testsuite enable assertions, so that they don't have to bet set
externally when starting the JVM that will run the testsuite.22:45

Generated by Sualtam