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

Using timezone: Central European Time
* arjanb leaves02:58
* bonniot joins10:21
* arjanb joins12:21
<CIA-3>03bonniot * 10Nice/distrib/Makefile: Updated to use cvs.sourceforge.net12:35
03bonniot * 10Nice/Makefile: Ship libs (nice.functional) with the compiler.12:41
<arjanb>the nullness changes fixes bug #866839 too14:58
but the error message i get now is odd:
Method <Key, Value> Value get(testbug.ReadablePropertyMap<Key, Value> this, !Key k) is declared but14:59
never implemented:
no alternative matches (testbug.hash_property_map, nice.lang.void)
<bonniot>can you paster the code?15:02
<arjanb>just the code from the bugreport
public interface ReadablePropertyMap<Key,Value> {15:04
Value get(!Key k);
public interface ReadWritePropertyMap<Key,Value> extends ReadablePropertyMap<Key,Value> {
void set(!Key k, Value v);
public class hash_property_map<A,B> implements ReadWritePropertyMap<A,B> {
private HashMap<A,B> data = new HashMap();
public void set(A a, B b) {
public B get(A a) {
return notNull(data.get(a));
<bonniot>are the methods taken as overrides?
(then you should get a warning)
otherwise that's the reason15:05
<arjanb>no overrides warnings15:06
but the odd thing is the second argument in "no alternative matches (testbug.hash_property_map, nice.lang.void)"
<bonniot>void is treated as a normal type15:07
<arjanb>i know but void cannot be used as argument type so this error is confusing15:08
ideally it should find out that this position does not matter, and no put any specific type there15:10
shouldn't the methods be considered as overrides?15:12
<arjanb>they are missing notnull restriction15:14
<bonniot>right. so no bug :-)15:15
this shows again it's a good idea to do explicit overrides
<arjanb>this code seems halfway a conversion from java when it triggered a infinite linking bug
<bonniot>yes, it's java like
well, it seems you can close the bug then15:16
<arjanb>it's your fix15:17
<arjanb>the open bug reports are not serious except i don't know for the newest 215:26
<bonniot>those two are in the presence of polymorphic type inference, which is still a bit experimental15:27
(that's y it's not in the NEWS file yet)
there is already some detection about which positions are useful for dispatch, so it might be simple to improve the error message in such cases15:57
<arjanb>that error message doesn't need to mention the tested alternative17:14
<bonniot>in case there is none?17:16
<bonniot>it's useful if the method is defined on interfaces, to know for which class you need to implement it
don't you think?17:18
<arjanb>yes i didn't thought about interfaces17:19
* mstevens joins18:05
* mstevens read the tutorial on nice.sf.net and thought I'd see if there was an irc channel18:16
<bonniot>it's your lucky day then ;-)18:17
<bonniot>did you just discover Nice?
<mstevens>yes, I tend to poke my head onto irc whenever I discover anything out of curiousity about the community.18:21
<bonniot>yes, and sometimes it's very practical to get immediate feedback or answers18:23
how did you hear about Nice?
<mstevens>I read an article talking about the different approaches things like Python and Java take to type checking, it suggested Nice as being an interesting language with a better type system than Java, and a more static one.18:26
It also mentioned Haskell in the same breath, I'm also reading about that.18:27
<bonniot>which languages are you familiar with?
<mstevens>Mostly perl and java. Done bits of C and Python.18:28
<bonniot>then you should be able to get easily started with Nice18:29
<mstevens>So far the main bit that has jumped out at me as being nice is being able to define a method that returns the same type as its argument.18:30
<bonniot>it's closest to Java, but it has more powerful features that enable to avoid some of the verbosity, like python or perl
so you need much less casts than in Java18:32
(thanks to the type system, multi-methods, ...)
<mstevens>Yes, although java 1.5 is going to get rid of 90% of the casts I make anyway I'm anticipating, with generics.
with Nice you should get rid of 90% of the rest ;-)18:33
but more importantly, it allows you a different design style, modular
more modular that in class-based languages18:34
Haskell is a good language, by the way18:35
it's more mature than Nice
but it's quite hard to get the grips of it
if you are not used to that kind of language18:36
(purely functional, lazy)
* mstevens leaves18:45
* bonniot leaves20:50
* Kyte joins20:51
* Kyte leaves

Generated by Sualtam