Browse thread
Re: Syntax for label
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | John Max Skaller <skaller@m...> |
| Subject: | Re: Syntax for label, NEW PROPOSAL |
Pierre Weis wrote: > Clearly, there is something wrong now! We may remark that the error > message is not that clear, but this is a minor point, since error > messages are never clear enough anyway! This is not a 'minor' point, but the most significant obstacle in the way of adoption of languages (like ocaml) that do a lot of type inference. Incomprehensible -- indeed plain wrong -- error messages crop up regularly with ocaml, and vie with the kind of gibberish errors instantiating C++ templates usually give for 'most obscuficated error message' competition :-) The recent addition of better error messages in the case of missing cases of matches has been a _major_ improvement IMHO: it has already saved me significant time; since I often enhance the set of cases of a variant, and need to chase down every match and update it. I'm not using -modern mode and the main reason is the scary error messages. Even the polymorphic variants are scary, since one looses the ability to 'spell check' variant tags. I actually tried to take a fairly large, fundamental, type in Vyper (the type of most language terms and runtime values) and use polymorphic variants to classify them (the classes overlap, which ordinary variants cannot handle), and gave up, because I couldn't understand the error messages. Recent discussions in the Python types-SIG concerning type inference showed a strong indication (mainly from ex-ML users) NOT to use any kind of type inference that could lead to incomprehensible error messages. I personally use errors to drive development. I expect a compiler to tell me the line that next needs editing. Ocaml is fairly good here now, but I still cringe in fear when i get too incompatible object types and pages of method signatures the compiler claims are different. Why can't it tell me the differences more often? I does well sometimes telling me that one sig has a method the other lacks. -- John (Max) Skaller, mailto:skaller@maxtal.com.au 10/1 Toxteth Rd Glebe NSW 2037 Australia voice: 61-2-9660-0850 checkout Vyper http://Vyper.sourceforge.net download Interscript http://Interscript.sourceforge.net