Hi. It looks like OSProcess (a dependency of Magma) is registering a class in the startUp list explicitly before ImageSegment (which was removed). This was already fixed in new version of OSProcess. Hence, ConfigurationOfMagma should be updated to use the new version of OSProcess.
Cheers
On Mon, Oct 24, 2011 at 4:54 PM, Ankur Sethi get.me.ankur@gmail.com wrote:
Hi,
I'm new to Pharo and Smalltalk in general. I'm trying to build a small blogging application using Pharo and Seaside. I've decided to use Magma for persistence, but I'm having some issues loading it in Pharo 1.3.
I loaded Magma the usual way:
Gofer new squeaksource: 'MetacelloRepository'; package: 'ConfigurationOfMagma'; load.
(Smalltalk at:#ConfigurationOfMagma) project latestVersion load: 'Server'; load: 'Client'.
... and I was presented with a backtrace. Since didn't know how to get a full backtrace out of Pharo in plain text, I took a screenshot: http://imagebin.org/180559
I know this is not adequate, but I'm hoping someone can help me get Pharo to give me information about this issue in a more convenient format.
When I told Pharo to abandon loading the package and then re-evaluated this:
(Smalltalk at:#ConfigurationOfMagma) project latestVersion load: 'Server'; load: 'Client'.
... then everything went just fine. I even tried creating a Magma repository, which worked. However, some things were totally borked in my Pharo image. I couldn't get the System Browser to do syntax highlighting, for one.
I'm using Pharo1.3 + CogVM 13307 on Mac OS X Lion.
I hope I made sense.
Thanks.
-- Ankur Sethi (GeneralMaximus on IRC and elsewhere)
Hi,
I just tried with a clean 1.3 One-Click Pharo Image with the latest stable version of Seaside loaded. I also get this error. Does loading magma's bleeding edge help, or ist the problem not corrected yet?
Since I am quite new to Gofer and project configurations, I guess it shouldn't be me who breaks ConfigurationOfMagma ;-)
Joachim
-- View this message in context: http://forum.world.st/Re-Pharo-users-pharo-users-Can-t-Load-Magma-in-Pharo-1... Sent from the Magma mailing list archive at Nabble.com.
Hi Mariano,
your reply still leaves some questions open on what exactly I can do now - apart from fixing ConfigurationOfMagma.
Someone suggested to me in PM to simply remove the line
"Some images may have a bug in startup list processing. Add this class to a known place in the middle of the list to avoid getting bitten by the bug." Smalltalk addToStartUpList: ThisOSProcess after: ImageSegment.
from ThisOSProcess>>#initialize.
Doesn't that mean new trouble if ThisOSProcess is not added to the StartUpList at all?
Where in ConfigurationOfMagma or even better: how can I find the place that requires The OSProcess-Base Package and fix it to use a newer version?
Joachim
-- View this message in context: http://forum.world.st/Re-Pharo-users-pharo-users-Can-t-Load-Magma-in-Pharo-1... Sent from the Magma mailing list archive at Nabble.com.
On Thu, Dec 1, 2011 at 3:56 PM, jtuchel jtuchel@objektfabrik.de wrote:
Hi Mariano,
your reply still leaves some questions open on what exactly I can do now - apart from fixing ConfigurationOfMagma.
Someone suggested to me in PM to simply remove the line
"Some images may have a bug in startup list processing. Add this class to a known place in the middle of the list to avoid getting bitten by the bug." Smalltalk addToStartUpList: ThisOSProcess after: ImageSegment.
from ThisOSProcess>>#initialize.
Doesn't that mean new trouble if ThisOSProcess is not added to the StartUpList at all?
Yes, that's incorrect. You should do something like:
Smalltalk addToStartUpList: ThisOSProcess.
As said, I think it has been fixed in latest OSProcess code.
Where in ConfigurationOfMagma or even better: how can I find the place that requires The OSProcess-Base Package and fix it to use a newer version?
I have no idea. I cc'ed someone who may be able to help.
Joachim
-- View this message in context: http://forum.world.st/Re-Pharo-users-pharo-users-Can-t-Load-Magma-in-Pharo-1... Sent from the Magma mailing list archive at Nabble.com. _______________________________________________ Magma mailing list Magma@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/magma
Hi Mariano
thanks a lot. This change feels much better.
I could solve my problem by changing this one line manually and proceeding the load. This is of course just a dirty workaround.
Still I'd like to understand how I can find the place at which the package version for OSProcess is defined within the prerequisite chain of ConfigurationOfMagma. I couldn't find it yet... ;-)
Joachim
-- View this message in context: http://forum.world.st/Re-Pharo-users-pharo-users-Can-t-Load-Magma-in-Pharo-1... Sent from the Magma mailing list archive at Nabble.com.
On Thu, Dec 1, 2011 at 4:56 PM, jtuchel jtuchel@objektfabrik.de wrote:
Hi Mariano
thanks a lot. This change feels much better.
I could solve my problem by changing this one line manually and proceeding the load. This is of course just a dirty workaround.
Still I'd like to understand how I can find the place at which the package version for OSProcess is defined within the prerequisite chain of ConfigurationOfMagma. I couldn't find it yet... ;-)
For those cases I usually do something along: ConfigurationOfMagma project lastVersion record loaderPolicy loadDirective
- I use #record instead of #load to avoid actually loading everything. Record will fetch everything but not actually load each package. - I use #lastVersion in this example, but you can use the version you want.
As you can see, the trick is loaderPolicy loadDirective, which answers all the stuff it will load and the order:
-> linear load : linear load : 1.2 [ConfigurationOfMagma] load : ConfigurationOfMaClientServer linear load : 1.2 [ConfigurationOfMagma] linear load : 1.3 [ConfigurationOfMaClientServer] load : ConfigurationOfMaBase linear load : 1.3 [ConfigurationOfMaClientServer] load : ConfigurationOfOSProcess linear load : 1.3 [ConfigurationOfMaClientServer] linear load : 1.0 [ConfigurationOfMaBase] load : Collections-BTree-lr.73 load : Ma exception handling-cmm.38 load : Ma base additions-cmm.193 load : Ma proxy support-cmm.45 load : Ma Squeak domain-cmm.34 load : MaFixedWidthReport-cmm.7 load : Ma special collections-cmm.120 load : Ma traverse object graphs-cmm.32 load : Ma Statistics-cmm.25 load : Ma files additions-cmm.13 load : Ma contextual search-cmm.36 load : Ma object serialization-cmm.250 load : Ma object serialization tester-cmm.34 load : Ma special collections tester-cmm.15 linear load : 4.4.0 [ConfigurationOfOSProcess] load : OSProcess-dtl.59 load : Ma client server-cmm.217 load : Ma Armored Code-cmm.150 load : Ma client server tester-cmm.22 load : WriteBarrier-cmm.28 load : Magma client-cmm.540
So it seems ConfigurationOfMagma requires ConfigurationOfMaClientServer, which requires ConfigurationOfOSProcess. So there you go. For more details you may want to read the metacello chapter of PBE2: https://gforge.inria.fr/scm/viewvc.php/*checkout*/PharoByExampleTwo-Eng/Meta...
Cheers
Joachim
-- View this message in context: http://forum.world.st/Re-Pharo-users-pharo-users-Can-t-Load-Magma-in-Pharo-1... Sent from the Magma mailing list archive at Nabble.com. _______________________________________________ Magma mailing list Magma@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/magma
Hi Mariano,
thanks a lot for your tip. So it seems like method ConfigurationOfMaClientServer>>#version13: needs to be updated. It loads V4.4.0 of OSProcess.
spec project: 'MaBase' with: '1.0'; project: 'OSProcess' with: '4.4.0'.
So there is the next question: A look at ConfigurationOfOSProcess reveals that version440 loads package OSProcess-dtl.59 , as of today, the latest version on squeak source is OSProcess-dtl.66.mcz.
How can I find out which one between 59 and 66 is the right one? Or maybe I shouldn't worry about it, but look at ConfigurationOfOSProcess instead... But searching for ConfigurationOfOSProcess on Squeaksource doesn't bring up any results. So should I be using the MonticelloBrowser to look at MetacelloRepository?
I tried it on http:://www.squeaksource.com/MetacelloRepository and surprisingly found out that I have the very latest version of ConfigurationOfOSProcess loaded: ConfigurationOfOSProcess-mt.17
So it seems both ConfigurationOfOSProcess and ConfigurationOfMagmaClientServer (and therefor I guess all dependent configurations) need an update...
Coming from Envy I find this whole Metacello stuff both a big improvement over Monticello and a bit low level. But maybe the last one is just a question of re-educating myself ;-) Still I am a bit puzzled about what I could do to make Magma load cleanly into Pharo 1.3, other than fixing that one line in the debugger on every load. Being an envy user, seeing a debugger during load leaves a bit of a bitter taste in my throat, because chances are you are going to face problems that stem from the broken atomicity of a load...
But most of all: thanks for the pointers. I have learned a bit more about Metacello today, which is a good thing!
Joachim
-- View this message in context: http://forum.world.st/Re-Pharo-users-pharo-users-Can-t-Load-Magma-in-Pharo-1... Sent from the Magma mailing list archive at Nabble.com.
On Mon, Dec 5, 2011 at 8:22 AM, jtuchel jtuchel@objektfabrik.de wrote:
Hi Mariano,
thanks a lot for your tip. So it seems like method ConfigurationOfMaClientServer>>#version13: needs to be updated. It loads V4.4.0 of OSProcess.
spec project: 'MaBase' with: '1.0'; project: 'OSProcess' with: '4.4.0'.
So there is the next question: A look at ConfigurationOfOSProcess reveals that version440 loads package OSProcess-dtl.59 , as of today, the latest version on squeak source is OSProcess-dtl.66.mcz.
How can I find out which one between 59 and 66 is the right one? Or maybe I
Only their developers know.
shouldn't worry about it, but look at ConfigurationOfOSProcess instead... But searching for ConfigurationOfOSProcess on Squeaksource doesn't bring up any results.
The problem is so well know that we should find a name for it..... it is simple: the guys who do the project, do not do/maintain the Metacello configurations.
So should I be using the MonticelloBrowser to look at MetacelloRepository?
Yes, you can.
I tried it on http:://www.squeaksource.com/MetacelloRepository and surprisingly found out that I have the very latest version of ConfigurationOfOSProcess loaded: ConfigurationOfOSProcess-mt.17
So it seems both ConfigurationOfOSProcess and ConfigurationOfMagmaClientServer (and therefor I guess all dependent configurations) need an update...
Welcome to the real world: nobody updates the configurations. Not even when the load doesn't work. In the case of Magma and OSProcess nor of their developers did/maintain the configurations. I am not saying they shuld. everybody do as much as they can/want, I am just explaining you why it has not been updated.
Coming from Envy I find this whole Metacello stuff both a big improvement over Monticello and a bit low level. But maybe the last one is just a question of re-educating myself ;-)
From my point of view, the problem is not the tool, but how people use it.
Still I am a bit puzzled about what I could do to make Magma load cleanly into Pharo 1.3, other than fixing that one line in the debugger on every load. Being an envy user, seeing a debugger during load leaves a bit of a bitter taste in my throat, because chances are you are going to face problems that stem from the broken atomicity of a load...
yes...
But most of all: thanks for the pointers. I have learned a bit more about Metacello today, which is a good thing!
Read the chapter if you want to know more about the tool itself :)
Joachim
-- View this message in context: http://forum.world.st/Re-Pharo-users-pharo-users-Can-t-Load-Magma-in-Pharo-1... Sent from the Magma mailing list archive at Nabble.com. _______________________________________________ Magma mailing list Magma@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/magma
magma@lists.squeakfoundation.org