[squeak-dev] SISS serialisation format?
H. Hirzel
hannes.hirzel at gmail.com
Wed Aug 31 16:52:27 UTC 2016
On 8/31/16, Yoshiki Ohshima <Yoshiki.Ohshima at acm.org> wrote:
> On Tue, Aug 30, 2016 at 11:21 PM, H. Hirzel <hannes.hirzel at gmail.com>
> wrote:
>> Hello
>>
>> I understand that the SISS serialisation format has been used in the
>> Etoys 5.0 image to store quick guides. It is a plain text format.
>>
>> What does SISS stand for?
>
> I am really bad at naming things but Umezawa-san had an
> inter-implementation object exchange format called SIXX, based on XML;
> SISS was based on S-Expression instead of XML.
>>
>> Browsing the Etoys 5.0 image .....
>> To use SISS classes need to implement a method
>>
>> sissExportSpecification
>>
>>
>> For example for Workspace it is
>>
>>
>> sissExportSpecification
>>
>> ^ #(('contents' #sissGetContents)
>> ('bindings' #bindings)
>> ('acceptDroppedMorphs' #acceptsDroppingMorphForReference)
>> )
>>
>>
>> And a method
>>
>> sissWriteValue
>>
>> Morph >> sissWriteValue
>> sissWriteValue
>>
>> self prepareToBeSaved.
>>
>>
>> or
>>
>> Object>>sissWriteValue
>> sissWriteValue
>> "Override if you wish"
>>
>> ^self
>>
>>
>> PasteUpMorph>>sissWriteValue
>> sissWriteValue
>> "Override if you wish"
>>
>> | new |
>> self prepareToBeSaved.
>> new _ self clone.
>> new privateSubmorphs: (submorphs reject: [:e |
>> (e isKindOf: SolidSugarSuppliesTab)
>> or: [(e isKindOf: Viewer)
>> or: [(e isKindOf: SugarNavTab)
>> or: [((e isKindOf: SystemWindow)
>> and: [(e model isKindOf: Workspace) not])
>> or: [(e isMemberOf:
>> FlapTab) and: [e isGlobalFlap]]]]]]).
>> new instVarNamed: 'presenter' put: nil.
>> new instVarNamed: 'worldState' put: nil.
>> new privateExtension: self extension copy.
>> new extension removeOtherProperties.
>> self extension otherProperties keysDo: [:sym |
>> (#(commandKeySelectors lastKeystroke locked) includes:
>> sym) ifFalse: [
>> new setProperty: sym toValue: (self extension
>> valueOfProperty: sym)
>> ].
>> ].
>>
>> ^ new.
>>
>>
>>
>> Form>>
>> sissWriteValue
>>
>> SISSDictionaryForScanning reduceFormDepth ifTrue: [
>> ^ (self asFormOfDepth: 8) hibernate.
>> ].
>> ^ self hibernate.
>>
>>
>>
>>
>>
>> An example of the format
>>
>> MSExpParser test1
>>
>> | str1 str2 str3 |
>> str1 _ '(script :name "testscript1:" :type "Player" :player "12"
>> (parameter :name "parameter" :type "Number" :position
>> "1")
>> (sequence
>> (loop :type "repeat"
>> (initial (literal :value "0"))
>> (increment (literal :value "1"))
>> (test (send :type "Number"
>> (selector :selector "+")
>> (send :type "Number"
>> (selector :getter "x")
>> (literal :type "Player" :value "self"))
>> (literal :type "Number" :value "1")))
>> (sequence
>> (assign :type "Number"
>> :updating "Incr:" :property "x"
>> (literal :type
>> "Player" :value "4")
>> (send :type "Number"
>> (selector
>> :selector "+")
>> (literal :type
>> "Number" :value "244.0")
>> (literal :type
>> "Number" :value "1")))))))'.
>>
>>
>>
>> I understand that the SISS format has been used successfully in the
>> Etoys image to store quick guide projects.
>>
>> As far as Project saving is concerned it there a difference between
>> Etoy Quick guide projects and regular Squeak Morphic projects?
>
> I can't remember for sure but the difference must be small. I can't
> even locate etoys-dev image on my computer in front of me so it'd need
> some digging.
The Etoys 6 image contains a slightly refactored version according to
Tim Felgentreff.
http://files.squeak.org/etoys/6.0beta/Etoys6.0beta-7605-32bit/
Three class categories
('SISS-Core' SISSDictionaryForGuideBook SISSDictionaryForMorphCopying
SISSDictionaryForReading SISSDictionaryForScanning SISSProxy)
('SISS-Meta' MSExpParser MSExpTokenizer SExpAttributes SExpElement)
('Etoys-Squeakland-SISS-Serialization' ParseNodeBuilder)
>> Where can I find more information on the SISS format?
>
> I'd like to know about that, too^^;
>
> --
> -- Yoshiki
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: SISS_in_Etoys6_beta_2016-08.png
Type: image/png
Size: 27925 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20160831/c5780fa1/SISS_in_Etoys6_beta_2016-08.png
More information about the Squeak-dev
mailing list
|