Unicode Arrows in Shout ( was Re: Squeak-dev/Squeak-webimagev95-2)

nicolas cellier ncellier at ifrance.com
Sun Apr 8 12:24:11 UTC 2007


Bert Freudenberg a écrit :
> On Apr 8, 2007, at 10:49 , Martin v. Löwis wrote:
> 
>>> Modifying it so that separators are set to a blank glyph in both 
>>> encodings fixes
>>> the problem. Fileout is attached.
>>
>> Thanks, works fine. Not sure whose fault it is, but when browsing
>> the senders of setDemoFonts, looking at Preferences
>> class>>fontConfigurationMenu, I get a ByteArray>>errorSubscriptBounds:,
>> index=8593. The byte array in question is CaseInsensitiveMatchOrder.
>>
>> The call originates from TextMorphForShoutEditor>>againOnce:,
>> where it says
>>
>> where ← paragraph text findString: FindText startingAt:
>>   self stopIndex caseSensitive:
>>     ((ChangeText ~~ FindText) or: [Preferences caseSensitiveFinds]).
>>
>> The actual problem seems to be that CaseInsensitiveMatchOrder is
>> only 256 bytes in size.
> 
> 
> Yep. Sounds like my suggestion to get the wide char paths more exercised 
> is valid ;)
> 
> - Bert -
> 
> 
> 
> 

One way to correct bugs indeed is to release the unicode arrow change, 
let bugs express themselves randomly and correct them as they appear.
Because this kind of bug is so central, harvesting should come fast.

The longer way is to first write tests foreach method (preferably tests 
with wide character in WideString, not just asciiString asWideString).

Former solution will let uncorrected bugs present and we then should be 
prepared to big traffic dedicated to complaints and angry mails in the 
lists from user loosing their changes.

But don't forget to use Mantis, you certainly experienced one of these
http://bugs.squeak.org/view.php?id=6367
http://bugs.squeak.org/view.php?id=6366
http://bugs.squeak.org/view.php?id=5331
http://bugs.squeak.org/view.php?id=3574

Some corrections are underway in 3.10.
But not all known bugs are corrected yet.
And quite sure we can find more problems because a lot of code were 
optimized for single byte string and is abusively inherited by WideString.

Quite sure some bugs are also encountered and maybe cured in other forks 
(Squeakland, Sophie, OLPC?). That'a a weak point of forks.

We also have to rewrite some plugins or be prepared to some loss of 
efficiency.

That said, I would encourage going unicode.
And Smalltalk is a framework in which we can do this well and easily. 
Try to program such a shift in C++ for example...
Problems will appear when interfacing outside world, but with clever 
conversions and wrappers we can deal.

Nicolas




More information about the Squeak-dev mailing list