[squeak-dev] The Trunk: System-cmm.689.mcz

Chris Muller asqueaker at gmail.com
Fri Nov 14 16:54:10 UTC 2014


OH!  I saved this as simply System instead of System.spur.  AND, I
think I may have been in a Spur image when I did it.. (trying to
remember) -- If I was, does that mean I accidently saved the
Spur-version of System under the wrong branch?

When I update my Spur image, it is not pulling this in -- I guess
because there is no .spur version of it?

Eliot this is my first trunk commit of a branched package from a Spur
image do I need to save it again as .spur or actually you have a
converter don't you?  How / when does that get run?


On Wed, Nov 12, 2014 at 3:40 PM, Chris Muller <asqueaker at gmail.com> wrote:
> I finally tracked down why the keys of the #knownEnvironments
> Dictionary were changing when trying to build an image in Spur.
>
> It's because, in my core-extensions package, I override
> UndefinedObject>>#hash to have hard-coded value independent of its
> #identityHash, to be safer with distributed systems which may be using
> nil in a hash calculation -- in case they would be different due to
> accessing with a Spur image, for example.
>
> Such a hash calculation is made for the keys of the #knownEnvironments
> Dictionary when the country's are nil.  By the different hash value in
> Spur, the image would lock when trying to load my core-extensions
> package, because it tried to access knownEnvironments as part of the
> load-operation itself.
>
> The least-lazy way to "fix" it was to ensure something is populated in
> the LocaleID's 'country's.  Whew!
>
> Anyway, something to be aware of -- anywhere we have true, false or
> nil used in a hash calculation, now has a different hash in Spur vs.
> Cog.  Maybe we should think about separating those objects' logical
> "value" hash from their identityHash in trunk..?  That could be useful
> when we move to 64-bit someday..
>
> On Wed, Nov 12, 2014 at 3:26 PM,  <commits at source.squeak.org> wrote:
>> Chris Muller uploaded a new version of System to project The Trunk:
>> http://source.squeak.org/trunk/System-cmm.689.mcz
>>
>> ==================== Summary ====================
>>
>> Name: System-cmm.689
>> Author: cmm
>> Time: 12 November 2014, 3:19:56.156 pm
>> UUID: a1ffba24-42ff-4391-9387-4e8ee20e6b2a
>> Ancestors: System-ul.688
>>
>> Populate all LocaleID's 'country's.
>>
>> =============== Diff against System-ul.688 ===============
>>
>> Item was added:
>> + ----- Method: LocaleID class>>countryFor: (in category 'accessing') -----
>> + countryFor: iso6391Code
>> +       "http://www.loc.gov/standards/iso639-2/php/code_list.php"
>> +       ^ iso6391Code
>> +               caseOf:
>> +                       { ['af'] -> ['Afrikaans'].
>> +                       ['ca'] -> ['Catalan'].
>> +                       ['cs'] -> [ 'Czech'].
>> +                       ['da'] -> [ 'Danish'].
>> +                       ['de'] -> [ 'German'].
>> +                       ['el'] -> [ 'Greek Modern'].
>> +                       ['en'] -> [ 'English'].
>> +                       ['es'] -> [ 'Spanish'].
>> +                       ['eu'] -> [ 'Basque'].
>> +                       ['fi'] -> [ 'Finnish'].
>> +                       ['fo'] -> [ 'Faroese'].
>> +                       ['fr'] -> [ 'French'].
>> +                       ['ga'] -> [ 'Irish'].
>> +                       ['gd'] -> [ 'Gaelic'].
>> +                       ['hr'] -> [ 'Croatian'].
>> +                       ['hu'] -> [ 'Hungarian'].
>> +                       ['is'] -> [ 'Icelandic'].
>> +                       ['it'] -> [ 'Italian'].
>> +                       ['ja'] -> [ 'Japanese'].
>> +                       ['ja-etoys'] -> [ 'Japanese'].
>> +                       ['ko'] -> [ 'Korean'].
>> +                       ['nl'] -> [ 'Dutch'].
>> +                       ['no'] -> [ 'Norwegian'].
>> +                       ['pt'] -> [ 'Portuguese'].
>> +                       ['rm'] -> [ 'Romansh'].
>> +                       ['ro'] -> [ 'Romainian'].
>> +                       ['sk'] -> [ 'Slovak'].
>> +                       ['sl'] -> [ 'Slovenian'].
>> +                       ['sq'] -> [ 'Albanian'].
>> +                       ['sv'] -> [ 'Swedish'].
>> +                       ['sw'] -> [ 'Swahili'].
>> +                       ['zh'] -> [ 'Chinese'] }
>> +               otherwise:
>> +                       [ 'other' ]!
>>
>> Item was changed:
>>   ----- Method: LocaleID>>isoLanguage:isoCountry: (in category 'initialize') -----
>> + isoLanguage: langString isoCountry: countryStringOrNil
>> - isoLanguage: langString isoCountry: countryStringOrNil
>>         isoLanguage := langString.
>> +       isoCountry := countryStringOrNil ifNil: (self class countryFor: langString)!
>> -       isoCountry := countryStringOrNil!
>>
>> Item was changed:
>>   (PackageInfo named: 'System') postscript: '"Preferences already removed by hand, but whose state still lingers:"
>> + LocaleID allInstances do:
>> +       [ : each | each
>> +               isoLanguage: each isoLanguage
>> +               isoCountry: (each isoCountry ifNil: [ each isoCountry ]) ].
>> + LanguageEnvironment knownEnvironments rehash'!
>> - Preferences removePreference: #upgradeIsMerge.
>> - Preferences removePreference: #colorWhenPrettyPrinting.
>> - Preferences removePreference: #promptForUpdateServer.
>> - Preferences removePreference: #updateSavesFile.
>> - Preferences removePreference: #updateFromServerAtStartup.'!
>>
>>


More information about the Squeak-dev mailing list