[Fix] Smalltalk compressSources (was: Re: Which PDA best for running squeak ?)

Dan Ingalls Dan at SqueakLand.org
Thu Nov 20 22:47:38 UTC 2003


I finally had a chance to fix this problem.  The error only occurred at the edge of a 20,000 character buffer.  Anyway, I'm attaching a fix herewith (since it's small), and I will update SM when I have some better success with FTP.

Thanks for the report.  I'm interested if things are solid now (they have been for me).

	- Dan
-----------------------------------
>On 14/11/03 21:39, "Dan Ingalls" <Dan at SqueakLand.org> wrote:
>
>> Hi, Hannes -
>>
>> I'm glad to hear your enthusiasm for compressed soruces.  I, too, got an error
>> stemming from the PackageLoader's need to access the fileID of the Sources
>> file.  If you have a chance, would you please define
>>
>> CompressedSourcesFile>>fileID
>> ^ segmentFile fileID
>>
>> and see if this cures your problem.  You should be able to do this in the
>> saved image file and then run the PackageLoader.  If this solves your problem
>> (and probably in any event), I'll put out a new version ASAP (which might not
>> be immediately ;-).
>>
>> Thanks for testing this!
>>
>> - Dan
>> --------------------------------------------
>> Hannes Hirzel <hannes.hirzel.squeaklist at bluewin.ch>  wrote...
>>
>>> I took a a fresh full 3.6 release on a Mac and updated
>>> with the package loader the installed packages.
>>>
>>> Then I loaded the compressed sources package and evaluated
>>> Smalltalk condenseSources
>>> Smalltalk compressSources
>>>
>>> Then I saved the image and quit.
>>> I deleted the files marked as 'old' and restarted the image.
>>>
>>> I could browse the source code in the SystemBrowser.
>>>
>>> However loading additional packages from SM caused an error
>>> message (walkback).
>>>
>>>
>>>
>>> I keep many backup copies of my images and I like to have all things
>>> conveniently in one directory. Compressing the sources file comes in handy. I
>>> move my Squeak work forth and back using a memory stick between a Mac at work
>>> and Windows machines at home.
>>>
>>> So I would love to have that, but at the moment not beeing able
>>> to load additional packages prevents me to do that?
>Dan:
>
>I'm having this error, don't know if related to Hannes bug.
>
>Error: Strings only store Characters
>15 November 2003 4:39:03 pm
>
>VM: Mac OS - Squeak3.6gamma of '11 September 2003' [latest update: #5420]
>Squeak VM 3.6.0b3
>Image: Squeak3.6 [latest update: #5424]
>
>String(Object)>>error:
>    Receiver: 'setMyText: someT...etc...
>    Arguments and temporary variables:
>        aString:     'Strings only store Characters'
>    Receiver's instance variables:
>'setMyText: someT...etc...
>String>>at:put:
>    Receiver: 'setMyText: someT...etc...
>    Arguments and temporary variables:
>        index:     17
>        aCharacter:     'e'
>    Receiver's instance variables:
>'setMyText: someT...etc...
>WriteStream>>nextPut:
>    Receiver: a WriteStream
>    Arguments and temporary variables:
>        anObject:     'e'
>    Receiver's instance variables:
>        collection:     'setMyText: someT...etc...
>        position:     17
>        readLimit:     0
>        writeLimit:     1000
>
>CompressedSourceStream(PositionableStream)>>nextChunk
>    Receiver: a CompressedSourceStream
>    Arguments and temporary variables:
>        terminator:     $!
>        out:     a WriteStream
>        ch:     'e'
>    Receiver's instance variables:
>        collection:     'answer the entire rest of the receiver."
>    | newStream element |
>    n...etc...
>        position:     10269
>        readLimit:     20000
>        writeLimit:     nil
>        segmentFile:     StandardFileStream: 'Macintosh
>HD:Users:edgar:Public:SqueakDevelop...etc...
>        segmentSize:     20000
>        nSegments:     946
>        segmentTable:     #(3800 8931 15723 22757 28230 33508 39472 45080
>49887 54517 59589...etc...
>        segmentIndex:     635
>        dirty:     false
>        endOfFile:     18882682
>
>
>--- The full stack ---
>String(Object)>>error:
>String>>at:put:
>WriteStream>>nextPut:
>CompressedSourceStream(PositionableStream)>>nextChunk
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>CompressedSourceStream(PositionableStream)>>nextChunkText
>RemoteString>>text
>CompiledMethod>>getSourceFromFile
>CompiledMethod>>getSourceFor:in:
>ScrollableField class(Behavior)>>sourceCodeAt:ifAbsent:
>ScrollableField class(ClassDescription)>>ultimateSourceCodeAt:ifAbsent:
>Browser(CodeHolder)>>sourceStringPrettifiedAndDiffed
>Browser>>selectedMessage
>Browser>>contents
>PluggableTextMorph>>getText
>PluggableTextMorph>>update:
>[] in Browser(Object)>>changed:
>DependentsArray>>do:
>Browser(Object)>>changed:
>Browser(Object)>>contentsChanged
>Browser(CodeHolder)>>contentsChanged
>Browser>>messageListIndex:
>PluggableListMorph>>changeModelSelection:
>PluggableListMorph>>setSelectedMorph:
>PluggableListMorph>>mouseUp:
>PluggableListMorph(Morph)>>handleMouseUp:
>MouseButtonEvent>>sentTo:
>PluggableListMorph(Morph)>>handleEvent:
>PluggableListMorph(Morph)>>handleFocusEvent:
>[] in HandMorph>>sendFocusEvent:to:clear:
>PasteUpMorph>>becomeActiveDuring:
>HandMorph>>sendFocusEvent:to:clear:
>HandMorph>>sendEvent:focus:clear:
>HandMorph>>sendMouseEvent:
>HandMorph>>handleEvent:
>HandMorph>>processEvents
>[] in WorldState>>doOneCycleNowFor:
>Array(SequenceableCollection)>>do:
>WorldState>>handsDo:
>WorldState>>doOneCycleNowFor:
>WorldState>>doOneCycleFor:
>PasteUpMorph>>doOneCycle
>[] in Project class>>spawnNewProcess
>[] in BlockContext>>newProcess
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CompressedSources-di.1.cs.gz
Type: application/mac-binhex40
Size: 6189 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20031120/29d2b48c/CompressedSources-di.1.cs.hqx


More information about the Squeak-dev mailing list