On 06/09/12 11:19, David Matthews wrote:
On 05/09/2012 18:07, David Matthews wrote:
On 05/09/2012 14:27, Phil Clayton wrote:
I probably spoke a bit too soon here. After more interactive use, it appears that records and tuples can be expanded one level in the types printed back. This can make types much harder to read which may be an issue for those using an interactive session to e.g. inspect expression types by evaluating fragments of code. With the example at the end, 5.4 prints back
val nearest = fn: point -> point list1 -> real * point
which is fairly self-explanatory, whereas r1581 prints back
val nearest = fn: real * real -> (real * real) * (real * real) list -> real * (real
- real)
I can't see a way to fix the bug and still keep the old printing of types with abbreviations. The problem is that the language definition does not consider printing at all.
Well, after thinking some more about it overnight I did realise there was an alternative fix for the bug that kept the old printing. I've committed this and now the old printing has been restored.
Thanks for this. I have to say the old printing makes interactive work easier. Also, this update reduces time to compile the auto-generated libraries of function bindings - 7.2s vs 8.6s.
I was actually on the point of releasing 5.5 and I've already rebuilt the compilers. I can see that it would be preferable to include this latest change in the 5.5 release especially if you are processing the output automatically. I might just hold off a little bit longer.
And even if output isn't being processed automatically, the more succinct compiler output generally makes life easier. I'll continue with r1592 and see how it goes. I haven't found it to be worse than r1591 in any respect yet.
Phil