From: Virden, L. W. <lv...@ca...> - 2007-10-18 19:33:30
|
=20 --=20 <URL: http://wiki.tcl.tk/ > Even if explicitly stated to the contrary, nothing in this posting should be construed as representing my employer's opinions. <URL: mailto:lv...@gm... > <URL: http://www.purl.org/NET/lvirden/ > =20 Option 0: Leave things as they are: "01" : Legal integer value 1 "08" : Error "010" : Legal integer value 8 LWV> I'm for this option during Tcl 8.5 Option 1: Compatible change. "invalid octal" -> decimal "01" : Legal integer value 1 "08" : Legal integer value 8 "010" : Legal integer value 8 LWV> This is going to confuse developers in the future who start seeing "weird" behaviors with leading zero variable values. Option 2: Noisy incompatible change. Ambiguous leading zero -> error. "01" : Legal integer value 1 "08" : Error "010" : Error LWV> This seems like it ends up making everyone equally unhappy... Option 3: Noisy incompatible change. All leading zero -> error. "01" : Error "08" : Error "010" : Error LWV> but not as unhappy as everyone would be here... Option 4: Silent incompatible change. All parsing is decimal. "01" : Legal integer value 1 "08" : Legal integer value 8 "010" : Legal integer value 10 LWV> In the future, this, linked perhaps with changes to tclchecker/frink/nagelfar/some kind of Tcl 8 to Tcl 9 static scanner to warn people that Something Major has changed, probably is the route to eventually go.=20 |
From: Virden, L. W. <lv...@ca...> - 2007-10-22 11:27:17
|
=20 This was personal opinion... time machine is in the shop for repairs to the fluxx capacitor. =20 So, you asked for arguments and illustrations. =20 Today, numbers with leading 0s are interpreted as octal. When someone takes arbitrary input, and that input has leading zeroes, the input is treated as octal, even if it was decimal. This generates an error when the input is 2 or more digits, at least the first digit is zero, and at least one digit is 8 or 9. Even worse, if the number is 3 or more digits, with at least the first digit is 0, then the input might NOT generate an error, but will be treated as an octal, even if the data received was intended to be decimal. This makes the unwary developers and users unhappy and they complain that no one ever uses octal, so why does tcl support it. =20 =20 Option 2 leaves numbers interpreted as they are now, except that leading 0 3 or more digits now are an error. In the few cases where the numbers are legit octal, we now have an error, while for everyone else, leading zero decimal numbers continue to be an error. Option 3 makes all leading zero numbers an error. Those are exactly the opposite of what the most vocal in the community have been asking for over the past 15 years or so, and for those who might have legit uses of octal, there is a new error they have to work around/ =20 =20 --=20 <URL: http://wiki.tcl.tk/ > Even if explicitly stated to the contrary, nothing in this posting should be construed as representing my employer's opinions. <URL: mailto:lv...@gm... > <URL: http://www.purl.org/NET/lvirden/ > =20 =20 ________________________________ From: Alexandre Ferrieux [mailto:ale...@gm...]=20 Sent: Thursday, October 18, 2007 5:12 PM To: Virden, Larry W. Cc: tcl...@li... Subject: Re: [TCLCORE] RFC: Octal Options =20 =20 Larry, are these two comments a forecast of the poll's outcome, or your personal opinion ? If the former, it's cheating. Don't use your time machine again ;-) If the latter, please give arguments or illustrations... =20 -Alex =20 =20 |
From: Alexandre F. <ale...@gm...> - 2007-10-18 21:11:32
|
On 10/18/07, Virden, Larry W. <lv...@ca...> wrote: > > > Option 2: Noisy incompatible change. Ambiguous leading zero -> error. > LWV> This seems like it ends up making everyone equally unhappy... > > Option 3: Noisy incompatible change. All leading zero -> error. > LWV> but not as unhappy as everyone would be here... Larry, are these two comments a forecast of the poll's outcome, or your personal opinion ? If the former, it's cheating. Don't use your time machine again ;-) If the latter, please give arguments or illustrations... -Alex |
From: Jeff H. <je...@ac...> - 2007-10-18 21:45:22
|
Virden, Larry W. wrote: > Option 4: Silent incompatible change. All parsing is decimal. > > "01" : Legal integer value 1 > "08" : Legal integer value 8 > "010" : Legal integer value 10 > > LWV> In the future, this, linked perhaps with changes to > tclchecker/frink/nagelfar/some kind of Tcl 8 to Tcl 9 static scanner to > warn people that Something Major has changed, probably is the route to > eventually go. I just want to note that his is unlikely to be very helpful to most cases where the problems arise. It will catch and assist users that may be using it in static instances (say file permissions handling), but the problems most often arise when dealing with data input that can start with 0... and that isn't a static checker's domain. Jeff |