[squeak-dev] release stalled, needs a jump-start

Chris Muller asqueaker at gmail.com
Tue Jan 21 19:57:59 UTC 2014


Removed the nulls, now it opens.  Option 0 it is.  Thanks Dave!

On Tue, Jan 21, 2014 at 11:51 AM, David T. Lewis <lewis at mail.msen.com> wrote:
> 0) It is already fixed.
>
> See latest Collections updates from the weekend.
>
> You may currently have a #workingWithSqueak with source code that was
> damaged by the bug. In that case, you may need to get the null characters
> out of it (I emailed a version of this with nulls removed earlier I
> think). Sorry I cannot check it specifically right now, but I'm quite sure
> that if you have an updated image, and can then edit and save the
> workingWithSqueak window one time, then all should be well and you will
> not see a recurrence of the issue.
>
> Dave
>
>> So, the release is currently halted by this.  What should we do for
>> the release guys?  Our options are:
>>
>>   1) Do nothing, let these Help workspaces blow up.
>>   2) Revert RunArray class>>#scanFrom:.  Everything works.
>>   3) Simplify these workspaces to have only plain-text, maybe they'll
>> work?
>>   4) Eliminate these workspaces from the image entirely, rely solely
>> on external documentation.
>>   5) Knuckle up and fix this right now (volunteer needed).
>>
>> The change to RunArray class>>#scanFrom: says it's purpose is to
>> "simplify".  Is that it?  If so, I vote for 2.
>>
>> Please vote and/or volunteer.
>>
>> On Sat, Jan 18, 2014 at 6:29 PM, David T. Lewis <lewis at mail.msen.com>
>> wrote:
>>> On Fri, Jan 17, 2014 at 11:51:00AM -0500, David T. Lewis wrote:
>>>> >> How was the source for this version of #workingWithSqueak created? I
>>>> am
>>>> >> worried that I might have broken something in the writeScanOn:
>>>> methods
>>>> >> for TextAttributes that might have led to generating corrupt source
>>>> >> code for the workingWithSqueak method ... I hope not :-(
>>>> >
>>>> > It was created the normal way -- by simply opening up that workspace,
>>>> > editing it, and then saving it (Command+s).
>>>> >
>>>> > Doing that updates the method source.
>>>> >
>>>> > See the acceptBlock in
>>>> TheWorldMainDockingBar>>#showWelcomeText:label:in:.
>>>> >
>>>>
>>>> That means that I must have introduced some new bug. I will look for it
>>>> and provide a fix this weekend.
>>>
>>> Oh my goodness. This appears to be a remarkable confluence of of bugs.
>>>
>>> The welcome text right now just happens to be a Text with a RunArray
>>> that
>>> serializes to a string of exactly 101 characters, including a trailing
>>> comma
>>> that needs to be trimmed. The RunArray>>writeScanOn: method backs the
>>> stream
>>> up one character to trim off that extra comma, leaving the stream at
>>> position
>>> 100. It just so happens that the stream was initialized to size 100, so
>>> when
>>> String>>new:streamContents: checks to see if the stream position matches
>>> the
>>> original size, it sees that the position is 100 so yes they match and it
>>> must
>>> be OK to simply return the #originalContents of the stream instead of
>>> going
>>> to all the extra work of figuring out its current #contents.
>>> Unfortunately,
>>> the stream has actually been advanced to position 101 before being
>>> backed
>>> up to position 100, so its collection has been resized to 200 elements.
>>> So
>>> we grab the 200 elements of the stream collection, assuming that these
>>> are
>>> still the original 100 elements of the original stream collection. That
>>> gives us a string with an extra comma and 99 null characters at the end
>>> where we did not expect anything.
>>>
>>> If I load our current #workingWithSqueak into an older Squeak image, the
>>> above problem is still triggered, and the source code for
>>> #workingWithSqueak
>>> gets corrupted. But it gets corrupted differently than in the latest
>>> Squeak,
>>> presumably due to the changes that I recently made to TextAttributes.
>>> And
>>> in the older Squeak, this mess does not result in an error when opening
>>> the
>>> workingWithSqueak window, probably related to the more permissive
>>> parsing
>>> in the original RunArray class>>scanFrom: parsing.
>>>
>>> This is making my head hurt. I am going to think about it tomorrow.
>>>
>>> "I can't think about that right now. If I do, I'll go crazy. I'll think
>>> about that tomorrow."
>>> - Margaret Mitchell, Gone with the Wind
>>>
>>> Dave
>>>
>>>
>>
>
>
>


More information about the Squeak-dev mailing list