Mariano,

To shed some light on the exact problem, I think that you should record the 
initialization order of a Metacello load and compare that to the initialization 
order that you are using.

While your algorithm looks like it is correct it doesn't necessarily match the 
actual initialization order you get when using Monticello and Metacello...

It would be interesting to find out where the differences in order are and then 
focus on understanding why...

Dale
 
----- Original Message -----
| From: "Mariano Martinez Peck" <[email protected]>
| To: "Pharo Development" <[email protected]>
| Sent: Saturday, May 19, 2012 11:25:57 AM
| Subject: [Pharo-project] Order of sending class side #initialize
| 
| Hi guys. I am doing some experiments with FuelPackageLoader and I
| have a problem with the initialization. All my unit tests pass but
| when trying to export/import seaside/pier/magritte, I have a
| problem.
| What I do basically, is to ask Metacello the list of packages that I
| need to loaded for seaside and friends. The list is IN ORDER OF
| LOADING. So what I do during the import is to load each package in
| the correct order (the one Metacello told me). For each package I
| load, I initialize its classes (at the end of the load of the
| package). The order I initialize classes for a package is:
| 
| ((aPackage classes select: [:each | each isBehavior])
| sort: [:a :b | a allSuperclasses size < b allSuperclasses size ])
| do: [:aClass |
| Transcript show: 'Initializing class: ', aClass name; cr.
| aClass initializeOnLoad]
| 
| and
| 
| Class >> initializeOnLoad
| (self class includesSelector: #initialize)
| ifTrue: [self initialize]
| 
| 
| so...I am having a problem with seaside with a class and it looks
| like a problem of the order of the initialize. Do you think
| something is wrong with our approach? any idea?
| 
| thanks in advance,
| 
| --
| Mariano
| http://marianopeck.wordpress.com
| 
| 

Reply via email to