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

<bonniot>hello log ;-)19:55
<arjanb>I get a lot of missing return statement errors19:56
<bonniot>false errors?19:58
<arjanb>yes this is what I do in the parser:
{List statements = new LinkedList();}
formalParameters(true, statements)
body = code() {statements.add(body);}
{ body = new Block(statements); }
so what am I doing wrong20:00
?20:01
<bonniot>and what source gives you an error?
in what production is this code?20:02
<arjanb>even compile an empty package seems to generate these errors20:03
so reading *.nicei files do fail20:05
<bonniot>in what production is this code?
<arjanb>how do you mean?
<bonniot>what production of the parser are you modifying?
<arjanb>MethodDeclaration internalMethodOrFunction(MethodContainer c):20:06
{
}
{
cst=constraint()
returnType=monotype()
name=identOrBackquoted()
"(" parameters = formalParameters(true, statements) ")"
contract = contract()
( ";" | body = code() {statements.add(body);} )
{ return NiceMethod.create(c, name, cst, returnType, parameters,
new Block(statements) , contract); }
}
<bonniot>this is the new version?20:09
<arjanb>yes
<bonniot>ok20:10
thinking
what does formalParemeters add to statements?20:11
<arjanb>nothing if there are no tuple arguments
<bonniot>did you try to see what block was generated?20:13
what is the location reported for the error?
<arjanb>no location at all20:14
<bonniot>did you try to see what block was generated?
<arjanb>how do I do that?20:15
<bonniot>you could just print the block20:16
there is the basic pretty printing in toString
<arjanb>{20:20
null;
}
strange
<alexgreif>happy hacking here?? :)20:21
<bonniot>hello alex
<alexgreif>hi!
<bonniot>yes, I have been hacking:20:22
<alexgreif>we are digesting the finom pencaces
<bonniot>http://pauillac.inria.fr/~bonniot/nice@freenode/2003-06-15.html
<alexgreif>have you already seen the "Java Build Path" Property of a java project? There is everything what we also need: "source folders on build path" "required projets on the build path" "JARS and class fodlers on the build path" "Build class path order"20:25
<bonniot>i haven't seen that. i don't think i have the java plugins installed20:27
how do you like the logs?20:28
<alexgreif>which logs?
I only saw that a log logged in
<bonniot>didn't you visit the url?20:29
<alexgreif>which url? did I miss something?
<bonniot>http://pauillac.inria.fr/~bonniot/nice@freenode/2003-06-15.html
<alexgreif>very good!20:30
is everithing logged?
<bonniot>all messages and /me actions
<alexgreif>the converasaTIOn of the whole day?
<bonniot>it's only since i finished implementing it :-)20:31
<alexgreif>:))20:32
<arjanb>daniel would a diff of parser be helpful?
<alexgreif>The "java build path "properties is a tabbed pane with the mentioned panes. what do you think about it? currently we dont need all of them but its a good starting point
<bonniot>arjanb: yes. the debuging did not lead to anything?20:34
arjanb: send it by email
alex:you want to copy paste the code?
<arjanb>no both the new block and the existing body print this20:35
{
null;
}
<bonniot>there is only one block?
<alexgreif>daniel: no, we cannot use 100% of it, but I take the ideas
<bonniot>yes. i think we already have the ideas, don't we?20:36
<alexgreif>I thaought about copy paste code from ruby and jdt : Its ok for now to finish the proto, but I will rethink the whole architecture and write the code in my terms. so we will have no problems with other licenses. I will also change class names whe I find ours fit better20:37
In some cases I have ideas, but I dont know wheter eclise is capable of realizing it. SO if I see the solution in another plugin then I feel better20:38
<arjanb>daniel you have mail20:39
<bonniot>i'll be back in 10 minutes20:40
alexgreif: yes, that sounds like a good idea20:55
arjanb: i patched my compiler, and I will see what happens
<alexgreif>ok, guys Im too tired to have clear thoughts. 20:56
daniel: I mail you tmorrow about noon to setup an account.
cu, and have success!20:57
<bonniot>szia alex
<alexgreif>I will read the logs :)
<bonniot>:-)
<arjanb>cu alex
<alexgreif>szia
<bonniot>arjanb: i found it20:59
it is important when the body is null21:00
because it means it is a method declaration
with your code, you create a Block with zero statement instead
<arjanb>I see21:01
well this is easy to fix
<bonniot>yes
:-)21:02
<arjanb>passed the existing testsuite without regressions :-)21:12
Strange error message :-(21:18
void foo((String s, String t)) = print(s+t);
.\my\test3\test.nice: line 3, column 10:
Incorrect type in assignment to (s, t)
Found : (java.lang.String, java.lang.String)
Expected: (java.lang.String, java.lang.String)
debug typechecking gives:21:25
Monotype leq: (java.lang.String, java.lang.String) <: (java.lang.String, java.lang.String)21:26
mlsub.typing.lowlevel.LowlevelUnsatisfiable: Bad Kinding for (java.lang.String, java.lang.String) and (java.lang.String, java.lang.String)
daniel any idea what's wrong here?21:27
<bonniot>looks like a nullness problem21:45
did you do any magic?
in test.nice, do you call this function? with what code?21:46
<arjanb>no21:49
I think see a possible problem
void foo((String s, String t) tuple) = print(s+t);21:50
generates:
void foo((String,String) tuple) {
String s;
String t;
(s, t) = tuple;
print(s+t);
}
but the monotype are shared21:51
can monotypes be destructively changed?
diff send by mail21:55
<bonniot>ok i look22:20
it is a nullness problem indeed22:24
when you create new TupleType
you should set t.nullness = Monotype.absent22:25
question: do you allow:
void foo(?(String s, String t)) {}22:26
?
<arjanb>I don't allow that now22:29
<bonniot>not too important22:31
<arjanb>I don't know how that could be usefull and to what should I safely desugar that22:33
<bonniot>you're right, it is nonsensical :-)22:34
did you try the fix?
<arjanb>yes it working now :-)22:37
<bonniot>:-)
the tuple type was resolved to a "raw type", that is without the nullness marker !22:38
the nullnessmarker whose name is "!", or nice.lang.Sure
<arjanb>I'm too tired now to implement it also for anonymous functions I will do that tomorrow22:39
<bonniot>ok22:40
<arjanb>why isn't Monotype.absent the default marker?
<bonniot>i think for historical reasons22:41
when i introduced markers, i wanted existing code not to break
in any case you have to be careful when you create types to set the right marker
sometimes absent is the right one22:42
sometimes none is
absent could maybe be made the default, but that might create strange bugs... :-/
<arjanb>I see, yet another thing I know now that needs attention the next time22:44
<bonniot>:-)22:45
have you seen that we have irc logs now ?
<arjanb>yes
<bonniot>i found an IRC library, under the LGPL, in Java22:46
I wrote a small program in nice that creates the logs
<arjanb>could you put the url of the logs on a wiki page or something?22:51
<bonniot>yes, I will create a link
<arjanb>How are the changes to gun.bytecode going?23:39
Anyway I'm going to sleep cu tomorrow23:41
<bonniot>good night+
!
<arjanb>you are here tomorrow?23:42
<bonniot>yes, during the day
<arjanb>ok good night
<bonniot>.23:43