On Sat, May 19, 2012 at 11:30 PM, Dale Henrichs <[email protected]> wrote:

> Okay,
>
> Are you loading all of the classes (for all packages) before you run the
> initializers? ... I'm pretty sure that some of the initializations need to
> be run before subclasses are _loaded_.
>
> Next, you should try to force your initialization order to match that of
> Metacello, if that doesn't help then something else is the root cause of
> your problems...
>
>

heheheheh I should stop sending crap emails to the mailing list. Once
again, sorry for the noise. I was a problem in my own code. A default flag
has the incorrect value and I was initializing twice...once after each
packages and then once they all finished...

anyway, now it works :)

Thanks Dale for your patient



> Dale
>
> ----- Original Message -----
> | From: "Mariano Martinez Peck" <[email protected]>
> | To: [email protected]
> | Sent: Saturday, May 19, 2012 2:20:14 PM
> | Subject: Re: [Pharo-project] Order of sending class side #initialize
> |
> |
> |
> |
> | On Sat, May 19, 2012 at 9:01 PM, Dale Henrichs < [email protected]
> | > wrote:
> |
> |
> | 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...
> |
> |
> | Hi Dale. Well, I did that. I noticed 2 differences:
> |
> | 1) If the class already exist and the #initialize is the same, it is
> | not re-executed. In my case, I execute it always. I know, this is a
> | problem I have. Nevertheless, the only classes that already exist in
> | the image I am loading is Zinc...and the problem does not seem
> | related to that.
> |
> | 2) The order of the classes/methods inside a package is different. I
> | mean, I load the packages in order, but inside, for each package,
> | the order I send #initialize is not the same as Monticello. Example:
> |
> | My code:
> |
> | Initializing class: WAKeyGenerator class
> | Initializing class: WAUrlEncoder class
> | Initializing class: WAServerManager class
> | Initializing class: WALocale class
> | Initializing class: WAResponse class
> | Initializing class: WAXmlEncoder class
> | Initializing class: WASystemConfiguration class
> | Initializing class: WASharedConfiguration class
> | Initializing class: WAAbstractFileLibrary class
> |
> | Monticello:
> |
> | Initialize class: (Seaside-Core-Libraries) -- WAAbstractFileLibrary
> | Initialize class: (Seaside-Core-Configuration) --
> | WASystemConfiguration
> | Initialize class: (Seaside-Core-Configuration) --
> | WASharedConfiguration
> | Initialize class: (Seaside-Core-Document) -- WAUrlEncoder
> | Initialize class: (Seaside-Core-Document) -- WAXmlEncoder
> | Initialize class: (Seaside-Core-Utilities) -- WAKeyGenerator
> | Initialize class: (Seaside-Core-HTTP) -- WALocale
> | Initialize class: (Seaside-Core-HTTP) -- WAResponse
> | Initialize class: (Seaside-Core-Server) -- WAServerManager
> |
> | So...maybe this is the reason? what I am thinking now that maybe the
> | problem is not in the initialization but instead of export? I mean,
> | maybe Monticello exports methods/classes with certain order and
> | that's why it works? because when exporting I am not using any order
> | at all.
> |
> | Thanks
> |
> |
> |
> |
> |
> | 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
> | |
> | |
> |
> |
> |
> |
> | --
> | Mariano
> | http://marianopeck.wordpress.com
> |
> |
>
>


-- 
Mariano
http://marianopeck.wordpress.com

Reply via email to