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

Using timezone: Central European Time
* CIA-3 leaves01:15
<bonniot>bye02:11
* bonniot leaves
* GummiEnte joins10:17
Hello all.
* bonniot joins10:19
<GummiEnte>Hello Daniel...10:20
<bonniot>hello!
how are you?
<GummiEnte>Thnx, quite good. An you?
<bonniot>great :-)10:21
<GummiEnte>That sounds good.
<bonniot>still lots of work?
<GummiEnte>Is there something special, so that you can say "great"?
Well, yes. Bad news and good news.
<bonniot>fo me: nothing very special, but had a great week-end in the countryside, and news about Nice are good10:22
what are those news?
<GummiEnte>What news about nice. Did I missed something?
Well, quite half of my written nice code will become deprecated, since I'm recoding to use the javacc parser...10:23
...second, I'm not able to compile a new cvs version...10:24
...but good news is, that I hope to have some free time to investigate in the typecheck(e@IfExp)...10:26
<bonniot>News about Nice: nothing special, but there are more and more users, people contributing ideas or code, a possible solution for the distribution of Nice libraries, ...10:27
the parser change is something specific to your app, right?
<GummiEnte>what is the possible solution for the libs? (I did not read the emails all...)
<bonniot>Maven10:28
<GummiEnte>Yes, sadly.
<bonniot>so it's not something we can help with, is it?
for the cvs version, are you compiling with 1.3, and it's failing on getStackTrace?
<GummiEnte>I assume not...10:29
I'll post the error:
symbol : method addVariable (gnu.bytecode.CodeAttr,gnu.bytecode.Type)
location: class gnu.bytecode.Scope
result = methodScope().addVariable(this, topType());
^
<bonniot>that's a change I made yesterday...10:30
<GummiEnte>I tried the latest development version as bootstrapper, but the also doesn't work; also I'm already using 1.4.2...10:31
<bonniot>that's strange, that should compile
no sorry, there is a mistake
my mistake
<GummiEnte>Ok. That could happen.
<bonniot>i removed a part before commiting that I thought was just debugging info, but it turns to be important10:32
sorry, missed some testing
<GummiEnte>No problem... I'll have to go on to the latest version, since I mixed quite a few things in the last weeks to become code, that is useable... (without needing to recode quite a lot, but now I'll spend the time to do it correct)10:33
<bonniot>you mean you missed following the latest changes in the compiler?10:35
(the compilation error should be fixed :-)
<GummiEnte>Yes... sadly, but true.
<bonniot>that's OK :-)10:36
if you have time, you could look at the pages in the Dev wiki about the proposals for constructors10:37
<Bluelive>do you want an invitation to orkut btw ?
<bonniot>it's always interesting to get opinions about different people
<GummiEnte>Hello Blue...
<bonniot>what is orkut?
<Bluelive>hi Gummi
<GummiEnte>yes, what is orkut?
<Bluelive>eh, i guess a social network10:38
<bonniot>and more precisely?
<Bluelive>www.orkut.com 10:39
im kinda suprised you dont know it :)10:40
<GummiEnte>I also did'nt know.
Wasn't there already a page with maven under nice.sf.ent?10:41
<bonniot>since last friday :-)
<GummiEnte>link?10:42
<bonniot>you need an invitation to join orkut? and what do you find there personally?
Gummi_log: you should read nice-info :-)
<GummiEnte>Yes, I should... :/10:43
<Bluelive>well there are a few discussion groups starting, langsmiths for example are a group there
<bonniot>i'm reading langsmiths somethings. but it's on yahoo. how is it connected with orkut?10:45
Gummi_log: the generated pages for Swing are at http://nice.sourceforge.net/packages/swing/
and i started some doc about using maven in a Nice project: http://nice.sourceforge.net/cgi-bin/twiki/view/Doc/MavenGuide10:46
<GummiEnte>looks promising10:49
<bonniot>yes10:50
an important part is that it's possible to declare depenecies between packages, and maven will resolve them by downloading automatically was is needed10:51
<GummiEnte>what is required to setup an download server?
<bonniot>http server for the downloads, and ssh for uploads10:52
(as far as i know)10:53
<GummiEnte>so, the nice plugin you did already up0load to the repoos?
<bonniot>yes, uploaded to our sourceforge account10:55
<GummiEnte>ok, now I'm there: Many "A retyping is needed to use this constructor."... I was afraid of this point, but ok...10:57
<bonniot>where are you?10:58
<GummiEnte>Using the new cvs compiler...11:00
<bonniot>and you need more reytpings than before?11:01
<GummiEnte>More :-) Before I just don't need any (up to using compiler version 0.9.5preX)11:02
I now removed the old package.nicei's and get even more strange errors:11:03
[nicec] ~/Work/WorkingDirectory/e3m.300104/targets/com/condor_edv/e3m/util/list/package.nicei: line 1, column 24:
[nicec] T is not declared
Now I display the line 1 of this file:
package com.condor_edv.e3m.util.list;
I've also get errors:
[nicec] ~/Work/WorkingDirectory/e3m.300104/targets/com/condor_edv/e3m/util/list/package.nicei: line 1, column 87:11:04
[nicec] T is not declared
[nicec] ~/Work/WorkingDirectory/e3m.300104/targets/com/condor_edv/e3m/util/list/package.nicei: line 1, column 142:
[nicec] T is not declared
What about the column/line numbers?
<bonniot>i know
it's when loading a compiled package I suppose
<GummiEnte>yes, right.
<bonniot>we know put more information in the compiled package, instead of having everything in package.nicei11:05
that's simpler to load again and more efficient
to load back the info, we start a "mini-parser"
if that parser fails, it seems it reports as if the error was in package.nicei, but it's actually in the bytecode attribute11:06
<GummiEnte>a parser to parse the package.nicei?...
so the parser loads the compiled code, right?
<bonniot>no that existed before
<GummiEnte>ah, ok.
for what purpose you then need the package.nicei any more?11:07
<bonniot>it's the same parser definition, by the way, it's just the we parse several sources at the same time, so there are several instances of the parse
no everything is in the bytecode (yet)
anyway, it's a but when the info in the bytecode is not parsable11:08
could you isolate a testcase?
i also fail to understand why you would need more retypings now
but you said you feared it, so maybe you know more?
<GummiEnte>:) That's quite heavy to isolate. There are that many circumstances that may cause it...11:09
<bonniot>yes, but you can always go by binary search
if it seems difficult, I could investigate if I had the code11:10
or I could send you a version of the compiler that will print debug info about bytecode attributes
<GummiEnte>Well, I feared it, because I was just going to use the latest compiler (you knew), and with some early 0.9.6pre it doesn't work any more without retypoings. I did not have the time to do them at that point, so I feared the point, where I need to take the latest version...11:11
...that's now.
<bonniot>and what do the constructors look like?11:12
did you see in the compiler's changelog what could cause that?
<GummiEnte>Just send me the debugger... I'll wanted to do anyway more nice basics.
That was a time, I was in a hurry. So I missed the point.
<bonniot>can you work around by using -R ?11:13
<GummiEnte>I'll give it a try.11:14
Yes, one test succeeds with -R.11:16
<bonniot>ok, good
we shouldn't forget about this, but since you can work around i'll finish what i'm doing first, ok?
<GummiEnte>Well, second package doesn't succeed:11:17
~/Work/WorkingDirectory/e3m.300104/src/com/condor_edv/e3m/celleval/celleval.nice:11:18
Class com.condor_edv.e3m.celleval.Visibilitymodifier has no constructor
Code:
visibility modifier for the variables
enum Visibilitymodifier {PUBLIC, PRIVATE}
So, I'm not sure if I missed the latest changes, so that the syntax of enum is wrong...11:19
<bonniot>how do you use the enum?11:20
<GummiEnte>Aeh, let me short explain:
Pakacge A use enum and itself depends on some other packages...
Package B depends on A but itself not direclty uses the enum.... So while recompiling-all B the error occurs.11:21
<bonniot>hum, we have a testcase with enums and two packages, so it's supposed to work11:23
could you find a testcase for this one?
<GummiEnte>I'll give it a try.
Aeh, what about:11:27
package enum.A;
enum VM {PU, PR}
~/Work/WorkingDirectory/e3m.300104/src/enum/A/a.nice: line 1, column 9:
Encountered "enum".
Was expecting:
<IDENT> ...
<bonniot>works for me. what version is that?11:28
<GummiEnte>rubber@tower:~/Work/WorkingDirectory/e3m.300104 > nicec --version
java nice.tools.compiler.console.fun --runtime=/site.usr/local/share/java/nice.jar --native-compiler=/site.opt/gcc-3.4/bin/gcj --version
Nice compiler version 0.9.6 prerelease (build 2004.02.02, 09:45:03 UTC)
Compiled using JDK 1.4.2
<bonniot>are u sure that's the one you run when it fails?11:31
<GummiEnte>Ah, I know what was the error! package ENUM....
<bonniot>yep :-)11:32
whatr editor do you use?
<GummiEnte>I only come to this that fast, since I'm testing javacc and also encountered how it works.
Xemacs
<bonniot>don't you use the Nice mode?11:33
<GummiEnte>Yes.
<bonniot>it should put the cursor on the exact character where the error occurs
so you know the error is on the first line, not the second
<GummiEnte>Ah, I'm not compiling in emacs...
But, you're right...11:34
<bonniot>C-c C-b :-)
who needs a shell when he has emacs :-)
<GummiEnte>:) Where to tweak the sourcepath and destination path?11:35
<bonniot>i use, at the end of the file:11:36
.// Local Variables:
.// nice-xprogram: "nicec -r -a test.jar"11:37
(without the ".", that's for IRC)
so you can setup anything you want
.// End:
as the last line
<GummiEnte>Well, simply adding this to the file I'm starting C-c C-b doesn't work as I suspected...11:40
<bonniot>you need to reload the file for the variables to be read by emacs11:41
<GummiEnte>:)
Ok, but a plain testcase is not working up to now ...11:43
<bonniot>wdym?11:44
<GummiEnte>I meant, I did not find an easy testcase up to now... 11:45
<bonniot>ok11:46
can't you start with a copy of your program, removing parts that you think are not relevant until the bug disappears, then put back that part, ...
?
<GummiEnte>Yes, that's waht I'm doing now... I just thought it would something easy to emulate, but it isn't...11:48
Well, the following turns out: 1) When all recompiling, the "need retyping error"`s disappear; 2) the enum bug is a really ugly thing, but I did have another nice.jar in classpath... (also possible, that this was the error for the retypings; isn't there an easy way to generate the needed runtime files for nice to run?)11:58
I know, that nicec -a produces an file, that is sufficient, and that is already the way, I extract the few classes to produce a dll...11:59
...for the current compiler...
...so the enum wasn't a bug, it was my lazyness just putting the complete nice.jar to the classpath instead of just the needed runtime nice classes... :(12:00
<bonniot>why isn't the -a option good in your case?12:03
<GummiEnte>-a does only include all the classes for one package, or am I wrong?12:05
<bonniot>no, for all the imported packages too12:06
<GummiEnte>Ok, that I did'nt know.12:07
But the most outer classes are still java classes...
<bonniot>yes, those are not included
but you can add the to the jar afterwards (with jar uf ... )
<GummiEnte>And I produced for most packages small independent dll's, so that after a small change in one of the classes I don't need to release a complete new huge dll.12:08
<bonniot>your dlls are nice packages compiled by gcj?12:09
<GummiEnte>yes, some of them, but also java packages... and mixed packages.
and even native parts.12:10
so, but just everything together, give it a good mix, and then try to have something that still is without bugs... 12:11
(not but, put)
<bonniot>that's what you do, you mean?
<GummiEnte>Ok, I'm relieved; with -R I can again compile everything, but the time to compile is now a factor 15 higher.12:12
<bonniot>is there a change in the way nicec produces compiled code that would make it easier for you to produce your libraries?
and without -R? was it that nice.jar causing the problem, or is there a bug?12:13
<GummiEnte>Well, I assume not. The way nicec works, is correctly for the most cases. I only need the nice-runtime.jar for each new compiler (or are these classes that don't change?).12:14
[nicec] ~/Work/WorkingDirectory/e3m.300104/targets/com/condor_edv/e3m/util/list/package.nicei: line 1, column 24:
[nicec] T is not declared
That was the bug from tomorrow.
...well, bug maybe wrong word, but you already explained.12:15
I'm currently emulating -R with deleting the package.nicei's after each step... (I'm using ant for the complete compile run)
<bonniot>there is the equivalent of -R in the ant task, if that's what you are looking for12:19
"T is not declared": i would indeed say it's a bug
would it help to have the nice-runtime.jar file packaged somewhere?12:20
<GummiEnte>it would help, but it should only get an low priority...12:21
<bonniot>ok
<GummiEnte>do you have enough info to reproduce the bug...
?
<bonniot>i'm afraid not12:22
<GummiEnte>Ok, I'll have to leave in a few minutes, but if you send me the debug-version, with some hints for what I have to look for, I'll do it in the late afternoon.12:23
Ok, recompile_all also works now; I initially used the remove method (of the package.nicei), since only one package caused an error, so only this packages needs to be recompiled, but now quite most of the packages needs to be recompiled...12:29
...sadly is, that now the compile time raised from under one 30 seconds to 2-3 minutes... but, for what purpose are the resources in the processor... it should work.12:30
Ok, I'll leave now. See you this afternoon.12:31
* GummiEnte leaves
* arjanb joins13:13
hi
<bonniot>hello arjan!13:15
glad to see you :-)
how are you doing?13:16
<arjanb>good, i have been away for only 1 day but have much to catch up
<bonniot>yes :-)13:20
it's getting interesting these days...
i'm fixing the # dispatch bug at the moment
<arjanb>i have written the exp local var code but it contains a few bugs i haven't tracked down yet13:22
<bonniot>ok13:25
did you look at Issac's reports about value dispatch and enums13:26
<arjanb>not yet13:27
<bonniot>the CIA is on strike :-)13:43
<arjanb>that out of memory error is not suprising14:03
<bonniot>why?14:06
<arjanb>9^9 alternative don't fit in memory
<bonniot>isn't there a way to optimize?14:15
<arjanb>not easily and i think this won't happen in real world code14:16
<bonniot>and why does the second version pass?14:18
<arjanb>enums are treated as a closed set so the alternative generation works differently14:20
enum Color { red, blue, yellow }14:21
void foo(Color c);
foo(red) {} foo(blue) {} foo(yellow) {}14:22
method foo is covered when Color is an enum
<bonniot>i see14:37
it seems my sf mail was indeed delayed for long, and it's arriving at the moment...15:07
<arjanb>the sf website is very slow15:30
* CIA-3 joins15:42
03bonniot * 10Nice/ (2 files in 2 dirs): 15:49
When a return is inside a try/finally, store the result in a method-level
local bytecode variable, to make sure that the finally blocks do not use
the same slot (closes #888452).
<bonniot>i'll be away for a short while, then I'll try to have a look at your patch15:51
<arjanb>ok
<bonniot>are you working on something atm?
<arjanb>looking at dispatch issues isaac found15:52
<bonniot>ok
you mean the # thing?
<arjanb>no15:53
<bonniot>ah good, since I already fixed that one ;-)
<arjanb>:-)
<bonniot>for bugs that are reported, but could use the "Assigned to" feature to mark when we are working on it, to avoid doing twice the same thing, don't you think?15:55
<arjanb>no need for that as long we are both here on #nice15:57
<bonniot>true
* pelmatochromis joins17:06
* pelmatochromis leaves
<bonniot>back17:53
arjan, don't you have testcases for exp vars? what is failing with your patch?17:54
<arjanb>no testcases yet 17:55
<bonniot>so what is wrong?17:56
<arjanb>but it fails either with NPE in typechecking or saying that the var is not declared
<bonniot>when implementing a new feature, it's a good idea to start with writing the testcases17:58
so you can keep track of all the cases that caused you a problam
<arjanb>i know18:01
<bonniot>ok, got the NPE18:05
do you have a case with the "not declared" error?18:06
<arjanb>void foo(String x, ()->void func) {
println("arg is "+x);
func();
}
void main(String[] args){
foo(let String x = "abc") { println(x); }
}
<CIA-3>03bonniot * 10Nice/src/mlsub/typing/Polytype.java: Make toString more robuts, which is especially important for debuging.18:22
<bonniot>you are going to be disgusted:18:41
look at typecheck.nice:678
<arjanb>what's wrong with that?18:42
<bonniot>well, what do you see?
<arjanb>missing else18:43
<bonniot>yep
<arjanb>i could have spent many hours in finding this 18:44
<bonniot>using a debuger could help, since you would trace where execution goes18:47
or an editor, which can do the indenting for your
for you
<arjanb>if it was pure nice code the compiler would have detected it18:48
*away for meal*18:50
<bonniot>true
<arjanb>*back*19:13
<bonniot>so i let you go on with that featue19:22
<arjanb>now it fails at compilation
<bonniot>it seemed to me that more code could be shared with Block.LocalVariable19:23
yes, i saw the failure19:24
basically, why not have a SymbolExp around the Block.LocalVariable that you created?19:25
then the code is already implemented (for instance compilation of assignment)
<arjanb>can try that19:30
but i want to use as less as possible other code19:31
* GummiEnte joins19:34
Hello again
<arjanb>hello
<GummiEnte>Hello Arjan.19:35
How can I use the compiler in debug mode?19:36
Just a flag while running nicec or do I need to compile the compiler with another option?
<arjanb>have a file .nice.conf in your user home19:37
and put it that file things like debug.resolution = true19:38
see bossa.util.Debug for all possible debug options19:39
<GummiEnte>Ok, thnx.
<bonniot>hello chris19:42
yes, it depends what you need
for this morning's bug, i don't think there is an option yet
<GummiEnte>Hello Daniel.
<bonniot>but I can add it
<GummiEnte>Ok. I'll wait for your commit.19:43
<bonniot>something interesting is: debug.alwaysDumpStack = true
i'd like to see the stack trace that gives when you trigger your bug
that would help setting up further debug info19:44
<GummiEnte>Ok, then it comes:
java.lang.Exception19:45
at bossa.util.Internal.printStackTrace(Internal.java:29)
at bossa.util.UserError.<init>(UserError.java:28)
at bossa.util.UserError.<init>(UserError.java:46)
at bossa.util.UserError.<init>(UserError.java:33)
at bossa.syntax.fun.analyse(~/Work/WorkingDirectory/Nice/src/bossa/syntax:901)
at bossa.syntax.dispatch.analyse(~/Work/WorkingDirectory/Nice/classes/bossa/syntax)
at bossa.syntax.fun.analyse(~/Work/WorkingDirectory/Nice/src/bossa/syntax:1061)
at bossa.syntax.dispatch.analyse(~/Work/WorkingDirectory/Nice/classes/bossa/syntax)
at bossa.syntax.fun.analyse(~/Work/WorkingDirectory/Nice/src/bossa/syntax:1155)
at bossa.syntax.dispatch.analyse(~/Work/WorkingDirectory/Nice/classes/bossa/syntax)
at bossa.syntax.fun.analyse(~/Work/WorkingDirectory/Nice/src/bossa/syntax:1120)
at bossa.syntax.dispatch.analyse(~/Work/WorkingDirectory/Nice/classes/bossa/syntax)
at bossa.syntax.fun.analyse(~/Work/WorkingDirectory/Nice/src/bossa/syntax)
at bossa.syntax.dispatch.analyse(~/Work/WorkingDirectory/Nice/classes/bossa/syntax)
at bossa.syntax.GlobalVarDeclaration.resolve(GlobalVarDeclaration.java:89)
at bossa.syntax.Node.doResolve(Node.java:261)
at bossa.syntax.AST.resolve(AST.java:99)
at bossa.syntax.AST.resolveScoping(AST.java:122)
at bossa.modules.Package.load(Package.java:248)
at mlsub.compilation.fun.lambda24(~/Work/WorkingDirectory/Nice/src/mlsub/compilation:28)
at mlsub.compilation.fun.apply1(~/Work/WorkingDirectory/Nice/src/mlsub/compilation)
at gnu.expr.ModuleMethod.apply1(ModuleMethod.java:89)
at nice.lang.fun.foreach(~/Work/WorkingDirectory/Nice/stdlib/nice/lang:365)
at nice.lang.dispatch.foreach(~/Work/WorkingDirectory/Nice/classes/nice/lang)
at mlsub.compilation.fun.loadComponent(~/Work/WorkingDirectory/Nice/src/mlsub/compilation:28)
at mlsub.compilation.dispatch.loadComponent(~/Work/WorkingDirectory/Nice/classes/mlsub/compilation)
* GummiEnte leaves
<Bluelive>:))
* GummiEnte joins19:46
at nice.tools.compiler.console.fun.main(~/Work/WorkingDirectory/Nice/src/nice/tools/compiler/console:24)
~/Work/WorkingDirectory/e3m/src/com/condor_edv/e3m/util/db/dbutil.nice: line 19, column 20:
Class org.postgresql.Driver is not declared
Last drop was to much :(
<bonniot>hum, that does not look like that same error message...19:47
more like a classpath error
<arjanb>bossa.syntax.fun.analyse(~/Work/WorkingDirectory/Nice/src/bossa/syntax:901) strange analyse.nice has less than 901 lines
<bonniot>yes, you know, the line numbers are not recomputed in this case19:48
that could easily be done in this case
<GummiEnte>Ahhhhhh :(
<bonniot>?19:49
<GummiEnte>You're right with the classpath... It was the wrong working directory... :///
<bonniot>not a big problem, is it? :-)
<GummiEnte>Well, in the right working directory I get something even harder:19:50
If using with -R no problem at all, but without:19:51
Stack trace:
Exception in thread "main" java.lang.NullPointerException
at bossa.syntax.UserOperator.toString(UserOperator.java:85)
at java.lang.String.valueOf(String.java:2131)
at java.lang.StringBuffer.append(StringBuffer.java:370)
at bossa.syntax.Node.addChild(Node.java:49)
at bossa.syntax.MethodDeclaration.<init>(MethodDeclaration.java:58)
at bossa.syntax.UserOperator.<init>(UserOperator.java:33)
at bossa.syntax.CustomConstructor.<init>(CustomConstructor.java:47)
at bossa.syntax.CustomConstructor$ImportedCustomConstructor.<init>(CustomConstructor.java:267)
at bossa.syntax.CustomConstructor.load(CustomConstructor.java:260)
at bossa.modules.Package.importMethods(Package.java:631)
need more?
Ok, and I also found the bug from this morning... :)19:53
java.lang.Exception
at bossa.util.Internal.printStackTrace(Internal.java:29)
at bossa.util.UserError.<init>(UserError.java:28)
at bossa.util.UserError.<init>(UserError.java:46)
at bossa.util.UserError.<init>(UserError.java:33)
at bossa.syntax.fun.unknownIdent(~/Work/WorkingDirectory/Nice/src/bossa/syntax:748)
at bossa.syntax.dispatch.unknownIdent(~/Work/WorkingDirectory/Nice/classes/bossa/syntax)
at bossa.syntax.TypeIdent.resolveToTypeSymbol(TypeIdent.java:72)
at bossa.syntax.TypeIdent.rawResolve(TypeIdent.java:79)
at bossa.syntax.Monotype.resolve(Monotype.java:106)
at bossa.syntax.fun.addVar(~/Work/WorkingDirectory/Nice/src/bossa/syntax:1192)
at bossa.syntax.dispatch.addVar(~/Work/WorkingDirectory/Nice/classes/bossa/syntax)
at bossa.syntax.fun$addVars.lambda25(Unknown Source)
at bossa.syntax.fun$addVars.apply1(Unknown Source)
at gnu.expr.ModuleMethod.apply1(ModuleMethod.java:89)
...
~/Work/WorkingDirectory/e3m.300104/targets/com/condor_edv/e3m/util/list/package.nicei: line 1, column 142:19:54
T is not declared
<bonniot>ok, that's interesting
for the first one, it seems there is a null contract19:55
i'll make toString more rebust19:57
<GummiEnte>good, but fixes this the problem?19:58
<bonniot>atm it's failing while trying to print an internal error message...
it will let us see the message
<GummiEnte>ah, ok.
I'll wait for your commit.
<bonniot>so after, you should retry the first case19:59
<CIA-3>03bonniot * 10Nice/src/bossa/syntax/UserOperator.java: Make toString more robust.
<bonniot>it's there :-)20:00
<GummiEnte>I'm already building a new compiler...20:01
Ok, so the following message appears:20:05
Stack trace:
Exception in thread "main" bossa.util.InternalError: null child in Node.addChild for node method <init>null
at bossa.util.Internal.error(Internal.java:86)
at bossa.syntax.Node.addChild(Node.java:49)
at bossa.syntax.MethodDeclaration.<init>(MethodDeclaration.java:58)
at bossa.syntax.UserOperator.<init>(UserOperator.java:33)
at bossa.syntax.CustomConstructor.<init>(CustomConstructor.java:47)
at bossa.syntax.CustomConstructor$ImportedCustomConstructor.<init>(CustomConstructor.java:267)
at bossa.syntax.CustomConstructor.load(CustomConstructor.java:260)
at bossa.modules.Package.importMethods(Package.java:631)
at bossa.modules.Package.getClassExp(Package.java:617)
at bossa.syntax.NiceClass.prepareCodeGeneration(NiceClass.java:601)
at bossa.syntax.NiceClass.<init>(NiceClass.java:44)
at bossa.parser.Parser.classDefinition(Parser.java:1179)
at bossa.parser.Parser.definition(Parser.java:2442)
need more?20:06
<arjanb>no
daniel: i have the typeless exp local var working now20:07
<bonniot>great20:10
i'll commit the ability to get debug info about bytecode attributes20:14
the property to set is:
debug.bytecodeAttributes = true
<GummiEnte>Does the parser not work correctly or is it something else?20:15
Nothin new in cvs...until now...20:16
<bonniot>yes, just commiting
you'll see the commit log here on irc...
<GummiEnte>:)
Just this change: P src/gnu/bytecode/ClassFileInput.java ?20:17
<CIA-3>03bonniot * 10Nice/src/gnu/bytecode/ClassFileInput.java: Correctly set attributes' container info.
<bonniot>more to come
<GummiEnte>Do I need for these change a make clean bootstrap all ?
Or is it sufficient to do a simple make?
<bonniot>you need to recompile java classes too20:18
<CIA-3>03bonniot * 10Nice/src/bossa/ (util/Debug.java syntax/FormalParameters.java): Allow to get debuging information about bytecode attributes.
<bonniot>so make complete should be OK
<GummiEnte>That does mean? Do a make clean bootstrap all...?!
<bonniot>that's it
<GummiEnte>ok.
<bonniot>you don't need to specify bootstrap usually, other targets depend on it20:19
<GummiEnte>What is this CIA?
<bonniot>this is the important part:
stable: clean bootstrap compiler1 ant testengine archiveOld
complete: stable compiler2 archive2
fixpoint: complete compiler3 archive3
world: fixpoint check test
in growing order of length :-)
<arjanb>CIA: http://cia.navi.cx
<GummiEnte>thnx, arjan20:20
<bonniot>CIA is a service that listens to CVS commits, makes statistics and can advertise commits on irc channels
<GummiEnte>:)
Was that all?
Or more changes?
<bonniot>no, that's it20:27
sorry, i have a guest, so i'll be away for some time...
<GummiEnte>ok, I'll post the last entry before the stacktrace:
Read attribute parameters="com.condor_edv.e3m.util.list.Set<com.condor_edv.e3m.celleval.Trigger> triggerlist = new SetImpl(), nice.lang.boolean validFlag = true, String key, EvalResult arg = cast(null), VariableLayer layer, Class type = cast(null), boolean typecheck = true, boolean strong_typecheck = false, boolean constant = false, Visibilitymodifier visibility = [com.condor_edv.e3m.celleval.Visibilitymodifier PUBLIC]" from new com.condor_edv.e
also away for some time...20:28
<bonniot>is there one entry where the type T appears?20:44
<GummiEnte>What do you mean?20:45
ParseException: bossa.parser.ParseException: Encountered "PUBLIC ]" at line 1, column 389.
This is the exception in that case...20:46
Do you mean the other bug?
What is a monotype?20:54
<arjanb>a type without loose typeparameters20:56
<GummiEnte>Is A<T> a valid monotype?
<arjanb>that's a polytype
<GummiEnte>Or has T to be explicit?
<arjanb>String, List<int> = monotype List<T> = polytype20:57
<GummiEnte>Ok, I understand.
As far as I understand the Parser, it tries to recognize '[com.condor_edv.e3m.celleval.Visibilitymodifier PUBLIC]' as an expression, but that isn't a valid expression, I assume.20:58
<arjanb>right20:59
<GummiEnte>So, either the parse section for formal parameters has to be adjustet or the value of the attributes is wrong. Were gets this written?21:01
Where! 21:02
Not were... :(
<arjanb>what's the source code this attribute is generated from?
<GummiEnte>Let me see if I can find that...21:03
Aeh, no package.nicei contains ''[com.condor_edv.e3m.celleval.Visibilitymodifier PUBLIC]' ?!21:04
Where does that come from?
<arjanb>from a bytecode attribute i think it's a constructor attribute21:05
<GummiEnte>Ah, Ok. It's in the generated enum class Visibilitymodifier.21:06
Ah, that was wrong...
<arjanb>but the problem is an class using that enum in a field i think21:07
<GummiEnte>It's a class that has got a field with an enum.
right.
Visibilitymodifier visibility = PUBLIC; // that is the source in a class.
and that is the entry in the package.nicei: com.condor_edv.e3m.celleval.Visibilitymodifier visibility = PUBLIC;21:08
<arjanb>yes now we need to find where these [ ] come from21:09
<GummiEnte>rubber@tower:~/Work/WorkingDirectory/e3m.300104 > dis targets/com/condor_edv/e3m/celleval/VariableEntity.class 21:11
Warning: Unknown Attribute:
parameters -> Unknown
Warning: Unknown Attribute:
SourceDebugExtension -> Unknown
Is this something we should take care about?21:12
<arjanb>no
i mean where these [ ] are written in an attribute
<GummiEnte>So that I understand the thing: Nice writes some "additional" arguments to the classes? e.g. parameters, right?21:13
...attributes to say (not arguments)...?21:14
<arjanb>yes they are needed for custom constructors21:15
<GummiEnte>So, that's the cause, why dis cannot recognize them, correct?
<arjanb>dis does only know java attributes21:16
<GummiEnte>Ok. And where is the code, that generates the attributes?
<arjanb>to generate this attribute the various toString() methods in bossa.syntax are used21:17
<GummiEnte>How does that work? What should these toString methods return?21:18
<arjanb>it should return valid source code that they represent21:20
<GummiEnte>Ah, Ok.
So, if I understand the class OptionalParameter right, the default value already contains the [ ]...21:21
<arjanb>i think i found the [ ] in OverloadedSymbolExp.toString21:22
<GummiEnte>How did you get there :)21:23
overloading resolution does what?
<arjanb>finding out which 'foo' it can be if you write '... = foo' or 'x.foo("abc")'21:26
<GummiEnte>so, it is "simply" the handling of double identifiers?21:27
<arjanb>yes but it's not simple because you can have dozens of 'foo's some fields, some methods, some global constants21:29
<GummiEnte>Therefore I used the ""... :)21:30
<arjanb>overloading resolution should be done before writting the attributes21:32
but doesn't happen for some reason
<GummiEnte>Ah, Ok. I just wanted to write, that the printing method toString in OverloadedStringExp is not so good for the parser.21:33
I assume it is for debug only?
<arjanb>for error message of ambigious symbols21:34
<GummiEnte>ok.
which part controls the resolution?21:35
<arjanb>it happens in typechecking stage but i don't know21:36
<GummiEnte>Typing.leq <-- what is this?21:39
...what does leq mean?
<arjanb>less or equal
<GummiEnte>Simply taht :)21:40
void typecheck(mlsub.typing.Monotype domain)
{
defaultValue = defaultValue.noOverloading();
//defaultValue = defaultValue.resolveOverloading(new mlsub.typing.Polytype(domain));
bossa.syntax.dispatch.typecheck(defaultValue);
why is resolveOverloading commented out?21:41
Aeh, this is in FormalParameters...
...typecheck(domain)
This is exactly for the OptionalParameter.21:42
<arjanb>this piece is not the problem21:45
<GummiEnte>It's hard to get through the whole code and don't loose the control... :)21:53
<bonniot>i'm just reading through what happened21:55
a correction: List<T> is a monotype
<T> List<T> is a polytype
polytype = monotype + constraint
<GummiEnte>And what is List<int>?21:56
<bonniot>a monotype21:58
the [ .... ] is printed when overloading resolution hasn't happened yet, as you found21:59
<GummiEnte>Ok.
why do you once resolve overloading and once not?22:00
<arjanb>daniel: shouldn't toString be split up in one for error messages and a prettyprint22:03
<bonniot>Gummi_log: wdym "once ... once not" ?22:07
<arjanb>sometimes ... sometimes not22:08
<GummiEnte>Well, what is the rule to resolve / not resolve overloading?
<bonniot>arjanb: it could be, but I think if it's best if toString always return a parsable string, when possible
Gummi_log: overloading must always be resolved eventually22:09
<GummiEnte>eventually?
<bonniot>the compiler must just do it when it has most information, so it can resolve ambiguities as cleverly as possible22:10
<GummiEnte>hmm, that sounds like the compiler should know what it does...22:11
<bonniot>shouldn't it? ;-)22:15
so what do com.condor_edv.e look like in source?22:18
<GummiEnte>?22:19
<arjanb>the class22:21
<GummiEnte>com.condor_edv.e <-- this class??? That does not exist...22:22
Or com.....celleval.VariableEntity=
<arjanb>the class you showed the attribute from22:23
<GummiEnte>That is VariableEntity... Ok:
enum Visibilitymodifier {PUBLIC, PRIVATE}
class VariableEntity extends TSElement {
...
private String key;22:24
private EvalResult arg = cast(null);
private VariableLayer layer;
// visibility
Visibilitymodifier visibility = PUBLIC;
boolean isPrivate() = visibility == PRIVATE;
boolean isPublic() = visibility == PUBLIC;
void setVisibility(Visibilitymodifier vm) = visibility = vm;
...
}
Nothing special I assume.
abstract class TSElement implements TSHook {22:25
private com.condor_edv.e3m.util.list.Set<Trigger> triggerlist = new SetImpl();
private boolean validFlag = true;
...some methods/functions...22:26
}
in VariableEntity there are also the following fields:22:27
<bonniot>so com.condor_edv.e was just a prefix, you did not copy the whole output right?
<GummiEnte> private Class type = cast(null);
private boolean typecheck = true;
private boolean strong_typecheck = false;
<arjanb>the line was cut off i think
<GummiEnte>Where is the output? I thought I complete posted...?22:28
Can you give me the time?
<bonniot>no i don't have time stamps here
<GummiEnte>And on http://confer09.condor-edv.com/nice@freenode/2004-02-02.html22:29
<bonniot>it ended with:
[com.condor_edv.e3m.celleval.Visibilitymodifier PUBLIC]" from new com.condor_edv.e
<GummiEnte> also away for some time...
<arjanb>20:33 <GummiEnte> Read attribute parameters="com.condor_edv.e3m.util.list.
<GummiEnte>Ah, ok... that was cut off :(22:30
Read attribute parameters="com.condor_edv.e3m.util.list.Set<com.condor_edv.e3m.celleval.Trigger> triggerlist = new SetImpl(), nice.lang.boolean validFlag = true, String key, EvalResult arg = cast(null), VariableLayer layer, Class type = cast(null), boolean typecheck = true, boolean strong_typecheck = false, boolean constant = false, Visibilitymodifier visibility = [com.condor_edv.e3m.celleval.Visibilitymodifier PUBLIC]" from new com.condor_edv.e22:31
ParseException: bossa.parser.ParseException: Encountered "PUBLIC ]" at line 1, column 389.
<bonniot>in a simple case, this behaviour does not happen, the value has no [ ... ]
that's also cut
<GummiEnte>Ahhh, again.. I have to split the line:
<bonniot>maybe it's a limitation of your irc client
<GummiEnte>Read attribute parameters="com.condor_edv.e3m.util.list.Set<com.condor_edv.e3m.celleval.Trigger> triggerlist = new SetImpl(), nice.lang.boolean validFlag = true, String key, EvalResult arg = cast(null), VariableLayer layer, Class type = cast(null), boolean typecheck = true, boolean strong_typecheck = false, boolean constant = false, Visibilitymodifier visibility = [com.condor_edv.e3m.celleval.Visibilitymodifier PUBLIC]" from
new com.condor_edv.e3m.celleval.VariableEntity(com.condor_edv.e3m.util.list.Set,boolean,java.lang.String,com.condor_edv.e3m.celleval.EvalResult,com.condor_edv.e3m.celleval.VariableLayer,java.lang.Class,boolean,boolean,boolean,com.condor_edv.e3m.celleval.Visibilitymodifier)22:32
It's http://www.bitchx.org/, but I don't know.
* GummiEnte leaves22:33
* GummiEnte joins
Sorry.
<arjanb>isn't it just a limitation of the irc protocol22:34
<bonniot>dunno
<GummiEnte>Now you should have got the whole line...22:35
<bonniot>yes, thx
it would be good to reproduce the bug on a small example22:36
now that we know quite precisely what the bug is related to, can't you take your code and simplify it massively?22:41
<arjanb>does the compiler detect a type error if you change the value of that Visibilitymodifier field to some number?22:44
* eGummiEnt joins22:45
hello... my dialup-account was forced to change its IP :(
<arjanb>does the compiler detect a type error if you change the value of that Visibilitymodifier field to some number?22:46
<bonniot>now that we know quite precisely what the bug is related to, can't you take your code and simplify it massively?
<eGummiEnt>Ok, let me do the first thing first... you mean field=1; // still with the same type?22:47
<arjanb>yes
<eGummiEnt>Well, if I change it to 1, the compiler comes one step further, but only up to the other bug (with the T). And with -R it gives me: 22:49
Incorrect type in assignment to visibility
Found : nice.lang.byte
Expected: com.condor_edv.e3m.celleval.Visibilitymodifier
<arjanb>strange
typechecked but not resolved?22:50
<eGummiEnt>Let me reduce the complete code...22:51
* GummiEnte leaves22:53
* arjanb slaps arjanb around a bit with a large trout23:06
<eGummiEnt>Well, I can't believe, but the following causes the error:23:08
package com.condor_edv.e3m.celleval;
visibility modifier for the variables
enum Visibilitymodifier {PUBLIC, PRIVATE}
variable entity aka variables
class VariableEntity {
// visibility
Visibilitymodifier visibility = PUBLIC;
}
Yes, verified with really clean targets directory...23:09
could someone reproduce?23:12
<bonniot>trying23:15
i suppose some // got eaten, right?23:16
<eGummiEnt>yes :(
<bonniot>yes, i get "null child in Node.addChild for node method <init>null"
<eGummiEnt>Ok. :)23:17
with debug.bytecodeAttributes=true
<bonniot>strange this is that a seemingly identical case that did not trigger the bug
<eGummiEnt>you'll also get:
Read attribute parameters="Visibilitymodifier visibility = [com.condor_edv.e3m.celleval.Visibilitymodifier PUBLIC]" from new com.condor_edv.e3m.celleval.VariableEntity(com.condor_edv.e3m.celleval.Visibilitymodifier)
ParseException: bossa.parser.ParseException: Encountered "PUBLIC ]" at line 1, column 81.
<bonniot>i have the first line, but not the parse exception23:19
<eGummiEnt>Aeh, I added this...
<bonniot>what?
<eGummiEnt>...to the compiler... not just eaten up the ParseException but also:23:20
catch (bossa.parser.ParseException ex) {
if (Debug.bytecodeAttributes)
Debug.println("ParseException: "+ex);
return null;
<bonniot>ok23:21
that's not really surprising :-)
<eGummiEnt>I thought this might be usefull (for me it was).
No...
<bonniot>yes, it's useful
the real error is not the NPE, it's that [ ... ] get written
<eGummiEnt>That I also understand. But I haven't got an overview, where the whole thing starts... 23:22
I'm afraid, that if I get in too deep contact with the compiler, I would need more and more of it... I know, that I would do so, if the critical mass is reached...23:23
...same was my "experiment" with nice: "Let me see, what we can do with it; lets write a small parser for the evaluation of primitive statements"... Well, Ok, now I'm going to rewrite it, but I was new to nice development... 23:25
.23:26
<bonniot>there is lots of work to do on tools and libraries for Nice. so if you have time to give to the community, it might be a better investment to work on those, since it would probably be faster to get started23:28
of course it depends on what you feel like23:29
<eGummiEnt>I prefer the fiddly things.
What about nicedoc btw.?23:30
<bonniot>what do you call fiddly?
<eGummiEnt>Well, everything that is hard to solve, but if it works, you fell a great pleasure.23:31
<bonniot>nicedoc: i saw a prototype, gave some ideas to improve it. i suggested that it would be added to CVS, but for no answer yet
i see :-)
<eGummiEnt>That's the reason, why I do not take fright from a huge amount of code. I'll have trouble to understand all details at beginning, but if I managed it, I can say, "Yes, I got the beast"... :)23:32
<arjanb>where should i put the exp local var testcases?23:34
<bonniot>in expressions/expressionLocalVar.testsuite23:36
<CIA-3>03xoltar * 10Nice/web/manual.xml: 23:37
Added section on declaring interfaces, including default implementations.
Updated value dispatch section to cover char, null, enums, and class instances.
Mention range objects in passing in the foreach section.
Updated multi-line strings with internal quotes.
<eGummiEnt>Well, I'll leave now. CU tomorrow...23:40
<arjanb>cu
<bonniot>bye
<eGummiEnt>bye
* eGummiEnt leaves
<CIA-3>03arjanb * 10Nice/ (7 files in 3 dirs): 00:19
Implemented expression local variables. syntax: '("let"|"var") [type] name = expression' they can be used as argument of some call.
example: using(let fileInput = new FileInputStream(somefile)) { ... }

Generated by Sualtam