I'd like having 0o777 (and 0b1111!) but I thought the reason for removing the existing octal literals was that they were surprising and error-prone (and behaving erratically in different settings, so, e.g., 0100 != +"0100").<div>
That reasoning still stands.<br><div><br></div><div>I can't say whether removing them from strict mode was really a benfit. It made strict mode more compatible across browsers than non-strict mode ever was, but it might also have made moving code from non-strict to strict slightly harder. </div>
<div>Personally, I'd go for strict mode to be sure that my numbers were *not* interpreted as octal.</div><div>But that's what's being argued here - converting existing code (or existing programmers) to strict mode is hampered by them not being able to use the octal numbers they are used to.</div>
<div><br></div><div>Well, these are obviously not programmers that want strict mode to begin with (since it requires very little effort to change the octal literal to a string). It's people that would choose strict mode only if it was trivial or they had a compelling reason for doing it.</div>
<div><br></div><div>I don't think people writing non-strict code as their default for node.js is a problem solved by changing strict mode.</div><div>It might be changed if there was an actual advantage for the programmers in using strict mode, which there hasn't been - it's not faster, it's not simpler, and it's not what they are used to, and being more compatible between ECMAScript implementations makes no difference when writing for just node.js.</div>
<div><br></div><div>/L</div><div><br><div class="gmail_quote">On Fri, Jan 13, 2012 at 7:47 AM, Brendan Eich <span dir="ltr"><<a href="mailto:brendan@mozilla.com">brendan@mozilla.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div bgcolor="#FFFFFF" text="#000000">The API in question takes a
 string and does parseInt if necessary. That's not the issue. There is 
real code using octal and it won't change to quote the numeric literal, 
and it won't adopt strict mode. Meanwhile CoffeeScript is trying to 
target strict mode. It  can cope, but we're left with non-strict Node.js
 JS source code as default, with no incentive to change.<br>
<br>
What was the good, what benefit was achieved, by banning octal from 
strict mode? Since it is required for web compatibility, it is already 
in the spec. Adding 0o is not adding an unnecessary feature if there are
 valid use cases for octal. Or would you be ok if we simply allowed 
0-prefixed octal in strict mode?<br>
<br>
/be<br>
<br>
<blockquote style="border:0px none" type="cite">
  <div style="margin:30px 25px 10px 25px"><div style="display:table;width:100%;border-top:1px solid #edeef0;padding-top:5px">   <div style="display:table-cell;vertical-align:middle;padding-right:6px"><img name="134d5d1ff3e38f61_compose-unknown-contact.jpg" height="25px" width="25px"></div>
   <div style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a href="mailto:reichsteinatwork@gmail.com" style="color:#737f92!important;padding-right:6px;font-weight:bold;text-decoration:none!important" target="_blank">Lasse Reichstein</a></div>   <div style="display:table-cell;white-space:nowrap;vertical-align:middle">
   
  <font color="#9FA2A5"><span style="padding-left:6px">January 12, 2012 
10:15 PM</span></font></div></div></div><div class="im">
  <div style="color:#888888;margin-left:24px;margin-right:24px"><div>Seems like a library 
interface that isn't well thought through:<br>Accepting a number as 
input, but it's only reasonably written in one<br>base. Then it's not 
really a number, but rather a formatted string, so<br>the chmod function
 should take a string as argument and do its own<br>parseInt(_,8) on it 
(and accept other formats too, like "a+rw" or<br>"rwxr--r--").<br><br>Don't
 try to fix a single broken interface by adding unnecessary<br>features 
to the language!<br>/L 'not a Unix hater, but probably a chmod hater'<br></div><div><br></div></div>
  </div><div style="margin:30px 25px 10px 25px"><div style="display:table;width:100%;border-top:1px solid #edeef0;padding-top:5px">       <div style="display:table-cell;vertical-align:middle;padding-right:6px"><img name="134d5d1ff3e38f61_postbox-contact.jpg" height="25px" width="25px"></div>
   <div style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a href="mailto:wes@page.ca" style="color:#737f92!important;padding-right:6px;font-weight:bold;text-decoration:none!important" target="_blank">Wes Garland</a></div>   <div style="display:table-cell;white-space:nowrap;vertical-align:middle">
   
  <font color="#9FA2A5"><span style="padding-left:6px">January 12, 2012 
11:51 AM</span></font></div></div></div>
  <div style="color:#888888;margin-left:24px;margin-right:24px"><div class="im">I'll chime in with my vote - I 
would LOVE to be able to use octal literals again in GPSEE for setting 
file permissions.<br><br>chmod("filename", parseInt("777", 8))<br><br>^^^^
 just looks stupid when  chmod("filename", 0777) would work just fine.<br>
<br>Wes<br><br><br><br><br clear="all"><br></div><div class="im">-- <br>Wesley W. Garland<br>Director,
 Product Development<br>PageMail, Inc.<br>+1 613 542 2787 x 102<br>

  </div></div>
  <div style="margin:30px 25px 10px 25px"><div style="display:table;width:100%;border-top:1px solid #edeef0;padding-top:5px">   <div style="display:table-cell;vertical-align:middle;padding-right:6px"><img name="134d5d1ff3e38f61_postbox-contact.jpg" height="25px" width="25px"></div>
   <div style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a href="mailto:brendan@mozilla.com" style="color:#737f92!important;padding-right:6px;font-weight:bold;text-decoration:none!important" target="_blank">Brendan Eich</a></div>   <div style="display:table-cell;white-space:nowrap;vertical-align:middle">
   
  <font color="#9FA2A5"><span style="padding-left:6px">January 12, 2012 
11:11 AM</span></font></div></div></div><div class="im">
  <div style="color:#888888;margin-left:24px;margin-right:24px">[Resending reply with 
elaboration. /be]
<br>
<br>Yes, the ability to quote the octal literal with Node's APIs came up
 on 
the gist, but it's not enough.
<br>
<br>Quoting is easy to forget, and making the runtime convert string 
(literal) to number is inefficient compared to having JS do it at 
compile-time, and making the runtime (even via a call to parseInt) do it
 
also increases bug habitat ever so slightly.
<br>
<br>Mainly, users don't have to shun octal in non-strict mode, and they 
do 
not in Node code I have seen. They won't be adopting strict mode as far 
as I can tell. Banning octal is just one more reason for those who 
*might* adopt strict mode to reject it.
<br>
<br>Agree on parseInt. Old dog, hard to change (runtime-only errors are 
migration- and user-hostile). Not sure what to do there.
<br>
<br>/be
<br>
<br>_______________________________________________
<br>es-discuss mailing list
<br><a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a>
<br><a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a>
<br>
<br></div>
  </div><div style="margin:30px 25px 10px 25px"><div style="display:table;width:100%;border-top:1px solid #edeef0;padding-top:5px">       <div style="display:table-cell;vertical-align:middle;padding-right:6px"><img name="134d5d1ff3e38f61_postbox-contact.jpg" height="25px" width="25px"></div>
   <div style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a href="mailto:dean@deanlandolt.com" style="color:#737f92!important;padding-right:6px;font-weight:bold;text-decoration:none!important" target="_blank">Dean Landolt</a></div><div class="im">   <div style="display:table-cell;white-space:nowrap;vertical-align:middle">
   
  <font color="#9FA2A5"><span style="padding-left:6px">January 12, 2012 
11:02 AM</span></font></div></div></div></div><div class="im">
  <div style="color:#888888;margin-left:24px;margin-right:24px">/cc es-discuss (sorry Brendan 
-- you always seem to be the target of my reply-all fails)<br><br><br>

  </div>
  </div><div style="margin:30px 25px 10px 25px"><div style="display:table;width:100%;border-top:1px solid #edeef0;padding-top:5px">       <div style="display:table-cell;vertical-align:middle;padding-right:6px"><img name="134d5d1ff3e38f61_postbox-contact.jpg" height="25px" width="25px"></div>
   <div style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a href="mailto:dean@deanlandolt.com" style="color:#737f92!important;padding-right:6px;font-weight:bold;text-decoration:none!important" target="_blank">Dean Landolt</a></div>   <div style="display:table-cell;white-space:nowrap;vertical-align:middle">
   
  <font color="#9FA2A5"><span style="padding-left:6px">January 12, 2012 
11:01 AM</span></font></div></div></div><div class="im">
  <div style="color:#888888;margin-left:24px;margin-right:24px"><br><br><div class="gmail_quote"><span dir="ltr"></span><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex" class="gmail_quote">
<div text="#000000" bgcolor="#FFFFFF">Sorry, are you seriously 
proposing that Node.js users when they specify file permissions should 
manually write that out? Come on! Sorry, that's just way too verbose and
 ugly.<br></div></blockquote><div><br></div><div>They don't have to, an 
octal string mode works just fine: </div><div><br></div><div>  
fs.chmod(path, "0777")</div><div><br></div><div>Octals can be little 
hazardous, and not just to noobs, but the hazard isn't with literals, 
it's with parseInt:</div>

<div><br></div><div>  parseInt("022") // 18</div><div><br></div><div>Better
 than losing octal literals would be to throw out the unary version of 
parseInt. Guessing the radix is crazy! I'm indifferent to whether octals
 stay the same or grow a o, but parseInt could really use some love!</div>

</div>

  </div>
</div></blockquote>
</div></blockquote></div><br></div></div>