Reading in a project problem
Brad Fuller
brad at sonaural.com
Mon Jul 12 02:07:14 UTC 2004
Thanks Ned. I'll poke around.
> -----Original Message-----
> From: squeak-dev-bounces at lists.squeakfoundation.org
> [mailto:squeak-dev-bounces at lists.squeakfoundation.org] On
> Behalf Of Ned Konz
> Sent: Sunday, July 11, 2004 5:54 PM
> To: The general-purpose Squeak developers list
> Subject: Re: Reading in a project problem
>
> On Sunday 11 July 2004 1:47 pm, Brad Fuller wrote:
> > > > "Reading an instance of <class>. Which modern class should it
> > > > translate to?"
> > > >
> > > > With the following selections
> > > > Let me type the name now
> > > > Let me think about it
> > > > Let me find a conversion file on the disk.
> >
> > Thanks for the questions Ned!
> >
> > > Does the class that is reported exist in the image?
> >
> > No, the class(es) that are reported do not exist in the
> image. Not on
> > any of the machines.
>
> That's the problem. The project file contains a serialized
> version of the interesting objects in the project. But it
> doesn't contain classes or method definitions, unless you
> explicitly choose to store the change set with the project
> (and unless the change set has all of the required definitions).
>
> So a reference to a class is instead stored in a .pr file as
> something that, when de-serialized, is equivalent to:
>
> DiskProxy global: #YourClass selector: #yourself args: #()
>
> and then is resolved by looking in the Smalltalk dictionary
> under #YourClass.
>
> But of course YourClass doesn't exist, and so Squeak offers
> to let you either:
>
> - load a change set that might include conversion methods
> - say that instances of YourClass should really become
> instances of SomeOtherClass
> - stop loading
>
> Look at implementors of #objectForDataStream: to find more
> special cases like this.
>
> If you want to distribute projects *and* your own code, the
> easiest way to do it is either to:
> * ensure that all the class and method definitions you
> need are in the project's change set (you can use the Dual
> Change Sorter to copy methods from other change sets, as
> necessary), or
> * package the .pr and the appropriate Smalltalk code
> (.cs, .mcz, .st, etc.) inside a SAR file (a zip file that
> Squeak knows how to load).
>
> > I clearly need to know more about "projects". Can you point me in a
> > direction of documentation?
>
> What I do usually is either or both of:
>
> - read the code (look here for
> SmartRefStream/ReferenceStream, DiskProxy, and methods like
> objectForDataStream: and the "file in/out" and "objects from
> disk" method categories)
>
> - poke around on the Squeak Swiki.
> http://minnow.cc.gatech.edu/squeak/1817
> http://minnow.cc.gatech.edu/squeak/2318
>
> - do some Googling
>
> --
> Ned Konz
> http://bike-nomad.com/squeak/
>
>
>
More information about the Squeak-dev
mailing list
|