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

Using timezone: Central European Time
* arjanb leaves05:52
* ChanServ leaves13:13
* ChanServ joins13:30
* arjanb joins14:05
* arjanb leaves16:57
* ChanServ leaves
* ChanServ joins
* arjanb joins
* bonniot joins23:58
<arjanb>hi
<Bluelive>hi00:11
<bonniot>hello00:45
arjan, why did you make the --native-compiler option visible?00:46
for windows?
<arjanb>someone needed that option
<bonniot>on what system? what for?00:47
<arjanb>http://confer09.condor-edv.com/nice@freenode/2003-12-31.html
<bonniot>hum, from that conversation it's not clear that --native-compiler was useful00:50
<Bluelive>i though he solved it by repairing his gcc00:51
<arjanb>nicec just didn't find gjc otherwise
<bonniot>yeah, it seems he had several installations of gcj00:53
if gcj was in his path, it should have been found00:54
maybe there is a bug in the detection, that's possible
but i'm not too happy with having --native-compiler visible, because it should not be needed, and it just makes the options more confusing00:55
do we know who frosty is?
<arjanb>i don't
<bonniot>anything else i missed on IRC?00:57
<arjanb>no it was quiet except for Bluelive00:59
<bonniot>yes, i saw you spoke dutch all the time :-901:00
<Bluelive>sorry about that ;)01:04
it was mostly social
<bonniot>:-)01:05
did you see Nice was included in the Shootout benchmark?
<arjanb>which?01:06
<Bluelive>benchmark ? do you have link ?
<bonniot>http://dada.perl.it/shootout/
<Bluelive>ICI 4.0.5?01:07
thats not yout version number is it ?
<bonniot>that's a mistake01:08
<Bluelive>you come out pretty much average
<bonniot>our point is not about pure performance, so it's quite fine01:10
<Bluelive>rebol comes out with 0 points :)
nice to see delphi out score c :)
<bonniot>it's useful to check that there is not a big implementation mistake somewhere
(i already show Isaac one test which could go 2x faster, so there is improvement possbile:-)01:11
<Bluelive>there are a few testcasing missing01:12
<bonniot>yes
it's isaac who wrote them
<Bluelive>issaac == gummi ?01:13
<arjanb>no
<bonniot>the List Operations one could also be much optimized01:16
<arjanb>have you seen the bug report about looping performance?01:17
<Bluelive>ive been more impressed with nosica recently
that didnt sound right
<bonniot>yes, i read the report
what's not right?
<Bluelive>well i started alpha to replace java for me, and now ive found nosica, which i would like to use to replace c++, and now i want to assimilate some stuff from them, but im not sure if thats wise or possible :)01:19
<bonniot>is nosica mature?01:20
<Bluelive>im not sure
<bonniot>arjanb: you see, foreach is efficient after all :-)01:21
<Bluelive>not mature enough to use it for any production work
<bonniot>arjanb: or is there anything wrong with your implementation of for?
<arjanb>i have done an experiment with making subclasses of RawArray to wrap arrays of certain primitives and it made the use of RawArray up to 5 times faster
i think we should try to avoid all uses of java.lang.reflect.Array.{get,set} in the code the compiler generates01:24
<bonniot>yes, it's slow01:25
rawArray is only used when a List is expected01:26
<arjanb>i know
<bonniot>where is it needed in the testcase?01:27
<arjanb>the first step is to improve rawArray with primitive specific subclasses and then replace all generic arrays with rawArray
array as list is not used in these testcase01:29
<bonniot>so why is there rawArray?01:30
<arjanb>but when rawArray is improved we can easily remove the generic array version of foreach and such
so that you have reasonable performance
<Bluelive>can you specify this from nice source or is it compiler magic ?01:31
<arjanb>compiler magic
you can't make a java array a subtype of List otherwise01:32
<bonniot>how do you know which subclass of rawArray to create?01:34
with an instanceof at creation?
<arjanb>yes
java.lang.reflect.Array is implemented using instanceofs at each call01:35
<bonniot>yes, that would be an improvement01:37
so, is your code ready?
Bluelive: what dou you like in Nosica?01:38
<arjanb>no i tried only a partial implementation
but it's easy to make it complete01:40
<Bluelive>bonniot: basicly that it is a cleaner safer version of c++
more suited for main stream then for example alpha
<bonniot>arjanb: great. it's just a pity we don't have a performance suite yet to track improvements :-)01:42
<Bluelive>just running the jvm with -xprog doesnt give you enough hints 01:43
?
<arjanb>we have Isaac :-)
<Bluelive>maybe translate labels back to a nice naming
<bonniot>i'm speaking about automated regression suite for performance01:46
<Bluelive>hmz, sounds like a good idea, couldnt you add so timeing constraints to the testsuite ?01:47
<bonniot>i think the corectness tests and the performance tests should be different01:48
but yes, the framework could be partly shared01:49
<arjanb>yes and the normal testsuite is already too slow
<bonniot>it just needs some work
<Bluelive>the timeconstraints would be placed upon the current tests01:50
so it would add additional runtime to allready exsisting tests
maybe you should add something to test if a particular group of tests should be rerun
or just cron it for 5am and watch the results a few houres later01:51
<bonniot>why rerun?01:52
<arjanb>autoboxing happens too often now as in this example:01:55
int->void f = int x => println(x);
List<int> list = new ArrayList();
list.add(5);
f(list[0]);
<bonniot>1 box and 1 unbox?01:58
<arjanb>2 box and 2 unbox in the execution of the last line01:59
invokeinterface #40 <Method java/util/List.get (I)Ljava/lang/Object;>02:00
checkcast #42 java/lang/Number
invokevirtual #46 <Method java/lang/Number.intValue ()I>
new #8 <Class java/lang/Integer>
dup_x1
swap
<bonniot>hum, not optimal :-)
<arjanb>invokenonvirtual #11 <Method java/lang/Integer.<init> (I)V>
invokevirtual #62 <Method gnu/mapping/Procedure.apply1 (Ljava/lang/Object;)Ljava/lang/Object
<bonniot>ah ok, because of the anon fun call02:02
it's optimizable, but it's not as trivial as it looks02:06
<arjanb>how is nicedoc going?02:30
<bonniot>i saw a first prototype02:34
sent some comments
we should make the changes so that doc comments are accessible02:35
<arjanb>it's only boolean that needs to be set in parser\Loader.java02:37
btw is it written in Nice?02:38
<bonniot>yes, but the code should be share, so there needs to be an API to set that boolean02:42
written in Nice02:43
OK, let's go. good night
<arjanb>good night
* bonniot leaves02:44
<Bluelive>hmz03:06
zucht