SqueakCore

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

SqueakCore

Pavel Krivanek
Hi,

this is the first unkempt attempt to produce SqueakCore image from
Squeak4.4-12324. It generates 3 MB dirty image (3.2 with Unicode
tables). Some overrides have only logging purpose.

Cheers,
-- Pavel



patch001.st (52K) Download Attachment
info.st (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: SqueakCore

Hannes Hirzel
On 12/30/12, Pavel Krivanek <[hidden email]> wrote:
> Hi,
>
> this is the first unkempt attempt to produce SqueakCore image from
> Squeak4.4-12324. It generates 3 MB dirty image (3.2 with Unicode
> tables). Some overrides have only logging purpose.
>
> Cheers,
> -- Pavel
>

Hello Pavel and others

Thank you for your first attempt.

I assume I have to file in first
    patch001.st

as it contains various dummy classes and fixes to existing classes.
(DummyProject, DummyUIManager, ,.... ClassOrganizer, PointerFinder,
ScriptLauncher, ...)


However the attached error comes up and a debugger in method
   primWrite: id from: stringOrByteArray startingAt: startIndex count: count

of MultiByteFileStream

This is on a Windows 7 machine with a recent VM.

Could anybody else check the file-in of Pavel's patch001.st as well?

The the info.st file is copied in below [1].

It refers to the class FileSystem, a class which is not (yet) in
Squeak. The Squeak equivalent would be FSFileSystem.

A minimal installation for the Filesystem in Squeak  is

    (Installer wiresong project: 'mc')
  addPackage: 'FS-Core';
  addPackage: 'FS-Disk';
  addPackage: 'FS-Tests-Core';
  addPackage: 'FS-Tests-Disk';
  install.

So we need to adapt info.st and patch001.st

and besides FSFilesystem maybe other artefacts have to be loaded into

    http://www.squeakci.org/job/SqueakTrunk/



Regards

Hannes



Note:
In Squeak we have for example

root := FSFilesystem onDisk root.

whereas in Pharo it is

root := FileSystem disk root.

besides this I have not found any other differences yet.








[1] Pavel's info.st file



[

| info lines dict unimplemented sends unsent o printWithReferences
printedObjects |

info := "(((Smalltalk vm getSystemAttribute: 3) ifNil: [FileSystem
disk workingDirectory] ifNotNilDo: [:path | FileSystem disk
workingDirectory resolve: path])"
FileStream forceNewFileNamed: 'info.txt'.


Undeclared removeUnreferencedKeys.

info nextPutAll: 'Project: ', Project current ; cr; cr.

info nextPutAll: 'Processes: ' ; cr; cr.
Process allInstances do: [:p |
  info nextPutAll: '  - ', p asString; cr].


info nextPutAll: Project uiProcess asString; cr.

"
TextConstants associationsDo: [:a |
info nextPutAll: a key, ' -> ', ([a value asString] ifError: ['ERROR']); cr.].
"


info cr.


info nextPutAll: 'globals:', ((Smalltalk globals associations select:
[:a | a value isBehavior not]) collect: [:a | a key ] )asString; cr.




info nextPutAll: 'Obsolete:'; cr.
info nextPutAll: SystemNavigation default obsoleteClasses asString; cr; cr.

printedObjects := IdentitySet new.

printWithReferences := [:object :depth |
  depth <= 3 ifTrue: [
    depth timesRepeat: [info tab].
    (printedObjects includes: object)
      ifTrue: ["info nextPutAll: '*****'; cr"]
      ifFalse: [
        printedObjects add: object.
    [info nextPutAll: object asString; cr.] ifError: [info nextPutAll:
'--- PRINT ERRROR ---'; cr].
    (PointerFinder pointersTo: object) do: [:ref |
      printWithReferences value: ref value: depth+1].]
  ]].

o := SystemNavigation default obsoleteClasses select: [:oc | oc
allInstances size > 0].
info nextPutAll: o asString; cr.
o := nil.

Smalltalk garbageCollect.

info cr.

"printWithReferences value: (SystemNavigation default obsoleteClasses
at: 1) value: 1."



info cr.

info nextPutAll: 'Behaviors count:'; cr.
info nextPutAll: Smalltalk allClassesAndTraits size asString; cr; cr.

info nextPutAll: 'Undeclared:'; cr.
info nextPutAll: Undeclared asString; cr; cr.

info nextPutAll: 'Undeclared sorted by name:'; cr.

dict := IdentityDictionary new.
Smalltalk allClassesAndTraits do: [:c |
        c localSelectors do: [:sel |
                dict at: (c compiledMethodAt: sel) put: (c -> sel)].
        c isTrait ifFalse: [
                c class localSelectors do: [:sel |
                        dict at: (c class compiledMethodAt: sel) put:
(c class -> sel)]]].

lines := SortedCollection new.

Undeclared associations do: [:assoc |
  info nextPutAll: assoc key; cr.
  [
  ((PointerFinder pointersTo: assoc) select: [:ref | ref class =
CompiledMethod]) do: [:cm |
     info nextPutAll: ' - ', (dict at: cm ifAbsent: ['method not
found']) asString; cr.
     lines add: (dict at: cm) key asString, ' >> ', (dict at: cm)
value asString, ' (', assoc key asString, ')'. ]
  ] ifError: [:e | info nextPutAll: '--error-- ', e asString; cr.]].

info cr; nextPutAll: 'Undeclared sorted by class:'; cr.
lines do: [:l | info nextPutAll: l asString; cr.].

info cr.



info nextPutAll: 'Unimplemented calls size:'; space.
info nextPutAll: SystemNavigation default allUnimplementedCalls size asString.
info cr; cr.
info nextPutAll: 'Unimplemented calls:'; cr; cr.
unimplemented := SystemNavigation default allUnimplementedCalls
asSortedCollection.
sends := OrderedCollection new.
unimplemented do: [:call |
  | pos |
  pos := (call findString:  ' calls: ').
  ((call allButFirst: (pos + 7)) findTokens: ' ') do: [:send |
    sends add: (send asString, ' calledBy: ', (call first: pos))].
  info nextPutAll: call asString; cr.].
info cr.
sends asSortedCollection do: [:call |
  info nextPutAll: call asString; cr.].

"
unsent := SystemNavigation default allUnsentMessages.

info cr; nextPutAll: 'Unsent messages size: '; nextPutAll: unsent size
asString; cr; cr.
info cr; nextPutAll: 'Unsent messages:'; cr.
unsent asSortedCollection do: [:message | info nextPutAll: message; cr. ].
"

info cr; nextPutAll: 'allClassesAndTraits:'.
Smalltalk allClassesAndTraits do: [:c | info nextPutAll: c name
asString; space]. info cr.

info cr; nextPutAll: 'finished...'.

info close.

SmalltalkImage current snapshot: false andQuit: true.


] ifError: [:e |
        | rep |
        rep := FileStream forceNewFileNamed: 'PharoDebug.log'.
        rep nextPutAll: 'info.st'; cr.
        rep nextPutAll: 'Error:'; cr.
        rep nextPutAll: e asString; cr.
        rep nextPutAll: thisContext stack size asString.
        thisContext stack copy withIndexDo: [:stck :i |
                [rep nextPutAll: i asString; space; nextPutAll: stck
asString; cr]
ifError: []].
        rep close.
        Smalltalk exitFailure]



TestSqueak4.4-12324-Failure-Loading-PavelK-patch001-for-minimal-image.gif (70K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: SqueakCore

Pavel Krivanek
On Sun, Dec 30, 2012 at 2:35 PM, H. Hirzel <[hidden email]> wrote:

> On 12/30/12, Pavel Krivanek <[hidden email]> wrote:
>> Hi,
>>
>> this is the first unkempt attempt to produce SqueakCore image from
>> Squeak4.4-12324. It generates 3 MB dirty image (3.2 with Unicode
>> tables). Some overrides have only logging purpose.
>>
>> Cheers,
>> -- Pavel
>>
>
> Hello Pavel and others
>
> Thank you for your first attempt.
>
> I assume I have to file in first
>     patch001.st

this file makes it all, the name is a little bit confusing. Tt should
be passed as command line argument to a fresh image. It was tested
only on Linux.

> as it contains various dummy classes and fixes to existing classes.
> (DummyProject, DummyUIManager, ,.... ClassOrganizer, PointerFinder,
> ScriptLauncher, ...)

this is the list of rewrites:

AutoStart class>>startUp:
 - this method must be rewriten to make network and plugin usage optional
ReadOnlyVariableBinding>>value:
- ad hoc patch for writes of Undelclared, I guess it can be solved
with propper exception handling without modifying of this method
SmalltalkImage>>snapshot:andQuit:embedded:
- some minor things like "Project current wakeUpTopWindow." should be
delegated to UIManager
SmalltalkImage>>send:toClassesNamedIn:with:
- only logging to stdout added, can be removed
SmalltalkImage>>setPlatformPreferences
- SoundPlayer direct usage must be removed
Encoder>>undeclared:
- only logging to stdout added, can be removed
Behavior>>compileAllFrom:
- only logging to stdout added, can be removed
DisplayScreen>>newDepthNoRestore:
- delegation to UIManager, MorphicUIManager implementation should be added
String>>translated
- need some nice refactoring to make GetText package dependency optional

>
> However the attached error comes up and a debugger in method
>    primWrite: id from: stringOrByteArray startingAt: startIndex count: count
>
> of MultiByteFileStream
>
> This is on a Windows 7 machine with a recent VM.
>
> Could anybody else check the file-in of Pavel's patch001.st as well?
>
> The the info.st file is copied in below [1].
>
> It refers to the class FileSystem, a class which is not (yet) in
> Squeak. The Squeak equivalent would be FSFileSystem.

This part of the script can be removed or rewriten for Squeak, it was
used by CI server in the past.


>
> A minimal installation for the Filesystem in Squeak  is
>
>     (Installer wiresong project: 'mc')
>   addPackage: 'FS-Core';
>   addPackage: 'FS-Disk';
>   addPackage: 'FS-Tests-Core';
>   addPackage: 'FS-Tests-Disk';
>   install.
>
> So we need to adapt info.st and patch001.st
>
> and besides FSFilesystem maybe other artefacts have to be loaded into
>
>     http://www.squeakci.org/job/SqueakTrunk/
>
>
>
> Regards
>
> Hannes
>
>
>
> Note:
> In Squeak we have for example
>
> root := FSFilesystem onDisk root.
>
> whereas in Pharo it is
>
> root := FileSystem disk root.
>
> besides this I have not found any other differences yet.
>
>
>
>
>
>
>
>
> [1] Pavel's info.st file
>
>
>
> [
>
> | info lines dict unimplemented sends unsent o printWithReferences
> printedObjects |
>
> info := "(((Smalltalk vm getSystemAttribute: 3) ifNil: [FileSystem
> disk workingDirectory] ifNotNilDo: [:path | FileSystem disk
> workingDirectory resolve: path])"
> FileStream forceNewFileNamed: 'info.txt'.
>
>
> Undeclared removeUnreferencedKeys.
>
> info nextPutAll: 'Project: ', Project current ; cr; cr.
>
> info nextPutAll: 'Processes: ' ; cr; cr.
> Process allInstances do: [:p |
>   info nextPutAll: '  - ', p asString; cr].
>
>
> info nextPutAll: Project uiProcess asString; cr.
>
> "
> TextConstants associationsDo: [:a |
> info nextPutAll: a key, ' -> ', ([a value asString] ifError: ['ERROR']); cr.].
> "
>
>
> info cr.
>
>
> info nextPutAll: 'globals:', ((Smalltalk globals associations select:
> [:a | a value isBehavior not]) collect: [:a | a key ] )asString; cr.
>
>
>
>
> info nextPutAll: 'Obsolete:'; cr.
> info nextPutAll: SystemNavigation default obsoleteClasses asString; cr; cr.
>
> printedObjects := IdentitySet new.
>
> printWithReferences := [:object :depth |
>   depth <= 3 ifTrue: [
>     depth timesRepeat: [info tab].
>     (printedObjects includes: object)
>       ifTrue: ["info nextPutAll: '*****'; cr"]
>       ifFalse: [
>         printedObjects add: object.
>     [info nextPutAll: object asString; cr.] ifError: [info nextPutAll:
> '--- PRINT ERRROR ---'; cr].
>     (PointerFinder pointersTo: object) do: [:ref |
>       printWithReferences value: ref value: depth+1].]
>   ]].
>
> o := SystemNavigation default obsoleteClasses select: [:oc | oc
> allInstances size > 0].
> info nextPutAll: o asString; cr.
> o := nil.
>
> Smalltalk garbageCollect.
>
> info cr.
>
> "printWithReferences value: (SystemNavigation default obsoleteClasses
> at: 1) value: 1."
>
>
>
> info cr.
>
> info nextPutAll: 'Behaviors count:'; cr.
> info nextPutAll: Smalltalk allClassesAndTraits size asString; cr; cr.
>
> info nextPutAll: 'Undeclared:'; cr.
> info nextPutAll: Undeclared asString; cr; cr.
>
> info nextPutAll: 'Undeclared sorted by name:'; cr.
>
> dict := IdentityDictionary new.
> Smalltalk allClassesAndTraits do: [:c |
>         c localSelectors do: [:sel |
>                 dict at: (c compiledMethodAt: sel) put: (c -> sel)].
>         c isTrait ifFalse: [
>                 c class localSelectors do: [:sel |
>                         dict at: (c class compiledMethodAt: sel) put:
> (c class -> sel)]]].
>
> lines := SortedCollection new.
>
> Undeclared associations do: [:assoc |
>   info nextPutAll: assoc key; cr.
>   [
>   ((PointerFinder pointersTo: assoc) select: [:ref | ref class =
> CompiledMethod]) do: [:cm |
>      info nextPutAll: ' - ', (dict at: cm ifAbsent: ['method not
> found']) asString; cr.
>      lines add: (dict at: cm) key asString, ' >> ', (dict at: cm)
> value asString, ' (', assoc key asString, ')'. ]
>   ] ifError: [:e | info nextPutAll: '--error-- ', e asString; cr.]].
>
> info cr; nextPutAll: 'Undeclared sorted by class:'; cr.
> lines do: [:l | info nextPutAll: l asString; cr.].
>
> info cr.
>
>
>
> info nextPutAll: 'Unimplemented calls size:'; space.
> info nextPutAll: SystemNavigation default allUnimplementedCalls size asString.
> info cr; cr.
> info nextPutAll: 'Unimplemented calls:'; cr; cr.
> unimplemented := SystemNavigation default allUnimplementedCalls
> asSortedCollection.
> sends := OrderedCollection new.
> unimplemented do: [:call |
>   | pos |
>   pos := (call findString:  ' calls: ').
>   ((call allButFirst: (pos + 7)) findTokens: ' ') do: [:send |
>     sends add: (send asString, ' calledBy: ', (call first: pos))].
>   info nextPutAll: call asString; cr.].
> info cr.
> sends asSortedCollection do: [:call |
>   info nextPutAll: call asString; cr.].
>
> "
> unsent := SystemNavigation default allUnsentMessages.
>
> info cr; nextPutAll: 'Unsent messages size: '; nextPutAll: unsent size
> asString; cr; cr.
> info cr; nextPutAll: 'Unsent messages:'; cr.
> unsent asSortedCollection do: [:message | info nextPutAll: message; cr. ].
> "
>
> info cr; nextPutAll: 'allClassesAndTraits:'.
> Smalltalk allClassesAndTraits do: [:c | info nextPutAll: c name
> asString; space]. info cr.
>
> info cr; nextPutAll: 'finished...'.
>
> info close.
>
> SmalltalkImage current snapshot: false andQuit: true.
>
>
> ] ifError: [:e |
>         | rep |
>         rep := FileStream forceNewFileNamed: 'PharoDebug.log'.
>         rep nextPutAll: 'info.st'; cr.
>         rep nextPutAll: 'Error:'; cr.
>         rep nextPutAll: e asString; cr.
>         rep nextPutAll: thisContext stack size asString.
>         thisContext stack copy withIndexDo: [:stck :i |
>                 [rep nextPutAll: i asString; space; nextPutAll: stck
> asString; cr]
> ifError: []].
>         rep close.
>         Smalltalk exitFailure]
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: SqueakCore

Pavel Krivanek
In reply to this post by Pavel Krivanek
Required refactorings to be able to reload Monticello to SqueakCore:

PackageInfo and Network package cannot have preambule. Because
preambule definition in .st files is dependent on PackageInfo

MailComposition class>>initialize
 - MailSender dependency must be removed.

HTTPSocket class >> initialize
 - ExternalSettings dependency must be removed.

ServerDirectory class >> initialize
 - ExternalSettings dependency must be removed.

UUIDGenerator class >> initialize
- bad startup list placement
- Smalltalk addToStartUpList: self

PackageList class >> initialize
 - TheWorldMenu dependency must be removed.

System category "Monticello-UI" must be in own package

Monticello extension methods to classes in System-FilePackage category
must be removed

MCVersionReader class >> initialize
- FileList dependencies must be removed.

MCRepository class >> initialize
 - ExternalSettings dependency must be removed.

Reply | Threaded
Open this post in threaded view
|

Re: SqueakCore

Edgar De Cleene
In reply to this post by Hannes Hirzel



On 12/30/12 10:35 AM, "H. Hirzel" <[hidden email]> wrote:

> On 12/30/12, Pavel Krivanek <[hidden email]> wrote:
>> Hi,
>>
>> this is the first unkempt attempt to produce SqueakCore image from
>> Squeak4.4-12324. It generates 3 MB dirty image (3.2 with Unicode
>> tables). Some overrides have only logging purpose.
>>
>> Cheers,
>> -- Pavel
>>
>
> Hello Pavel and others
>
> Thank you for your first attempt.
>
> I assume I have to file in first
>     patch001.st
>
> as it contains various dummy classes and fixes to existing classes.
> (DummyProject, DummyUIManager, ,.... ClassOrganizer, PointerFinder,
> ScriptLauncher, ...)
>
>
> However the attached error comes up and a debugger in method
>    primWrite: id from: stringOrByteArray startingAt: startIndex count: count
>
> of MultiByteFileStream
>
> This is on a Windows 7 machine with a recent VM.
>
> Could anybody else check the file-in of Pavel's patch001.st as well?

Sorry by the late answer, but only now have time to this.
With older Squeak 4.2.5beta1U do not run in Terminal, but if you change

stdout
^Stdout ifNil: [ Stdout := self newFileNamed: 'stdout']



See here:

http://squeakros.org/stdout

And run with UI, finish with a 3.3 Mb .image

If as in my case you do:

> /Applications/Cog.app/Contents/MacOS/Croquet -headless
> /Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/Squeak4.4-12386.image
> \/Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/patch001.st
> Atlantis:~ edgar$
> Atlantis:~ edgar$
> Atlantis:~ edgar$
> Atlantis:~ edgar$ /Applications/Cog.app/Contents/MacOS/Croquet -headless
> /Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/Squeak4.4-12386.image
> \/Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/patch001.st
> 2013-01-20 09:07:48.604 Croquet[789:903] Incompatible applications:
> app=com.squeak.Cog, targetApp=com.apple.Safari
> undeclared: DummyUIManager put: DummyUIManager
> undeclared: ScriptLauncher put: ScriptLauncher
> undeclared: ScriptLauncher put: ScriptLauncher
> undeclared: DummySystemProgressItem put: DummySystemProgressItem
> undeclared: DummySystemProgressItem put: DummySystemProgressItem
> 1
> 2
> 3
> 4

Stops with Enviroments DNU removeKey:

But if you not use the last update

/Applications/Cog.app/Contents/MacOS/Croquet -headless
/Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/Squeak4.4-12327\ copy.image
\/Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/patch001.st

Happily gives you a 3.1 Mb image.

So we start to have a very valuable thing.

I try to made Pavel suggested changes and invite to all wishing a
SqueakKernel to share experiences and push our Board to have some.

I have plenty of confidence in Spoon, but life is short and fragile as we
learn the hard way.

In the time we wait for a Perfect Solution, we could have a Good Solution

Edgar




Reply | Threaded
Open this post in threaded view
|

re: SqueakCore

ccrraaiigg

Hi Edgar--

> Sorry by the late answer, but only now have time to this.
>
> ...
>
> I have plenty of confidence in Spoon, but life is short and fragile
> as we learn the hard way.

     It certainly is! We are all extremely fortunate to be here; every
moment is precious. From grief I draw strength to honor those no longer
with us, by living as fully as I can, in community with others.

     Like you, and all of us, I give time as I am able, and I'm grateful
for the time that others spend with me. I've been working with others on
Spoon, and I encourage everyone who has time to give to participate.

> In the time we wait for a Perfect Solution, we could have a Good
> Solution

     I agree what's happening now is good. I envision something better,
I've gotten much of the way there with the help of many, and perfection
is not a goal.

     While I do have a desired design in mind, I don't think perfection
is necessary, or even a healthy pursuit. My design came from a large
amount of first-hand experience, reflection on practical tradeoffs, and
discussions with actual and potential users. Regardless, one need not
wait: I would love to see more Spoon issues recorded on Mantis, more use
cases discussed on #squeak and #spoon on IRC, more comments on
Spoon-related blog postings, etc.

     For the entire time I've been working with Smalltalk, I've viewed
anything which clarifies the structural boundaries between bodies of
code as a good thing. That includes every module system and shrinking
approach applied to every Smalltalk system I've used. We can use the
knowledge gained from each of them to make every one of them better.

     In the case of Squeak, I would like to use what we've learned from
SqueakMap, Universes, and other artifacts from Squeak 1 through 4 to
compose modules with Naiad, Spoon's module system. I maintain my
intention to coordinate the creation of Squeak 5 this way. I like what's
happening in Squeak 4 in the meantime.


     thanks again,

-C

--
Craig Latta
www.netjam.org/resume
+31   6 2757 7177 (SMS ok)
+ 1 415 287 3547 (no SMS)


Reply | Threaded
Open this post in threaded view
|

re: SqueakCore

ccrraaiigg

p.s.

        blog: http://thiscontext.wordpress.com
     website: http://netjam.org/spoon

--
Craig Latta
www.netjam.org/resume
+31   6 2757 7177 (SMS ok)
+ 1 415 287 3547 (no SMS)


Reply | Threaded
Open this post in threaded view
|

re: SqueakCore

Edgar De Cleene
In reply to this post by ccrraaiigg



On 1/21/13 10:08 PM, "Craig Latta" <[hidden email]> wrote:

>
> Hi Edgar--
>
>> Sorry by the late answer, but only now have time to this.
>>
>> ...
>>
>> I have plenty of confidence in Spoon, but life is short and fragile
>> as we learn the hard way.
>
>      It certainly is! We are all extremely fortunate to be here; every
> moment is precious. From grief I draw strength to honor those no longer
> with us, by living as fully as I can, in community with others.
>
>      Like you, and all of us, I give time as I am able, and I'm grateful
> for the time that others spend with me. I've been working with others on
> Spoon, and I encourage everyone who has time to give to participate.
>
>> In the time we wait for a Perfect Solution, we could have a Good
>> Solution
>
>      I agree what's happening now is good. I envision something better,
> I've gotten much of the way there with the help of many, and perfection
> is not a goal.
>
>      While I do have a desired design in mind, I don't think perfection
> is necessary, or even a healthy pursuit. My design came from a large
> amount of first-hand experience, reflection on practical tradeoffs, and
> discussions with actual and potential users. Regardless, one need not
> wait: I would love to see more Spoon issues recorded on Mantis, more use
> cases discussed on #squeak and #spoon on IRC, more comments on
> Spoon-related blog postings, etc.
>
>      For the entire time I've been working with Smalltalk, I've viewed
> anything which clarifies the structural boundaries between bodies of
> code as a good thing. That includes every module system and shrinking
> approach applied to every Smalltalk system I've used. We can use the
> knowledge gained from each of them to make every one of them better.
>
>      In the case of Squeak, I would like to use what we've learned from
> SqueakMap, Universes, and other artifacts from Squeak 1 through 4 to
> compose modules with Naiad, Spoon's module system. I maintain my
> intention to coordinate the creation of Squeak 5 this way. I like what's
> happening in Squeak 4 in the meantime.
>
>
>      thanks again,


You know I try Spoon each time you give us something, don't you?
And like the way Spoon show progress.

But like Cuis, the wonder made by Juan, I see this as long way of work to
the day we have some we take Squeak or Pharo 1.4 packages and feed without
too much trouble.

I'm 62 and don't know as long as my lifetime is, but chances is against the
medium Squeaker (around 40 years)

So choose by now follow the Pavel Krivanek way, try any you do and learn
from Cuis

Edgar



Reply | Threaded
Open this post in threaded view
|

Re: SqueakCore

Hannes Hirzel
In reply to this post by Edgar De Cleene
Pavel

I assume your recommendation you wrote today in the other thread
    http://lists.squeakfoundation.org/pipermail/squeak-dev/2013-February/168741.html

means to continue with the work in this thread?

Right?

--Hannes

On 1/20/13, Edgar J. De Cleene <[hidden email]> wrote:

>
>
>
> On 12/30/12 10:35 AM, "H. Hirzel" <[hidden email]> wrote:
>
>> On 12/30/12, Pavel Krivanek <[hidden email]> wrote:
>>> Hi,
>>>
>>> this is the first unkempt attempt to produce SqueakCore image from
>>> Squeak4.4-12324. It generates 3 MB dirty image (3.2 with Unicode
>>> tables). Some overrides have only logging purpose.
>>>
>>> Cheers,
>>> -- Pavel
>>>
>>
>> Hello Pavel and others
>>
>> Thank you for your first attempt.
>>
>> I assume I have to file in first
>>     patch001.st
>>
>> as it contains various dummy classes and fixes to existing classes.
>> (DummyProject, DummyUIManager, ,.... ClassOrganizer, PointerFinder,
>> ScriptLauncher, ...)
>>
>>
>> However the attached error comes up and a debugger in method
>>    primWrite: id from: stringOrByteArray startingAt: startIndex count:
>> count
>>
>> of MultiByteFileStream
>>
>> This is on a Windows 7 machine with a recent VM.
>>
>> Could anybody else check the file-in of Pavel's patch001.st as well?
>
> Sorry by the late answer, but only now have time to this.
> With older Squeak 4.2.5beta1U do not run in Terminal, but if you change
>
> stdout
> ^Stdout ifNil: [ Stdout := self newFileNamed: 'stdout']
>
>
>
> See here:
>
> http://squeakros.org/stdout
>
> And run with UI, finish with a 3.3 Mb .image
>
> If as in my case you do:
>
>> /Applications/Cog.app/Contents/MacOS/Croquet -headless
>> /Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/Squeak4.4-12386.image
>> \/Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/patch001.st
>> Atlantis:~ edgar$
>> Atlantis:~ edgar$
>> Atlantis:~ edgar$
>> Atlantis:~ edgar$ /Applications/Cog.app/Contents/MacOS/Croquet -headless
>> /Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/Squeak4.4-12386.image
>> \/Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/patch001.st
>> 2013-01-20 09:07:48.604 Croquet[789:903] Incompatible applications:
>> app=com.squeak.Cog, targetApp=com.apple.Safari
>> undeclared: DummyUIManager put: DummyUIManager
>> undeclared: ScriptLauncher put: ScriptLauncher
>> undeclared: ScriptLauncher put: ScriptLauncher
>> undeclared: DummySystemProgressItem put: DummySystemProgressItem
>> undeclared: DummySystemProgressItem put: DummySystemProgressItem
>> 1
>> 2
>> 3
>> 4
>
> Stops with Enviroments DNU removeKey:
>
> But if you not use the last update
>
> /Applications/Cog.app/Contents/MacOS/Croquet -headless
> /Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/Squeak4.4-12327\ copy.image
> \/Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/patch001.st
>
> Happily gives you a 3.1 Mb image.
>
> So we start to have a very valuable thing.
>
> I try to made Pavel suggested changes and invite to all wishing a
> SqueakKernel to share experiences and push our Board to have some.
>
> I have plenty of confidence in Spoon, but life is short and fragile as we
> learn the hard way.
>
> In the time we wait for a Perfect Solution, we could have a Good Solution
>
> Edgar
>
>
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: SqueakCore

Pavel Krivanek
No matter where :-) But it would be nice is someone will start to
review the changes and integrate them.

Cheers
-- Pavel

On Mon, Feb 11, 2013 at 1:12 PM, H. Hirzel <[hidden email]> wrote:

> Pavel
>
> I assume your recommendation you wrote today in the other thread
>     http://lists.squeakfoundation.org/pipermail/squeak-dev/2013-February/168741.html
>
> means to continue with the work in this thread?
>
> Right?
>
> --Hannes
>
> On 1/20/13, Edgar J. De Cleene <[hidden email]> wrote:
>>
>>
>>
>> On 12/30/12 10:35 AM, "H. Hirzel" <[hidden email]> wrote:
>>
>>> On 12/30/12, Pavel Krivanek <[hidden email]> wrote:
>>>> Hi,
>>>>
>>>> this is the first unkempt attempt to produce SqueakCore image from
>>>> Squeak4.4-12324. It generates 3 MB dirty image (3.2 with Unicode
>>>> tables). Some overrides have only logging purpose.
>>>>
>>>> Cheers,
>>>> -- Pavel
>>>>
>>>
>>> Hello Pavel and others
>>>
>>> Thank you for your first attempt.
>>>
>>> I assume I have to file in first
>>>     patch001.st
>>>
>>> as it contains various dummy classes and fixes to existing classes.
>>> (DummyProject, DummyUIManager, ,.... ClassOrganizer, PointerFinder,
>>> ScriptLauncher, ...)
>>>
>>>
>>> However the attached error comes up and a debugger in method
>>>    primWrite: id from: stringOrByteArray startingAt: startIndex count:
>>> count
>>>
>>> of MultiByteFileStream
>>>
>>> This is on a Windows 7 machine with a recent VM.
>>>
>>> Could anybody else check the file-in of Pavel's patch001.st as well?
>>
>> Sorry by the late answer, but only now have time to this.
>> With older Squeak 4.2.5beta1U do not run in Terminal, but if you change
>>
>> stdout
>> ^Stdout ifNil: [ Stdout := self newFileNamed: 'stdout']
>>
>>
>>
>> See here:
>>
>> http://squeakros.org/stdout
>>
>> And run with UI, finish with a 3.3 Mb .image
>>
>> If as in my case you do:
>>
>>> /Applications/Cog.app/Contents/MacOS/Croquet -headless
>>> /Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/Squeak4.4-12386.image
>>> \/Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/patch001.st
>>> Atlantis:~ edgar$
>>> Atlantis:~ edgar$
>>> Atlantis:~ edgar$
>>> Atlantis:~ edgar$ /Applications/Cog.app/Contents/MacOS/Croquet -headless
>>> /Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/Squeak4.4-12386.image
>>> \/Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/patch001.st
>>> 2013-01-20 09:07:48.604 Croquet[789:903] Incompatible applications:
>>> app=com.squeak.Cog, targetApp=com.apple.Safari
>>> undeclared: DummyUIManager put: DummyUIManager
>>> undeclared: ScriptLauncher put: ScriptLauncher
>>> undeclared: ScriptLauncher put: ScriptLauncher
>>> undeclared: DummySystemProgressItem put: DummySystemProgressItem
>>> undeclared: DummySystemProgressItem put: DummySystemProgressItem
>>> 1
>>> 2
>>> 3
>>> 4
>>
>> Stops with Enviroments DNU removeKey:
>>
>> But if you not use the last update
>>
>> /Applications/Cog.app/Contents/MacOS/Croquet -headless
>> /Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/Squeak4.4-12327\ copy.image
>> \/Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/patch001.st
>>
>> Happily gives you a 3.1 Mb image.
>>
>> So we start to have a very valuable thing.
>>
>> I try to made Pavel suggested changes and invite to all wishing a
>> SqueakKernel to share experiences and push our Board to have some.
>>
>> I have plenty of confidence in Spoon, but life is short and fragile as we
>> learn the hard way.
>>
>> In the time we wait for a Perfect Solution, we could have a Good Solution
>>
>> Edgar
>>
>>
>>
>>
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: SqueakCore

Hannes Hirzel
OK, this just serves as a reminder that this thread contains the
original script file by Pavel to create a 3 MB dirty image.

This is the initial post
    http://lists.squeakfoundation.org/pipermail/squeak-dev/2012-December/167367.html

I did not manage to execute the script file, but Edgar did. Maybe I
should try again. In any case we need more detailed instructions how
to do it or even better just a Jenkins job to do it with an
informative log file.

As I understand the purpose of it is to find out where the modularity
problems are.

--Hannes

On 2/11/13, Pavel Krivanek <[hidden email]> wrote:

> No matter where :-) But it would be nice is someone will start to
> review the changes and integrate them.
>
> Cheers
> -- Pavel
>
> On Mon, Feb 11, 2013 at 1:12 PM, H. Hirzel <[hidden email]> wrote:
>> Pavel
>>
>> I assume your recommendation you wrote today in the other thread
>>
>> http://lists.squeakfoundation.org/pipermail/squeak-dev/2013-February/168741.html
>>
>> means to continue with the work in this thread?
>>
>> Right?
>>
>> --Hannes
>>
>> On 1/20/13, Edgar J. De Cleene <[hidden email]> wrote:
>>>
>>>
>>>
>>> On 12/30/12 10:35 AM, "H. Hirzel" <[hidden email]> wrote:
>>>
>>>> On 12/30/12, Pavel Krivanek <[hidden email]> wrote:
>>>>> Hi,
>>>>>
>>>>> this is the first unkempt attempt to produce SqueakCore image from
>>>>> Squeak4.4-12324. It generates 3 MB dirty image (3.2 with Unicode
>>>>> tables). Some overrides have only logging purpose.
>>>>>
>>>>> Cheers,
>>>>> -- Pavel
>>>>>
>>>>
>>>> Hello Pavel and others
>>>>
>>>> Thank you for your first attempt.
>>>>
>>>> I assume I have to file in first
>>>>     patch001.st
>>>>
>>>> as it contains various dummy classes and fixes to existing classes.
>>>> (DummyProject, DummyUIManager, ,.... ClassOrganizer, PointerFinder,
>>>> ScriptLauncher, ...)
>>>>
>>>>
>>>> However the attached error comes up and a debugger in method
>>>>    primWrite: id from: stringOrByteArray startingAt: startIndex count:
>>>> count
>>>>
>>>> of MultiByteFileStream
>>>>
>>>> This is on a Windows 7 machine with a recent VM.
>>>>
>>>> Could anybody else check the file-in of Pavel's patch001.st as well?
>>>
>>> Sorry by the late answer, but only now have time to this.
>>> With older Squeak 4.2.5beta1U do not run in Terminal, but if you change
>>>
>>> stdout
>>> ^Stdout ifNil: [ Stdout := self newFileNamed: 'stdout']
>>>
>>>
>>>
>>> See here:
>>>
>>> http://squeakros.org/stdout
>>>
>>> And run with UI, finish with a 3.3 Mb .image
>>>
>>> If as in my case you do:
>>>
>>>> /Applications/Cog.app/Contents/MacOS/Croquet -headless
>>>> /Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/Squeak4.4-12386.image
>>>> \/Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/patch001.st
>>>> Atlantis:~ edgar$
>>>> Atlantis:~ edgar$
>>>> Atlantis:~ edgar$
>>>> Atlantis:~ edgar$ /Applications/Cog.app/Contents/MacOS/Croquet
>>>> -headless
>>>> /Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/Squeak4.4-12386.image
>>>> \/Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/patch001.st
>>>> 2013-01-20 09:07:48.604 Croquet[789:903] Incompatible applications:
>>>> app=com.squeak.Cog, targetApp=com.apple.Safari
>>>> undeclared: DummyUIManager put: DummyUIManager
>>>> undeclared: ScriptLauncher put: ScriptLauncher
>>>> undeclared: ScriptLauncher put: ScriptLauncher
>>>> undeclared: DummySystemProgressItem put: DummySystemProgressItem
>>>> undeclared: DummySystemProgressItem put: DummySystemProgressItem
>>>> 1
>>>> 2
>>>> 3
>>>> 4
>>>
>>> Stops with Enviroments DNU removeKey:
>>>
>>> But if you not use the last update
>>>
>>> /Applications/Cog.app/Contents/MacOS/Croquet -headless
>>> /Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/Squeak4.4-12327\
>>> copy.image
>>> \/Users/edgar/AtlantisSqueak/imagesZip/Squeak4.4/patch001.st
>>>
>>> Happily gives you a 3.1 Mb image.
>>>
>>> So we start to have a very valuable thing.
>>>
>>> I try to made Pavel suggested changes and invite to all wishing a
>>> SqueakKernel to share experiences and push our Board to have some.
>>>
>>> I have plenty of confidence in Spoon, but life is short and fragile as
>>> we
>>> learn the hard way.
>>>
>>> In the time we wait for a Perfect Solution, we could have a Good
>>> Solution
>>>
>>> Edgar
>>>
>>>
>>>
>>>
>>>
>>
>
>