<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2016-11-08 16:03 GMT+01:00 Stéphane Rollandin <span dir="ltr"><<a href="mailto:lecteur@zogotounga.net" target="_blank">lecteur@zogotounga.net</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello,<br>
<br>
I just realized that one can change much too easily the behavior of some compiled methods dynamically, which seems to me more like a bug than a feature.<br>
<br>
For example, if you do the following in a workspace:<br>
<br>
Character constantNames at: 5 put: #hello<br>
<br>
then until #constantNames is recompiled, it will return #(#backspace #cr #delete #escape #hello #null #newPage #space #tab) instead of #(#backspace #cr #delete #escape #lf #null #newPage #space #tab).<br>
<br>
This allows horrible bugs horribly difficult to debug which is, IMHO, horrible.<br>
<br>
So, is it a feature ?<br>
<br>
<br>
Stef<br>
<br>
<br></blockquote><div><br></div><div>It may have been used as a hack for providing static storage with scope restricted to a method, but it's clearly not an official feature.<br><br></div><div>We will have immutaiblity in a very near future (or should I say we have?), so we might forbid this very soon now...<br><br></div><div>But anyway, what do you expect from a language that provides a #become: operation ?<br>We need to teach that superpowers implies super-responsibility.<br></div></div><br></div></div>