Parcels: a Fast and
Feature-Rich Binary
Deployment Technology
Eliot Miranda
David Leibs
Roel Wuyts
Deployment
Writing software is easy
just use the right language :-)
But what about deployment?
How to package your code
Do...
Deployment driving design
UISettings
...
Text
asParagraph
emphasisAt:
printOn:
SimpleDialog
MethodColorizer
methodText
......
Parcels in a nutshell
binary code deployment technology
can be loaded and unloaded
loading is fast
support class extension...
What’s with (un)loading?
Loading adds code to the system
what is not loaded is remembered
supports shape changing of class...
Loading recursive things
A
B
C
D
Parcel P1
Parcel P2
Why are they fast?
Pickling: store object graph so that it can
be loaded later on (unpickled)
typically need recursive des...
Parcel example
ColorTextParser
#isParsing
Compiled-
Method
Method-
Dictionary#testing
ColorTextParser
class
ColorTextParse...
Pickled file
"refs to dependent classes"
'Kernel.Parser'
16406
22
'source'
'mark'
'prevEnd'
'hereChar'
'token'
'tokenType'
...
VW/Monticello/Dolphin
VW/ENVY comparisons
Conclusion
Binary code deployment mechanism
support loading and unloading
with advanced features
are very fast to load
hav...
Upcoming SlideShare
Loading in …5
×

Parcels

525 views

Published on

Parcels: a Fast and Feature-Rich Binary Deployment Technology. Eliot Miranda David Leibs Roel Wuyts (ESUG 2004, Koethen)

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
525
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Parcels

  1. 1. Parcels: a Fast and Feature-Rich Binary Deployment Technology Eliot Miranda David Leibs Roel Wuyts
  2. 2. Deployment Writing software is easy just use the right language :-) But what about deployment? How to package your code Do you bend your design?
  3. 3. Deployment driving design UISettings ... Text asParagraph emphasisAt: printOn: SimpleDialog MethodColorizer methodText ... doNode: doReturn:value ... Parser ProgramNode- Enumerator ColorTextParser isParsing ... colorComments parseMethod:in: ... ColorToolDialog cubeColors ... changeBGColor brightness ... choseEditingColor saveToFileAction ... makeSelectorBoldIn: ColorEditing VisualWorks Base
  4. 4. Parcels in a nutshell binary code deployment technology can be loaded and unloaded loading is fast support class extensions have meta-information (version, prereqs)
  5. 5. What’s with (un)loading? Loading adds code to the system what is not loaded is remembered supports shape changing of classes Unloading removes it... Interacts with method replacement
  6. 6. Loading recursive things A B C D Parcel P1 Parcel P2
  7. 7. Why are they fast? Pickling: store object graph so that it can be loaded later on (unpickled) typically need recursive descent parser Parcels: separate and order the node descriptions from the arc descriptions two sections: objects & references
  8. 8. Parcel example ColorTextParser #isParsing Compiled- Method Method- Dictionary#testing ColorTextParser class ColorTextParser >>isParsing #[16 208 22 173 194 72 218 22 208 22 101] 1133 MethodDictionary (#isParsing) class class class class ByteArray class Class- Organizer ('testing' #isParsing) Symbol class class primitive primitive primitive arbitrary arbitrary ??method?? arbitrary
  9. 9. Pickled file "refs to dependent classes" 'Kernel.Parser' 16406 22 'source' 'mark' 'prevEnd' 'hereChar' 'token' 'tokenType' ... "strings, bytearrays, floats, ..." 'methodDict' 'Kernel' 'testing' 'isParsing:' ... #[16 208 28 173 ... 208 28 101] #[16 208 23 173 ... 208 23 101] ... 0.86 0.8 ... 1291792260 1292108356 ... "Classes defined in parcel" Kernel Parser 'ColorTextParser' 16393 0 9 'superclass' 'methodDict' 'format' 'subclasses' 'instanceVariables' 'organization' 'name' 'classPool' 'environment' 16413 7 29 'source' 'mark' 'prevEnd' 'hereChar' 'token' 'tokenType' ... "arcs" 1 2 Kernel.ColorTextParser class Kernel #UISettings ... "Instances of indexed objects" OrderedCollection 1 5 CompiledMethod 141 2 1 1 ... "compiled methods" ColorTextParser>>isParsing: ...
  10. 10. VW/Monticello/Dolphin
  11. 11. VW/ENVY comparisons
  12. 12. Conclusion Binary code deployment mechanism support loading and unloading with advanced features are very fast to load have meta-information Enjoyed by thousands of people

×