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

Using timezone: Central European Time
* arjanb leaves05:06
* arjanb joins12:27
* bonniot joins13:45
i looked at setting code unreachable after calling a method that has ensures false14:18
but it's not possible without adding more compiler phases14:19
<bonniot>why not?15:16
<arjanb>because overloading needs to be done first
<bonniot>i see the problem15:19
isn't it already handled by bossa.syntax analyse.nice:333
void foo ensures false
throw new Exception();15:21
void bar() {
foobar(); //unreachable
<bonniot>sorry, that line is for assert false15:25
i thought you meant that
now i see
* Bluelive leaves
* Bluelive joins15:39
<arjanb>ok to commit the specialized rawArrays now?17:20
maybe you need to change the makefile17:35
<bonniot>it would seem not: if rawArray is compiled, the other ones will be compiled automatically17:38
i'm going to commit a fix for the Byte/Integer case17:47
<arjanb>maybe we should warn of the equals function not working as expected on boxed primitives17:51
<arjanb>in the manual maybe17:53
<bonniot>maybe we could have a KnowIssues page in the Wiki17:57
could you send new benchmark figures to the bug report?18:01
<arjanb>my benchmark are a little different18:02
57.242s extended for, int[]
48.51s foreach, int[]
specialized rawArray and using the array as list:
17.215s extended for, int[]
12.157s foreach, int[]
<bonniot>and while?18:06
<arjanb>8.372s while, int[]18:07
<bonniot>quite a good improvement :-)
you should add this info on the bug report
<arjanb>shouldn't the Byte/Integer problem be fixed in CallExp?18:13
*away for meal*18:15
<bonniot>i don't see a problem in CallExp18:16
the difference in generated code depends on whether the exact type is known before18:31
<bonniot>not anymore :-)
<arjanb>that is whether instanciatedDomain can be calculated in CallExp
i disabled the calculation of instanciatedDomain but that broke one testcase18:32
<bonniot>yes, probably the one that made it necessary18:33
i don't think there is any problem now
<arjanb>ok i couldn't find bug testcase either18:40
what are you working on?21:38
<Bluelive>looking at the code of nice is pretty demotivating for working mon my own code, 21:45
its such a large bulk
<arjanb>just don't look at the type systeem and for gnu.* we use only about a third of that code 21:47
<Bluelive>bossa, thats also orignal bij daniel ?21:49
<arjanb>bossa was the name of Nice before it was on sf
bossa.syntax is the central package of the compiler21:50
<Bluelive>well if source is anythign to go on i still have 1.5 years needed to catch up ;)21:51
* GummiEnte joins22:25
Hello all together22:26
I wish you all a HappyNewYear
<arjanb>happy new year
<GummiEnte>I've been absend to nice for a while...22:27
...now I again don't now, how to do the following java code in a nice equivalent:22:28
SelectionListener sl = new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
<arjanb>is this swing?22:30
aahhhh... it is swt.
swing is not gcj,native compatible.22:31
<arjanb>i see
do you know the nice swing wrapper?
<GummiEnte>Yes, I've read about it.22:32
Do you think I also need such an wrapper for swt?
<arjanb>no but you can look at the code how to use anonymous functions instead of listeners22:33
<GummiEnte>ah, ok.22:34
<arjanb>martin planned to make a wrapper for swt too but i haven't heard anything about that since22:39
<GummiEnte>Who is martin?22:40
the author of swing-wrpper?
<GummiEnte>Well, currently I don't see the direct way...22:49
I have to investigate that ...22:52
<arjanb>class SelectionAdapterWrapper extends SelectionAdapter
SelectionEvent?->void selectionEvent = null;22:53
widgetSelected(event) = selectionEvent(event);22:54
<GummiEnte>Yes, but then I need to build for all Interfaces these Wrappers... ?22:55
<arjanb>we need to find someone who wants to make the wrapper for swt similar to the swing,awt ones and can maintain them23:02
<GummiEnte>Currently I only have taken a short look at the swing wrapper. To be honest I haven't really understand all parts.23:04
<arjanb>i never did gui programming so i don't know either23:06
<GummiEnte>What does the following error message mean:23:12
Parameter event of type ?org.eclipse.swt.events.SelectionEvent is not within the domain of function "notNull(selectionEvent(this))"
Following code:
class SelectionAdapterWrapper extends SelectionAdapter
SelectionEvent ?-> void selectionEvent = null;
widgetSelected(event) = (notNull(selectionEvent))(event);
"widgetSelected(event) = (notNull(selectionEvent))(event);" that is the errorline23:13
<arjanb>class SelectionAdapterWrapper extends SelectionAdapter23:14
SelectionEvent->void selectionEvent;
widgetSelected(event) = selectionEvent(event);
what message does this yield?23:15
<GummiEnte>Arguments (?org.eclipse.swt.events.SelectionEvent) do not fit:
(org.eclipse.swt.events.SelectionEvent)->nice.lang.void com.condor_edv.e3m.lite.oc.SelectionAdapterWrapper.selectionEvent
<arjanb> widgetSelected(event) = selectionEvent(notNull(event));23:16
<GummiEnte>Arguments (org.eclipse.swt.events.SelectionEvent) do not fit: 23:17
(org.eclipse.swt.events.SelectionEvent)->nice.lang.void com.condor_edv.e3m.lite.oc.SelectionAdapterWrapper.selectionEvent
<arjanb> widgetSelected(event) = (selectionEvent)(notNull(event));
<GummiEnte>the same.
Nice compiler version 0.9.6 prerelease (build 2003.12.19, 09:50:40 UTC)23:18
<arjanb>strange error message23:20
<GummiEnte>Yes, definitly.
I'm going to compile the latest CVSsources...23:21
:( I need again a newer bootstraper?!
<arjanb>what is the error?23:22
<GummiEnte>Ahhh... Ok, now two errors.... One with an old bootstrapper (build 2003.12.19) and one BUG with the latest nice.sf.net/nice.jar
Ok, first the old bootstrapper error:
~/Work/WorkingDirectory/Nice/stdlib/nice/lang/collections.nice: line 179, column 12:23:23
T is not declared
Now the error with the latest nice.jar from sf:
Stack trace:
at mlsub.typing.MonotypeConstructor.setId(MonotypeConstructor.java:119)
at nice.tools.code.Types.setMarkedKind(Types.java:656)
at bossa.syntax.Pattern.inDomain(Pattern.java:319)
at bossa.syntax.MethodBodyDefinition.findSymbol(MethodBodyDefinition.java:167)
at bossa.syntax.MethodBodyDefinition.lateBuildScope(MethodBodyDefinition.java:301)
at bossa.syntax.AST.typedResolve(AST.java:134)
at bossa.modules.Package.typedResolve(Package.java:259)
at mlsub.compilation.fun.lambda23(~/automated/tester/builds/Nice/src/mlsub/compilation:33)23:24
at mlsub.compilation.fun.apply1(~/automated/tester/builds/Nice/src/mlsub/compilation)
* GummiEnte leaves
* GummiEnte joins
Ok, that was to much load.23:25
<arjanb>the first one is just because the bootstrapper is too old
and i have seen this trace before only i don't remember what the issue was23:27
daniel any idea?
<GummiEnte>Well, Daniel seems to be away...23:29
...I have to leave anyway. If you remember the solution, would you please send me an email?23:30
<arjanb>i have found it in the logs and daniel thinks it's a jvm bug
How to solve?23:31
<arjanb>i don't know
<arjanb>i could be the stacktrace that's wrong
but setId can't be called anyway from setMarkedKind23:32
<GummiEnte>ahh,... I've also read that.
The error occurs exactly at the same "compiler output messages" point, where with the old bootstrapper the T was unknown...23:34
<arjanb>which jvm do you use btw
<GummiEnte>rubber@tower:~/Work/WorkingDirectory/Nice > /site.opt/jdk1.3/bin/java -version23:35
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
Java HotSpot(TM) Client VM (build 1.3.0, mixed mode)
<arjanb>aren't there newer versions than 1.3.023:36
<GummiEnte>Yes, there are, but gcj doesn't support that mcuh newer API's.
<bonniot>hello christian!
<GummiEnte>Hello Daniel.
<bonniot>how are you doing?23:38
<GummiEnte>Thnx, I'm fine... Expect long abstinence from nice development...
having troubles?23:41
<GummiEnte>No, not really...
Ok, there are quite a few jdk bugs I would assume...23:42
with jdk-1.3.0 I get the setMarkedKind impossible error..
<bonniot>did you try a newer jdk?
<GummiEnte>with jdk1.3.1_09 I get: bossa.syntax: linking
./bin/nicec.bootstrap: line 22: 5252 Speicherzugriffsfehler nice_bootstrap=true ./bin/nicec "$@""
<GummiEnte>So, now I'm trying the latest 1.3.x...
Segmentation foult
<bonniot>so the problem is with building the compiler, right?
<GummiEnte>But 1.4.2 works :/
At the moment, but not really.23:44
Scroll a bit back, to see the error with a swt listenerwrapper.
Well, 1.3.1_09 was nearly the latest 1.3.x release. There only exists a _10.23:46
I'll download it and give it a try.
Which version sf uses?23:47
http://nice.sourceforge.net/test-central/results/sauternes.inria.fr:jdk1.3.log.html <-- which 1.3 is used there?23:48
<bonniot>java version "1.3.1"23:49
Java(TM) 2 Runtime Environment, Standard Edition (build Blackdown-1.3.1-02b-FCS)Java HotSpot(TM) Client VM (build Blackdown-1.3.1_02b-FCS, mixed mode)
<GummiEnte>Blackdow, that's the IBM?23:50
<bonniot>no, it's blackdown :-)
<GummiEnte>What dowes this FCS mean?23:53
<bonniot>no idea, a part of the version number23:54
<GummiEnte>ok, I'm still downloading... so for a moment I'll tkae 1.4.2 from sun... and compilethe lateste development version.00:05
Then I can send you the output of the code with the latest codebase.00:06
Ok, error still the same:00:09
~/Work/WorkingDirectory/e3m/src/com/condor_edv/e3m/lite/oc/onlineclient.nice: line 14, column 30:
Arguments (org.eclipse.swt.events.SelectionEvent) do not fit:
(org.eclipse.swt.events.SelectionEvent)->nice.lang.void com.condor_edv.e3m.lite.oc.SelectionAdapterWrapper.selectionEvent
<Bluelive>fcs has to do with the threading model as far as i know
<GummiEnte>ok, thnx... I'm going to leach everything I can get..00:10
Daniel, still online?00:12
Any aidea?
<arjanb>but the real problem is the lack of a wrapper for swt and so no easy way to write listeners
<GummiEnte>Yes, orrect.00:13
<bonniot>Gummi_log: can you try to isolate the problem in a self-contained case?00:19
<bonniot>take it out of your project, in a single file as short as possible
<Bluelive>so that a testcase can be build
<bonniot>self-contained == does not depend on other things00:21
<GummiEnte>That should be easy...
Here it is:00:28
class A {}
interface I {
void m(A);
abstract class IA implements I {
class CA extends IA {
A -> void av;
m(a) = (av)(a);
Ok, IA is also not needed.00:29
class A {}
interface I {
void m(A);
class CA implements I {
A -> void av;
m(a) = (av)(a);
Someone still alive?00:36
Daniel, did oyu heard something about the gcj serialisation?
I saw you discussing with a gcj developer... :)00:37
<arjanb>i get the same error message00:38
Bot good?
Not good?
<bonniot>Gummi_log: nothing since. the discussion was public00:41
<arjanb>i can simplify it even further
class A {
String->void av;
void m(String s) = (av)(s);
<bonniot>if i remember well, he was working on it00:42
did you try a newer CVS version?
<GummiEnte>Now, not until now...
Arjan, as always :)00:44
<bonniot>adding 'this' solves the problem it seems
void m(String s) = (this.av)(s);
Me too.
Ok, the arjans wrapper does work now. Thanx.00:47
I'll go to bed now.
* GummiEnte leaves

Generated by Sualtam