theseion / Fuel

Fuel, the Smalltalk object serializer
https://theseion.github.io/Fuel
MIT License
27 stars 13 forks source link

Create light-weight shadow classes when materializing instances of an inexistent class #52

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Two cites:

Parcels (Mira05 paper):
"On encountering an import for a class that is not present the loader raises
a warning which the user can respond-to either by aborting the load or by
continuing. If the loader continues it creates an instance of a special class
(AbsentClassImport), stores it at the relevant index in the object table, and
initializes the object with all the format information available in the parcel
(again using the class import information available in the parcel). Later on in
the load attempts may be made to add methods to the AbsentClassImport
or to subclass it"

Xtreams (Xtreams 492 Update: Marshaling and Multiplexing): 
"ObjectMarshaler will now create light-weight shadow classes for classes that 
do not exist when unmarshaling objects. The classes are full subclasses of 
Object with getters/setters created on them for their instance variable names."

Original issue reported on code.google.com by tinchod...@gmail.com on 20 Jun 2011 at 8:58

GoogleCodeExporter commented 9 years ago
SRP:

"Metastates describe the data encoding. You must be able to resolve the 
metastate the object to be read. The metastate is data in a predictable (yet 
extendable) format that describes how data in a less predictable format is 
encoded. SRP uses metastates so that class shape changes or behavior will not 
affect the ability to read data. If the class doesn't exist at all for loaded 
data then SRP is able to load in instance of SrpState that represents the 
structure and accessor behavior of the original object."

Original comment by marianopeck on 21 Jun 2011 at 8:00

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will remain open but will probably not come into focus. If you still think this should receive some attention, leave a comment. Thank you for your contributions.

tinchodias commented 9 months ago

This would be an anonymous class (in Pharo)

stale[bot] commented 7 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will remain open but will probably not come into focus. If you still think this should receive some attention, leave a comment. Thank you for your contributions.