Magma....

Avi Bryant avi at beta4.com
Sat Jul 3 06:51:31 UTC 2004


On Jul 2, 2004, at 9:55 PM, Ramiro Diaz Trepat wrote:

> Please guys, this must have happened to someone using Magma.
> I am using the 3.7 image and the latest available Magma.

I suspect that the reason you're not getting answers isn't that nobody 
else has experienced the problem, but rather that nobody (except Chris) 
knows what the solution might be, because they're all in the same boat 
as you.  Certainly, my experience with Magma was similar to yours: I 
was excited by the idea of a pure-Squeak OODB, but ran into errors I 
didn't understand right off the bat, and ended up going for the easy 
solution of finishing my GOODS client work rather than diving into the 
large and frankly daunting Magma codebase.  I fear that this is a 
chicken and egg problem: Magma desperately needs a few users to pound 
on it and submit detailed bug reports and patches and get it ready for 
production use, but won't get those users until it's ready for 
production use.  It's a problem with the particular domain, I think: 
nobody wants to risk their data to what's very clearly a work in 
progress, whereas they have no problem using 80% solutions for 
development tools, web servers and the like.  The end result is, I 
believe, that many people have tried Magma but essentially nobody uses 
it.  I could be wrong, and if so, I'd be very interested to hear about 
people's experiences with serious Magma use.

Because of this 80% solution effect, I believe that using the GOODS 
client may actually be a more effective way to end up with a solid 
pure-Squeak OODB solution, because it lets us tackle each half of the 
problem separately: once we have a really good client done, we can 
start to reimplement the GOODS server in Squeak, meanwhile falling back 
on the C++ server for the cases where we need the reliability.

Anyway, in case it helps, what I can tell from your stack trace is 
this: for some reason, Magma is trying to #become: one of its proxy 
objects into a SmallInteger, which you can't do (since SmallIntegers 
are tagged and not full objects).  The problem likely lies in whatever 
code created the proxy in the first place (ie, the unserialization 
code) - you shouldn't be wrapping small ints in proxies.  But that's 
just a guess.  When you say your Address object has "street and 
number", is number a string or an integer?

Avi




More information about the Squeak-dev mailing list