<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Nov 14, 2014 at 8:54 AM, Chris Muller <span dir="ltr">&lt;<a href="mailto:asqueaker@gmail.com" target="_blank">asqueaker@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">OH!  I saved this as simply System instead of System.spur.  AND, I<br>
think I may have been in a Spur image when I did it.. (trying to<br>
remember) -- If I was, does that mean I accidently saved the<br>
Spur-version of System under the wrong branch?<br></blockquote><div><br></div><div>Argh!  You can check the history, but if you did this we need to delete the package asap.  It will break non-Spur images.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
When I update my Spur image, it is not pulling this in -- I guess<br>
because there is no .spur version of it?<br></blockquote><div><br></div><div>What&#39;s your update URL?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Eliot this is my first trunk commit of a branched package from a Spur<br>
image do I need to save it again as .spur or actually you have a<br>
converter don&#39;t you?  How / when does that get run?<br></blockquote><div><br></div><div>I would prefer that yoiu integrate the changes into trunk and publish from trunk.  That&#39;s because the process (until we release) is for me to autoedit trunk versions to produce the Spur versions.  No, this isn&#39;t satisfactory but it works and will allow us to transition properly when we release.</div><div><br></div><div><br></div><div>I think I wrote this all up in an email a few weeks ago.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5"><br>
<br>
On Wed, Nov 12, 2014 at 3:40 PM, Chris Muller &lt;<a href="mailto:asqueaker@gmail.com">asqueaker@gmail.com</a>&gt; wrote:<br>
&gt; I finally tracked down why the keys of the #knownEnvironments<br>
&gt; Dictionary were changing when trying to build an image in Spur.<br>
&gt;<br>
&gt; It&#39;s because, in my core-extensions package, I override<br>
&gt; UndefinedObject&gt;&gt;#hash to have hard-coded value independent of its<br>
&gt; #identityHash, to be safer with distributed systems which may be using<br>
&gt; nil in a hash calculation -- in case they would be different due to<br>
&gt; accessing with a Spur image, for example.<br>
&gt;<br>
&gt; Such a hash calculation is made for the keys of the #knownEnvironments<br>
&gt; Dictionary when the country&#39;s are nil.  By the different hash value in<br>
&gt; Spur, the image would lock when trying to load my core-extensions<br>
&gt; package, because it tried to access knownEnvironments as part of the<br>
&gt; load-operation itself.<br>
&gt;<br>
&gt; The least-lazy way to &quot;fix&quot; it was to ensure something is populated in<br>
&gt; the LocaleID&#39;s &#39;country&#39;s.  Whew!<br>
&gt;<br>
&gt; Anyway, something to be aware of -- anywhere we have true, false or<br>
&gt; nil used in a hash calculation, now has a different hash in Spur vs.<br>
&gt; Cog.  Maybe we should think about separating those objects&#39; logical<br>
&gt; &quot;value&quot; hash from their identityHash in trunk..?  That could be useful<br>
&gt; when we move to 64-bit someday..<br>
&gt;<br>
&gt; On Wed, Nov 12, 2014 at 3:26 PM,  &lt;<a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a>&gt; wrote:<br>
&gt;&gt; Chris Muller uploaded a new version of System to project The Trunk:<br>
&gt;&gt; <a href="http://source.squeak.org/trunk/System-cmm.689.mcz" target="_blank">http://source.squeak.org/trunk/System-cmm.689.mcz</a><br>
&gt;&gt;<br>
&gt;&gt; ==================== Summary ====================<br>
&gt;&gt;<br>
&gt;&gt; Name: System-cmm.689<br>
&gt;&gt; Author: cmm<br>
&gt;&gt; Time: 12 November 2014, 3:19:56.156 pm<br>
&gt;&gt; UUID: a1ffba24-42ff-4391-9387-4e8ee20e6b2a<br>
&gt;&gt; Ancestors: System-ul.688<br>
&gt;&gt;<br>
&gt;&gt; Populate all LocaleID&#39;s &#39;country&#39;s.<br>
&gt;&gt;<br>
&gt;&gt; =============== Diff against System-ul.688 ===============<br>
&gt;&gt;<br>
&gt;&gt; Item was added:<br>
&gt;&gt; + ----- Method: LocaleID class&gt;&gt;countryFor: (in category &#39;accessing&#39;) -----<br>
&gt;&gt; + countryFor: iso6391Code<br>
&gt;&gt; +       &quot;<a href="http://www.loc.gov/standards/iso639-2/php/code_list.php" target="_blank">http://www.loc.gov/standards/iso639-2/php/code_list.php</a>&quot;<br>
&gt;&gt; +       ^ iso6391Code<br>
&gt;&gt; +               caseOf:<br>
&gt;&gt; +                       { [&#39;af&#39;] -&gt; [&#39;Afrikaans&#39;].<br>
&gt;&gt; +                       [&#39;ca&#39;] -&gt; [&#39;Catalan&#39;].<br>
&gt;&gt; +                       [&#39;cs&#39;] -&gt; [ &#39;Czech&#39;].<br>
&gt;&gt; +                       [&#39;da&#39;] -&gt; [ &#39;Danish&#39;].<br>
&gt;&gt; +                       [&#39;de&#39;] -&gt; [ &#39;German&#39;].<br>
&gt;&gt; +                       [&#39;el&#39;] -&gt; [ &#39;Greek Modern&#39;].<br>
&gt;&gt; +                       [&#39;en&#39;] -&gt; [ &#39;English&#39;].<br>
&gt;&gt; +                       [&#39;es&#39;] -&gt; [ &#39;Spanish&#39;].<br>
&gt;&gt; +                       [&#39;eu&#39;] -&gt; [ &#39;Basque&#39;].<br>
&gt;&gt; +                       [&#39;fi&#39;] -&gt; [ &#39;Finnish&#39;].<br>
&gt;&gt; +                       [&#39;fo&#39;] -&gt; [ &#39;Faroese&#39;].<br>
&gt;&gt; +                       [&#39;fr&#39;] -&gt; [ &#39;French&#39;].<br>
&gt;&gt; +                       [&#39;ga&#39;] -&gt; [ &#39;Irish&#39;].<br>
&gt;&gt; +                       [&#39;gd&#39;] -&gt; [ &#39;Gaelic&#39;].<br>
&gt;&gt; +                       [&#39;hr&#39;] -&gt; [ &#39;Croatian&#39;].<br>
&gt;&gt; +                       [&#39;hu&#39;] -&gt; [ &#39;Hungarian&#39;].<br>
&gt;&gt; +                       [&#39;is&#39;] -&gt; [ &#39;Icelandic&#39;].<br>
&gt;&gt; +                       [&#39;it&#39;] -&gt; [ &#39;Italian&#39;].<br>
&gt;&gt; +                       [&#39;ja&#39;] -&gt; [ &#39;Japanese&#39;].<br>
&gt;&gt; +                       [&#39;ja-etoys&#39;] -&gt; [ &#39;Japanese&#39;].<br>
&gt;&gt; +                       [&#39;ko&#39;] -&gt; [ &#39;Korean&#39;].<br>
&gt;&gt; +                       [&#39;nl&#39;] -&gt; [ &#39;Dutch&#39;].<br>
&gt;&gt; +                       [&#39;no&#39;] -&gt; [ &#39;Norwegian&#39;].<br>
&gt;&gt; +                       [&#39;pt&#39;] -&gt; [ &#39;Portuguese&#39;].<br>
&gt;&gt; +                       [&#39;rm&#39;] -&gt; [ &#39;Romansh&#39;].<br>
&gt;&gt; +                       [&#39;ro&#39;] -&gt; [ &#39;Romainian&#39;].<br>
&gt;&gt; +                       [&#39;sk&#39;] -&gt; [ &#39;Slovak&#39;].<br>
&gt;&gt; +                       [&#39;sl&#39;] -&gt; [ &#39;Slovenian&#39;].<br>
&gt;&gt; +                       [&#39;sq&#39;] -&gt; [ &#39;Albanian&#39;].<br>
&gt;&gt; +                       [&#39;sv&#39;] -&gt; [ &#39;Swedish&#39;].<br>
&gt;&gt; +                       [&#39;sw&#39;] -&gt; [ &#39;Swahili&#39;].<br>
&gt;&gt; +                       [&#39;zh&#39;] -&gt; [ &#39;Chinese&#39;] }<br>
&gt;&gt; +               otherwise:<br>
&gt;&gt; +                       [ &#39;other&#39; ]!<br>
&gt;&gt;<br>
&gt;&gt; Item was changed:<br>
&gt;&gt;   ----- Method: LocaleID&gt;&gt;isoLanguage:isoCountry: (in category &#39;initialize&#39;) -----<br>
&gt;&gt; + isoLanguage: langString isoCountry: countryStringOrNil<br>
&gt;&gt; - isoLanguage: langString isoCountry: countryStringOrNil<br>
&gt;&gt;         isoLanguage := langString.<br>
&gt;&gt; +       isoCountry := countryStringOrNil ifNil: (self class countryFor: langString)!<br>
&gt;&gt; -       isoCountry := countryStringOrNil!<br>
&gt;&gt;<br>
&gt;&gt; Item was changed:<br>
&gt;&gt;   (PackageInfo named: &#39;System&#39;) postscript: &#39;&quot;Preferences already removed by hand, but whose state still lingers:&quot;<br>
&gt;&gt; + LocaleID allInstances do:<br>
&gt;&gt; +       [ : each | each<br>
&gt;&gt; +               isoLanguage: each isoLanguage<br>
&gt;&gt; +               isoCountry: (each isoCountry ifNil: [ each isoCountry ]) ].<br>
&gt;&gt; + LanguageEnvironment knownEnvironments rehash&#39;!<br>
&gt;&gt; - Preferences removePreference: #upgradeIsMerge.<br>
&gt;&gt; - Preferences removePreference: #colorWhenPrettyPrinting.<br>
&gt;&gt; - Preferences removePreference: #promptForUpdateServer.<br>
&gt;&gt; - Preferences removePreference: #updateSavesFile.<br>
&gt;&gt; - Preferences removePreference: #updateFromServerAtStartup.&#39;!<br>
&gt;&gt;<br>
&gt;&gt;<br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">best,<div>Eliot</div></div>
</div></div>