<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <font face="Georgia">Well, the answer is probably quite easy, but
      the lack of details makes a precise answer problematic. If, e.g.,
      you had used Morph&gt;&gt;saveOnFile to serialize the object, then
      the required change would be:<br>
      <br>
      'From Squeak4.5 of 2 October 2013 [latest update: #13063] on 3
      October 2013 at 5:55:30 pm'!<br>
      <br>
      !SmartRefStream methodsFor: 'conversion' stamp: 'raa 10/3/2013
      06:20'!<br>
      multiNewParagraphttfclpomsswfcspp0<br>
      <br>
          ^ NewParagraph! !<br>
      <br>
      Cheers,<br>
      Bob<br>
      <br>
      <br>
      <br>
      <br>
    </font>
    <div class="moz-cite-prefix">On 10/3/13 5:11 PM, Chris Muller wrote:<br>
    </div>
    <blockquote
cite="mid:CANzdToE1aKFhA7t2BnC6Jhej=+_XNg3vDZFhhvLfOiVqPg4G_g@mail.gmail.com"
      type="cite">
      <pre wrap="">Actually, Nicolas' advice is what I was looking for.  Of course I use
Ma-Serializer but regardless of serializer I am trying to figure out
my process for upgrade.  To do that I want to be clear about the
actual before-and-after state of the domain, which parts needing
upgraded and what that upgrade is.  And also how it would integrate
into an upgrade process.

Nicolas seems to be saying the domain change is that any persistent
MultiNewParagraphs need to become equivalent instances of
NewParagraph.  I like the idea of moving MultiNewParagraph to
45Deprecated for one release until 4.6.

What I'm a little unclear about still, how can I create the equivalent
NewParagraph instance to become to?

On Thu, Oct 3, 2013 at 1:01 PM, Bob Arning <a class="moz-txt-link-rfc2396E" href="mailto:arning315@comcast.net">&lt;arning315@comcast.net&gt;</a> wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">Since Chris has not responded with the particular serialization method
employed, there's not much real advice to be given. The particular method
may well have a way to deal with this.

Cheers,
Bob


On 10/3/13 1:48 PM, Nicolas Cellier wrote:

We could as well restore an empty MultiNewParagraph in *45Deprecated, then
let you becomeForward: each MultiNewParagraph into a NewParagraph


2013/10/3 Bob Arning <a class="moz-txt-link-rfc2396E" href="mailto:arning315@comcast.net">&lt;arning315@comcast.net&gt;</a>
</pre>
        <blockquote type="cite">
          <pre wrap="">
That's one way. Another is 'save morph in file' from the metamenu.
Question is which Chris used.

On 10/3/13 6:33 AM, Edgar De Cleene wrote:

On 10/3/13 6:55 AM, "Bob Arning" <a class="moz-txt-link-rfc2396E" href="mailto:arning315@comcast.net">&lt;arning315@comcast.net&gt;</a> wrote:

   One questions is: how were they serialized?

 Cheers,
 Bob


Here you have how to exchange serialized objects between Squeak, Pharo and
Cuis.

For Pharo 2.0 you need fileIn ReferenceStream logic first.
Drag any .obj into World and you got a Inspector of on it.

!Object methodsFor: 'objects from disk' stamp: 'edc 9/6/2008 19:40'!
fileOutCompressed

| unzipped zipped buffer aFileName |
aFileName := self class name asFileName.    "do better?"
    aFileName := UIManager default
                request: 'File name?' translated initialAnswer: aFileName.
    aFileName size == 0 ifTrue: [^ Beeper beep].
Cursor write
showWhile: [unzipped := RWBinaryOrTextStream on: ''.
unzipped fileOutClass: nil andObject: self.
unzipped reset.
zipped := FileDirectory default newFileNamed: aFileName , 'obz'.
zipped binary.
zipped := GZipWriteStream on: zipped.
buffer := ByteArray new: 50000.
'Compressing ' , self name
displayProgressAt: Sensor cursorPoint
from: 0
to: unzipped size
during: [:bar |
[unzipped atEnd]
whileFalse: [bar value: unzipped position.
zipped
nextPutAll: (unzipped nextInto: buffer)].
zipped close.
unzipped close]]! !

!Object methodsFor: 'objects from disk' stamp: 'edc 6/20/2011 11:41'!
saveOnFileNamed: aString
    "Ask the user for a filename and save myself on a
    ReferenceStream file. Writes out the version and class structure.
    The file is fileIn-able. UniClasses will be filed out.
    This save objects as .obj"
    | aFileName fileStream |
    aString isEmpty
        ifTrue: [^ self error: 'name is missing'].
    aFileName := aString , '.obj'.
    fileStream := ReferenceStream fileNamed: aFileName .
    fileStream nextPut: self.
    fileStream close.
    ! !


!Object class methodsFor: 'objects from disk' stamp: 'edc 6/20/2011
12:16'!
readAndInspect: inputStream
| o rr |
    rr _ ReferenceStream on: inputStream.
    o _ rr next.
    rr close.
    o inspect! !

!Object class methodsFor: '*services-extras' stamp: 'edc 2/14/2008 08:24'!
fileReaderServicesForFile: fullName suffix: suffix
    | services |
    services _ OrderedCollection new.

    (fullName asLowercase endsWith: '.obj')
        ifTrue: [ services add: self serviceLoadObject ].
    ^services! !

!Object class methodsFor: '*services-extras' stamp: 'edc 7/27/2008 08:11'!
readCompressedObject: aFileStream

    self readAndInspect: (MultiByteBinaryOrTextStream with:
(GZipReadStream
on: aFileStream) upToEnd) reset! !

!Object class methodsFor: '*services-extras' stamp: 'edc 7/27/2008 07:40'!
serviceCompressedObject
    "Answer a service for opening a saved Object"
    ^ (SimpleServiceEntry
        provider: Object
        label: 'gz saved Object'
        selector: #readCompressedObject:
        description: 'open a gz Object'
        buttonLabel: 'object')
        argumentGetter: [:fileList |

            fileList readOnlyStream]! !

!Object class methodsFor: '*services-extras' stamp: 'edc 2/14/2008 08:26'!
serviceLoadObject
"Answer a service for opening a saved Object"

    ^ (SimpleServiceEntry
        provider: self
        label: 'saved Object'
        selector: #readAndInspect:
        description: 'open a Object'
        buttonLabel: 'object')
        argumentGetter: [:fileList | fileList readOnlyStream]! !








</pre>
        </blockquote>
        <pre wrap="">






</pre>
      </blockquote>
      <pre wrap="">

</pre>
    </blockquote>
    <br>
  </body>
</html>