[squeak-dev] Re: ReadStream>>DNU: peekSignIsMinus?

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Wed Feb 24 07:57:51 UTC 2010


2010/2/24 Andreas Raab <andreas.raab at gmx.de>:
> Andreas Raab wrote:
>>
>> I was just updating one of my working images and it blew up ReadStream not
>> understanding peekSignIsMinus. It looks as if a fix for this is in
>> Kernel-nice.405 - are we missing a config map? Or did I update to an
>> intermediate version that exhibits the problem because it was saved in this
>> state?
>
> It's getting worse. After loading Kernel-nice.405 manually I get random
> syntax errors saying "nothing more expected" in perfectly good methods when
> updating. Anyone else seeing this? Any ideas what might be causing this and
> how to fix it?
>
> Cheers,
>  - Andreas
>
>

Sorry, I messed up.
I introduced the bug in Kernel.nice.403 : sending peekSignIsMinus to
sourceStream instead of self.
I corrected it in Kernel.nice.405.

But, in between, I uploaded the change for using ExtendedNumberParser
in readFrom: (asNumber) and SqNumberParser in readSqueakSyntaxFrom;
(Scanner) in Compiler.nice.119 then Kernel.nice.404.
ExtendedNumberParser gobble the period after a digit to make a Float,
so it mustnot be used by the Compiler !

To avoid this problem, I created a configuration :
update.nice.120 to load Kernel.nice.403 first (to be sure to use
readSqueakSyntaxFrom: first)
update.nice.121 to load Compiler.nice.119 then (to plug
readSqueakSyntaxFrom: in Scanner)
Now the bug is written in the stone...

Now I don't know how to correct it... Maybe
- create a new Kernel 407 corresponding to 403 without the bug
- put that Kernel into update.nice.120
- redo the later changes ?

To correct your image, first revert the change for Number
class>>readFrom:, cherry pick
NumberParser>>#nextIntegerBase:ifFail:.and proceed with normal update.

Nicolas



More information about the Squeak-dev mailing list