Re: [Pharo-users] [pharo-users] Can't Load Magma in Pharo 1.3

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

Re: [Pharo-users] [pharo-users] Can't Load Magma in Pharo 1.3

Mariano Martinez Peck
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 <[hidden email]> 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)




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


_______________________________________________
Magma mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/magma
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] [pharo-users] Can't Load Magma in Pharo 1.3

jtuchel
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
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] [pharo-users] Can't Load Magma in Pharo 1.3

jtuchel
In reply to this post by Mariano Martinez Peck
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
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] [pharo-users] Can't Load Magma in Pharo 1.3

Mariano Martinez Peck


On Thu, Dec 1, 2011 at 3:56 PM, jtuchel <[hidden email]> 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-3-tp3933449p4128774.html
Sent from the Magma mailing list archive at Nabble.com.
_______________________________________________
Magma mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/magma



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


_______________________________________________
Magma mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/magma
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] [pharo-users] Can't Load Magma in Pharo 1.3

jtuchel
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
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] [pharo-users] Can't Load Magma in Pharo 1.3

Mariano Martinez Peck


On Thu, Dec 1, 2011 at 4:56 PM, jtuchel <[hidden email]> 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/Metacello/Metacello.pdf?root=pharobooks

Cheers
 
Joachim

--
View this message in context: http://forum.world.st/Re-Pharo-users-pharo-users-Can-t-Load-Magma-in-Pharo-1-3-tp3933449p4129097.html
Sent from the Magma mailing list archive at Nabble.com.
_______________________________________________
Magma mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/magma



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


_______________________________________________
Magma mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/magma
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] [pharo-users] Can't Load Magma in Pharo 1.3

jtuchel
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

Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] [pharo-users] Can't Load Magma in Pharo 1.3

Mariano Martinez Peck


On Mon, Dec 5, 2011 at 8:22 AM, jtuchel <[hidden email]> 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-3-tp3933449p4159515.html
Sent from the Magma mailing list archive at Nabble.com.
_______________________________________________
Magma mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/magma



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


_______________________________________________
Magma mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/magma