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

Using timezone: Central European Time
* CIA-2 leaves09:32
* CIA-5 joins09:40
* bonniot joins10:30
* arjanb joins11:11
<bonniot>hello arjan12:27
<bonniot>do you have plans regarding nice these days?12:40
<arjanb>not directly12:43
<bonniot>no time?12:45
<arjanb>some but i'm doing more experimental things now
learning haskell, thinking about macros, i'm part of group here trying to design a pure functional language12:47
yet another language?12:49
what would be special about it?
<arjanb>yes a lecturer here had some ideas about a language and was looking for some students and i found it a good idea to replace a course with that12:52
some features are io without monads, something oo like12:54
but it's just in the idea gathering phase
<bonniot>and without state?
i'm now looking at patterns and trying to do coverage and reachability testing13:00
and as long the kind of patterns don't get too fancy it seems doable for nested patterns13:02
<bonniot>what is the type system?13:03
<arjanb>unkown yet13:04
the language should be suitable for teaching so type error messages are an issue13:07
i will try to get both the standard user ordered pattern matching and compiler ordered(like multimethods) in the prototype to see how the combination works out in practise13:23
do you get much german spam via sourceforge too?13:43
<bonniot>i'm not sure, i have a spam filter ;-)14:05
<arjanb>i haven't a spam filter yet because most of my mail isn't spam14:12
<bonniot>you're lucky ;-)14:14
<arjanb>just carefull with my email adresses14:15
<bonniot>i'm fixing the pb when there are two Java interfaces I1 and I2 that declare a similar method m (same arguments)14:55
then when calling m on an instance of both I1 and I2, there was ambiguity14:56
even though it's at the end the same implementation of m in the instance
<arjanb>so calling m on the instance directly in that case?14:57
<bonniot>in the bytecode?14:59
<bonniot>you can actually call any of the three versions, that will have the same result
calling on the instance should be a bit faster
but i think this optimization is already done somewhere else
yes: CodeAttr.java:108615:01
<arjanb>i should try how smart jvm's are now with such optimization15:10
<bonniot>you mean that maybe it does not matter, because the jvm wo do it anyway?15:11
and i'm thinking about having an interface implicitly for each class15:12
class A {}
<bonniot>i think it's important to do it in the compiler, because the base method could be protected, and the overriden one public, so it's invalid to call the base one
<arjanb>class B implements A {}
this would require to compile all method calls on nice classes as invoke interface15:13
<bonniot>what would be the difference between implements and extends?15:14
<arjanb>class B won't get the fields of A and it's possible to implement multiple class-interfaces15:16
<bonniot>but the type B is a subtype of A ?15:22
B needs to implement the getters\setters from A15:25
<bonniot>ok, i was getting worried :-)
<CIA-5>03bonniot * 10Nice/ (3 files in 3 dirs): 15:35
Allow calls to Java methods defined in a Java class that implements
several Java interfaces declaring that same method, like
<arjanb>*away for a few hours*15:43
* CIA-5 leaves18:04
* CIA-7 joins
<bonniot>i was thinking whether we could "guess" type parameters of java methods in more cases19:03
<bonniot>class MyMap extends java.util.Map {19:14
MyMap() { ... }
MyMap(int capacity) { ... }
the compiler knows that the class has two type parameters19:15
for the first constructor, it should obviously be
<K,V> ()->MyMap<K,V>
the second
<K,V> (int)->MyMap<K,V>19:16
basically, as long as no type includes Object, you can assume the type parameters don't appear anywhere
<arjanb>so for all methods/constructors without Object as argument or returntype
and no parameterized class either
<bonniot>i got an email from a new user, and he was asking why he needs retyping these constructors19:18
good night23:01
* bonniot leaves

Generated by Sualtam