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

Using timezone: Central European Time
<bonniot>bye00:31
* bonniot leaves
* arjanb leaves00:45
* Gummi_log_ joins02:15
* theuser001 joins06:28
* theuser001 joins06:28
* theuser001 leaves06:29
* theuser001 leaves06:29
* bonniot joins10:58
* bonniot joins10:58
* arjanb joins14:26
* arjanb joins14:26
* arjanb leaves14:51
* arjanb leaves14:51
* arjanb joins
* arjanb joins
* arjanb leaves
* arjanb leaves
* arjanb joins
* arjanb joins
<bonniot>hi arjan15:22
<bonniot>hi arjan15:22
did you contact alex about the wiki?15:23
did you contact alex about the wiki?15:23
<arjanb>hi 15:37
<arjanb>hi 15:37
not yet
not yet
i have seen ~ used as string/array concatenation operator in another language and it looks a good idea to me16:04
i have seen ~ used as string/array concatenation operator in another language and it looks a good idea to me16:04
<bonniot>why?16:19
<bonniot>why?16:19
<arjanb>i don't like the overloading of +16:20
<arjanb>i don't like the overloading of +16:20
and other possebilities have other disadvantages16:21
and other possebilities have other disadvantages16:21
<bonniot>that would overload ~ instead
<bonniot>that would overload ~ instead
<arjanb>yes but it not used often and ~ is unary16:22
<arjanb>yes but it not used often and ~ is unary16:22
|| is a problem because of the option_or16:28
|| is a problem because of the option_or16:28
and ++ does overloading too and looks strange in a ++= b 16:29
and ++ does overloading too and looks strange in a ++= b 16:29
<bonniot>my philosophy in Nice is to differ from Java only when there is a compelling reason (e.g. multi-methods)16:32
<bonniot>my philosophy in Nice is to differ from Java only when there is a compelling reason (e.g. multi-methods)16:32
for +, it is a matter of taste, but I don't think it is worth changing this in the core language
for +, it is a matter of taste, but I don't think it is worth changing this in the core language
a user should be able to define its own operator if he prefers that16:33
a user should be able to define its own operator if he prefers that16:33
<arjanb>does that include new operators using different symbols?16:38
<arjanb>does that include new operators using different symbols?16:38
<bonniot>technically, this is not possible now, because the parser needs to be changed for that16:44
<bonniot>technically, this is not possible now, because the parser needs to be changed for that16:44
(unless you use `~` for instance)
(unless you use `~` for instance)
(but that's not really operator syntax)16:45
(but that's not really operator syntax)16:45
we can always add new operators on request
we can always add new operators on request
did you investigate what it would take to add a ~ binary operator?
did you investigate what it would take to add a ~ binary operator?
I am not sure yet if it would be good to allow the user to define new operators16:46
I am not sure yet if it would be good to allow the user to define new operators16:46
the risk is that different users define different priorities, so it becomes impossible to read source code easily
the risk is that different users define different priorities, so it becomes impossible to read source code easily
that's why centrally defined operators can be a good compromise16:47
that's why centrally defined operators can be a good compromise16:47
<arjanb>it quite easy to add ~ as binary operator just like + and - exist and binary and unary
<arjanb>it quite easy to add ~ as binary operator just like + and - exist and binary and unary
<bonniot>with what priority?16:48
<bonniot>with what priority?16:48
<arjanb>not sure16:50
<arjanb>not sure16:50
btw what is on the todolist for small things? i have no idea what to do next16:51
btw what is on the todolist for small things? i have no idea what to do next16:51
<bonniot>depends what you call a small thing :-)17:00
<bonniot>depends what you call a small thing :-)17:00
have you checked the todo list on the wiki?17:01
have you checked the todo list on the wiki?17:01
<arjanb>yes but that has only big things17:02
<arjanb>yes but that has only big things17:02
with small i mean implementable in 1 day
with small i mean implementable in 1 day
<bonniot>ah, I see you marked some things as done in the list17:08
<bonniot>ah, I see you marked some things as done in the list17:08
i was also doing that, from the featureproposals page :-)
i was also doing that, from the featureproposals page :-)
<arjanb>design by contract is not done yet classinvariants are still missing17:09
<arjanb>design by contract is not done yet classinvariants are still missing17:09
<bonniot>one other thing to do is to generate getters and setters for class fields
<bonniot>one other thing to do is to generate getters and setters for class fields
i believe it could be done in 1 day17:10
i believe it could be done in 1 day17:10
yes, class invariants too
yes, class invariants too
what do you think?17:11
what do you think?17:11
<arjanb>i can look at getters and setters17:12
<arjanb>i can look at getters and setters17:12
<bonniot>ok17:14
<bonniot>ok17:14
for a start, they can always be public17:15
for a start, they can always be public17:15
this is already useful when you want to implement in Nice a JavaBean
this is already useful when you want to implement in Nice a JavaBean
<arjanb>first step generate a get and set method in bytecode inside the class when the field hasn't already a getter\setter in a superclass17:17
<arjanb>first step generate a get and set method in bytecode inside the class when the field hasn't already a getter\setter in a superclass17:17
<bonniot>it should only be for fields declared in that class, so why look in the superclass?17:19
<bonniot>it should only be for fields declared in that class, so why look in the superclass?17:19
<arjanb>if a java super class hasn't defined getters and setters17:20
<arjanb>if a java super class hasn't defined getters and setters17:20
<bonniot>that's their problem, not ours :-)17:24
<bonniot>that's their problem, not ours :-)17:24
or maybe there is a god reason why they did not define it
or maybe there is a god reason why they did not define it
one can ignore this
one can ignore this
<arjanb>ok17:25
<arjanb>ok17:25
niceclass.java is rather big19:31
niceclass.java is rather big19:31
maybe could all field related thing be moved to another class20:26
maybe could all field related thing be moved to another class20:26
* baver joins23:24
* baver joins23:24
bonniot: You're the author of sualtam, correct? I have a few questions that I'd like to ask about it's html log files if I could23:26
bonniot: You're the author of sualtam, correct? I have a few questions that I'd like to ask about it's html log files if I could23:26
<arjanb>bonniot is away at moment23:33
<arjanb>bonniot is away at moment23:33
<baver>arjanb: thanks, I was starting to assume that ... looking at the cvs commit logs has answered my question however :)23:35
<baver>arjanb: thanks, I was starting to assume that ... looking at the cvs commit logs has answered my question however :)23:35
mind if I ask about a couple compilation issues with the sualtam CVS here?23:49
mind if I ask about a couple compilation issues with the sualtam CVS here?23:49
<arjanb>no problem23:50
<arjanb>no problem23:50
<baver>ok, well, I know nothing about the Nice language, so, this is going to sound like the dumb newbie:
<baver>ok, well, I know nothing about the Nice language, so, this is going to sound like the dumb newbie:
~/Sualtam/src/sualtam/output.nice: line 11, column 3:
f00f.net.irc.martyr.clientstate.ClientState is not declared
~/Sualtam/src/sualtam/output.nice: line 11, column 3:
f00f.net.irc.martyr.clientstate.ClientState is not declared
<arjanb>have you downloaded the martyr jar ?23:53
<arjanb>have you downloaded the martyr jar ?23:53
<baver>yes
<baver>yes
i'm using nicec --sourcepath=src sualtam to compile .. do I have to add some sort of "include" path for the martyr.jar file?23:54
i'm using nicec --sourcepath=src sualtam to compile .. do I have to add some sort of "include" path for the martyr.jar file?23:54
<arjanb>it looks like that package isn't found by the compiler
<arjanb>it looks like that package isn't found by the compiler
try adding --classpath lib as compile option23:56
try adding --classpath lib as compile option23:56
<baver>am
<baver>am
works :) thank you23:57
works :) thank you23:57
i'm getting an error when tryint to run the .jar I created afterwards: Exception in thread "main" java.lang.NoClassDefFoundError: f00f/net/irc/martyr/IRCConnection00:08
at sualtam.fun.main(~/Sualtam/src/./sualtam:62) Any ideas?
i'm getting an error when tryint to run the .jar I created afterwards: Exception in thread "main" java.lang.NoClassDefFoundError: f00f/net/irc/martyr/IRCConnection00:08
at sualtam.fun.main(~/Sualtam/src/./sualtam:62) Any ideas?
<arjanb>you have to add the martyr jar to the classpath for running it00:09
<arjanb>you have to add the martyr jar to the classpath for running it00:09
<baver>when running it or when compiling? I did nicec -a sualtam.jar --classpath=../lib/martyr.jar sualtam ...00:10
<baver>when running it or when compiling? I did nicec -a sualtam.jar --classpath=../lib/martyr.jar sualtam ...00:10
err, sorry "for running it"
err, sorry "for running it"
java -classpath /home/baver/Sualtam/lib/martyr.jar -jar /home/baver/sualtam.jar ... still give me the error00:13
java -classpath /home/baver/Sualtam/lib/martyr.jar -jar /home/baver/sualtam.jar ... still give me the error00:13
<arjanb>strange00:15
<arjanb>strange00:15
<baver>is it possible to "statically" link martyr.jar?00:17
<baver>is it possible to "statically" link martyr.jar?00:17
<arjanb>no00:18
<arjanb>no00:18
but you can try to include martyr.jar into sualtam.jar00:19
but you can try to include martyr.jar into sualtam.jar00:19
<bonniot>java -jar ignores any classpath setting
<bonniot>java -jar ignores any classpath setting
yes, you can either combine the two jars, or put both on the classpath
yes, you can either combine the two jars, or put both on the classpath
java -classpath /home/baver/Sualtam/lib/martyr.jar:/home/baver/sualtam.jar sualtam.fun ...00:20
java -classpath /home/baver/Sualtam/lib/martyr.jar:/home/baver/sualtam.jar sualtam.fun ...00:20
<baver>bonniot: thanks00:25
<baver>bonniot: thanks00:25
arjanb: thanks too
arjanb: thanks too
<bonniot>everything OK?
<bonniot>everything OK?
<baver>bonniot: the java -classpath... that you mentioned, that combines the two jars?
<baver>bonniot: the java -classpath... that you mentioned, that combines the two jars?
<bonniot>it does not modify the files00:26
<bonniot>it does not modify the files00:26
it puts both on the classpath
it puts both on the classpath
<baver>ah ok
<baver>ah ok
and sualtam.fun is ?00:27
and sualtam.fun is ?00:27
<bonniot>the class that has the main method00:28
<bonniot>the class that has the main method00:28
because it is in the 'sualtam' package
because it is in the 'sualtam' package
<baver>I get it, and it works :) thanks again00:29
<baver>I get it, and it works :) thanks again00:29
<bonniot>you're welcome!00:31
<bonniot>you're welcome!00:31
<arjanb>typecheck(null(Statement)) {}01:17
<arjanb>typecheck(null(Statement)) {}01:17
.//XXX: Now that there is an EmptyStmt class, it _might_ be possible 01:18
.//XXX: Now that there is an EmptyStmt class, it _might_ be possible 01:18
.//XXX: (post 0.8) to remove the null case.
.//XXX: (post 0.8) to remove the null case.
i found 2 cases where null is still used: finally clauses and the iterationstatements in for loops01:19
i found 2 cases where null is still used: finally clauses and the iterationstatements in for loops01:19
<bonniot>ok01:25
<bonniot>ok01:25
<arjanb>printing of local functions, try statements and emptystatements doesn't work01:27
<arjanb>printing of local functions, try statements and emptystatements doesn't work01:27
should i fix these or wait for changes to initializer?01:28
should i fix these or wait for changes to initializer?01:28
<bonniot>depends how complex the fix is01:32
<bonniot>depends how complex the fix is01:32
if it's simple, why not do it?
if it's simple, why not do it?
<arjanb>ok than i skip local functions01:34
<arjanb>ok than i skip local functions01:34