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

Using timezone: Greenwich Mean Time
<arjanb>good night01:36
* arjanb leaves
* bonniot leaves01:52
* fcb joins03:30
I don't suppose anyone is awake at the moment?03:32
I'm having an error with the compiler:03:33
cd src; javac -classpath "/home/frank/Nice/classes:/home/frank/Nice/classes.old" -sourcepath "/home/frank/Nice/src:/home/frank/Nice/stdlib" -O -g -d "/home/frank/Nice/classes" nice/tools/compiler/JavaVersion.java
java -classpath classes nice.tools.compiler.JavaVersion > src/nice/tools/compiler/javaVersion
We are using compiler 1.4.1_02 (at least our java version let us assume that)
cd src/nice/tools/compiler; ./setBuildDate "0.9.4" "`cat javaVersion`" "prerelease"
JAVA="java" /home/frank/Nice/bin/nicec --exclude-runtime -d "/home/frank/Nice/classes" --sourcepath="/home/frank/Nice/stdlib:/home/frank/Nice/src" -R bossa.syntax
Exception in thread "main" java.lang.NoClassDefFoundError: bossa/modules/CompilationListener
make: *** [compiler2] Error 1
any thoughts?
* arjanb joins07:44
* fcb leaves07:52
* arjanb leaves09:10
* arjanb joins13:57
* fcb joins14:12
hello again
i see you have problems with bootstrapping the compiler
<fcb>yes, I sent the message but then my connect failed for a few hours14:14
any thoughts about why it isn't working?14:15
<arjanb>no i don't use the makefile
what do you use?
<arjanb>i made a batch file for compiling14:16
<fcb>so basically things aren't looking too good for me, are they?14:17
<arjanb>there is a log file online of the automatic tests
made you can compare that with your console output14:18
made -> maybe
<fcb>is that what my output is meant to look like?14:20
<arjanb>yes except for the debugging output14:21
<fcb>well, I posted mine on here before, and they are pretty different
maybe i'll try from scratch again14:22
I need a compiler compiler?14:23
i think it tried to download it for me, but I don't know where it put it
<arjanb>you mean the javacc library?14:24
<arjanb>have you tried to download javacc manually?14:27
<arjanb>you could do that and put it in the nice/external directory14:29
Compilation of the Ant task definition failed.14:49
NICE_ANTJAR or ANT_HOME should be set, Ant should be in the CLASSPATH or at least linked to by ./external/ant.jar
do you think that could have anything to do with it?
<arjanb>i don't think so14:50
you could disable the ant part is not neccesary when you don't use Ant14:51
<fcb>I don't know what to do anymore14:58
the ANT thing is the only that that obviously failed
<arjanb>you should mail daniel about this maybe he can help you14:59
<fcb>yes, I will do15:00
thanks for you time
<arjanb>no problem15:02
if you find missing documentation or bad error messages while using Nice please let us know15:06
<fcb>yes, I will do15:19
actually, I just had a thought - after I've compiled it all, what am I supposed to run? bin/nicec?15:20
<arjanb>no the jar file is put in share/java/15:22
bin/nicec is only a temporarily compiler15:23
<fcb>except there is nothing in that directory for me
<arjanb>can happen if the compilation goes wrong15:24
<fcb>yeah. ok. well, goodnight15:25
<arjanb>good night15:26
* fcb leaves
* bonniot joins16:18
have you got mail about Frank's problem with bootstrapping?16:20
<bonniot>yes, asnwered16:28
his jar tool is broken16:29
does not support jar -u
<arjanb>that's strange
<bonniot>already saw that before16:30
<arjanb>jsr-175 metadata has a public review document now17:02
<bonniot>is it important for us?17:25
<arjanb>not at the moment but jsr-175 will be included in java 1.517:26
interesting point is that there will be annotions for java compiler17:28
an @override tag will make javac check that you override a methods instead of overload17:29
@Overrides public boolean equals(Foo that) { ... }17:31
that line will yield an error
<bonniot>the question is, do you see ways in which this jsr could be useful for us?18:23
<arjanb>this jsr is mainly targetted at tools that do things with source code/class files18:24
it all depends on how much metadate will be used by various tools18:31
i think the the question is more when to support it than whether to support18:33
why do the automatic test still fail?18:41
<bonniot>didn't look. did you check the logs?18:48
<arjanb>still te same error:18:49
TypeMaper.java:46: cannot resolve symbol
symbol : method get (nice.tools.ast.SymbolTable,java.lang.String)
location: class nice.tools.ast.dispatch
TypeSymbol res = (TypeSymbol) nice.tools.ast.dispatch.get(inner, name
<bonniot>the same as what?18:53
<arjanb>the same error for week18:54
<bonniot>it is the problem with generating the Synthetic attribute for dispatch methods18:57
<bonniot>i am uploading my development version, which should be able to bootstrap the compiler next time
<arjanb>i'm looking at the conditional types but i still don't understand it although i have made some changes to instanceof inference21:27
could you explain setVarType21:28
the difference between out and overrideOut arguments21:32
and why the otherbranch argument is needed at typecheck.nice:6021:37
<bonniot>Yes, this part is quite complex. are you trying to change something?21:44
<arjanb>i want to have assigments effect the type of a variable21:46
<bonniot>i see21:47
i'm sorry i can't take the time to explain that code tonight. maybe the best would be if you sent me your questions by email, and I will answer back when I get the time, OK?21:49
<bonniot>one related but probably simpler thing you could look at is to restrict these dynamic type inference mechanism to oper only on local variables *that are not captured by an anonymous function*.21:52
otherwise, they are not type-safe
for instance:21:53
A a = new B();
void->void f = () => { a = new A(); }
if (a instanceof B) {
B b = a;
<arjanb>i see
<bonniot>when a is used inside the anonymous function, it should be marked as 'captured'
for captured locals, we would then do no inference21:55
<arjanb>btw why does Nice have local functions when it has anonymous functions?
<bonniot>it's just nice syntax
the implementation of local functions actually use anonymous functions21:56
<arjanb>i know that
<bonniot>so I think it's nicer to write:
void f() { a= new A(); }
void->void f = () => { a = new A(); }
at least, it is more natural for non-functional people :-)21:57
<arjanb>yes though i find the use of local functions minimal21:58
<bonniot>it's just syntax: it adds almost no complexity to the compiler21:59
<arjanb>i used them a lot in pascal but there you had to split var declarations and statements22:00
where is best place to put such additional info as 'captured' i could make it a field22:07
but such info can be stored in a map or in this case a set22:08
<bonniot>what about a field in MonoSymbol?22:26
<arjanb>yes but it will rarely be used22:27
<bonniot>it will rarely bet set, but it will (relatively) often be read22:31
ok, i'm going. goodnight22:36
* bonniot leaves

Generated by Sualtam