Mariano, No problem, man! Sometimes you've got to "talk out loud" to figure out what you are doing wrong, I know that I do that often enough myself ...
Dale ----- Original Message ----- | From: "Mariano Martinez Peck" <[email protected]> | To: [email protected] | Sent: Saturday, May 19, 2012 2:43:35 PM | Subject: Re: [Pharo-project] Order of sending class side #initialize | | | | | 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 | |
